return true;
}
- void buffer::ptr::append(char c)
+ unsigned buffer::ptr::append(char c)
{
assert(_raw);
assert(1 <= unused_tail_length());
- (c_str())[_len] = c;
+ char* ptr = _raw->data + _off + _len;
+ *ptr = c;
_len++;
+ return _len + _off;
}
-
+
unsigned buffer::ptr::append(const char *p, unsigned l)
{
assert(_raw);
append_buffer = create_page_aligned(alen);
append_buffer.set_length(0); // unused, so far.
}
- append_buffer.append(c);
- append(append_buffer, append_buffer.end() - 1, 1); // add segment to the list
+ append(append_buffer, append_buffer.append(c) - 1, 1); // add segment to the list
}
-
+
void buffer::list::append(const char *data, unsigned len)
{
while (len > 0) {
_len = l;
}
- void append(char c);
+ unsigned append(char c);
unsigned append(const char *p, unsigned l);
void copy_in(unsigned o, unsigned l, const char *src);
void zero();