Clean up some whitespace while we're there too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
/* Always reset in the trivial empty case. */
if (mb->start == mb->end)
mb->start = mb->end = 0;
/* Always reset in the trivial empty case. */
if (mb->start == mb->end)
mb->start = mb->end = 0;
if (membuf_num_space_(mb) >= num_extra)
return 0;
if (membuf_num_space_(mb) >= num_extra)
return 0;
return mb->elems + mb->end * elemsize;
}
return mb->elems + mb->end * elemsize;
}
+/**
+ * membuf_added - declare that we've added this many elements.
+ * @mb: the MEMBUF() declared membuf.
+ * @n: the number of elements we added (must be < membuf_num_space()).
+ */
+#define membuf_added(mb, num) \
+ membuf_added_(tcon_unwrap(mb), (num))
+
+static inline void membuf_added_(struct membuf *mb, size_t num)
+{
+ assert(num <= membuf_num_space_(mb));
+ mb->end += num;
+}
+
/**
* membuf_prepare_space - internal routine to make sure we've got space.
* @mb: the MEMBUF() declared membuf.
/**
* membuf_prepare_space - internal routine to make sure we've got space.
* @mb: the MEMBUF() declared membuf.
oldend = membuf_space_(mb, elemsize);
/* We assume expandfn succeeded. */
oldend = membuf_space_(mb, elemsize);
/* We assume expandfn succeeded. */
- assert(num <= membuf_num_space_(mb));
- mb->end += num;
+ membuf_added_(mb, num);
+/**
+ * membuf_unadd - remove this many added elements.
+ * @mb: the MEMBUF() declared membuf.
+ * @n: the number of elements we want to "unadd" (must be < membuf_num_elems()).
+ */
+#define membuf_unadd(mb, num) \
+ membuf_unadd_(tcon_unwrap(mb), (num))
+
+static inline void membuf_unadd_(struct membuf *mb, size_t num)
+{
+ assert(num <= membuf_num_elems_(mb));
+ mb->end -= num;
+}
+
/**
* membuf_cleanup - reset membuf, return elems array for freeing.
* @mb: the MEMBUF() declared membuf.
/**
* membuf_cleanup - reset membuf, return elems array for freeing.
* @mb: the MEMBUF() declared membuf.
ok1(membuf_consume(&intbuf, 1));
ok1(membuf_num_elems(&intbuf) == 0);
ok1(membuf_consume(&intbuf, 1));
ok1(membuf_num_elems(&intbuf) == 0);
/* Force it to more-than-double; make sure that works! */
memset(membuf_add(&intbuf, 300), 0, 300*sizeof(int));
ok1(membuf_num_elems(&intbuf) == 300);
/* Force it to more-than-double; make sure that works! */
memset(membuf_add(&intbuf, 300), 0, 300*sizeof(int));
ok1(membuf_num_elems(&intbuf) == 300);