+2006-05-22 Borut Razem <borut.razem AT siol.net>
+
+ * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
+ second try. Thanks Stas Sergeev once more.
+
2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
* src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
/*
dbuf.c - Dynamic buffer implementation
- version 1.1.2, May 17th, 2006
+ version 1.1.2, May 22th, 2006
Copyright (c) 2002-2006 Borut Razem
if (dbuf->len + size > dbuf->alloc) {
/* new_allocated_size = current_allocated_size * 2^n */
/* can this be optimized? */
- while (dbuf->len + size >= dbuf->alloc)
+ do {
dbuf->alloc += dbuf->alloc;
+ }
+ while (dbuf->len + size > dbuf->alloc);
if ((dbuf->buf = realloc(dbuf->buf, dbuf->alloc)) == NULL)
return 0;
assert(dbuf->alloc != 0);
assert(dbuf->buf != NULL);
- /* only if not already null terminated */
- if (dbuf->len == dbuf->alloc ||
- ((char *)dbuf->buf)[dbuf->len] != '\0') {
- dbuf_expand(dbuf, 1);
- ((char *)dbuf->buf)[dbuf->len] = '\0';
- }
+ dbuf_expand(dbuf, 1);
+ ((char *)dbuf->buf)[dbuf->len] = '\0';
return dbuf->buf;
}