]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/ff-varint.h
Opt: Make OPT_LAST_ARG actually work and document interface of opt_parse()
[libucw.git] / ucw / ff-varint.h
index 3228fbfa017c3c90a37a329713d84482d5871fd4..18ab03eed9b8109fa686e9617ce9a5e50bc0e4ac 100644 (file)
 #include <ucw/fastbuf.h>
 #include <ucw/varint.h>
 
+#ifdef CONFIG_UCW_CLEAN_ABI
+#define bget_varint_slow ucw_bget_varint_slow
+#define bput_varint_slow ucw_bput_varint_slow
+#endif
+
 u64 bget_varint_slow(struct fastbuf *b, u64 repl);
 void bput_varint_slow(struct fastbuf *b, u64 u);
 
@@ -26,8 +31,8 @@ static inline u64 bget_varint_repl(struct fastbuf *b, u64 repl)
        if (bavailr(b) >= 1) {
                l = varint_len(*b->bptr);
                if (bavailr(b) >= l) {
-                       b->bptr += l;
                        varint_get(b->bptr, &repl);
+                       b->bptr += l;
                        return repl;
                }
        }
@@ -38,7 +43,7 @@ static inline u64 bget_varint_repl(struct fastbuf *b, u64 repl)
  * Reads u64 encoded as varint from the fastbuf b.
  * If the read is unsuccessful, returns ~0LLU.
  **/
-static inline int bget_varint(struct fastbuf *b)
+static inline u64 bget_varint(struct fastbuf *b)
 {
        return bget_varint_repl(b, ~0LLU);
 }