--- deliantra/server/include/dynbuf.h 2009/11/07 18:30:05 1.27 +++ deliantra/server/include/dynbuf.h 2009/11/11 23:27:57 1.29 @@ -28,6 +28,7 @@ #include #include +#include "compiler.h" #include "util.h" #include "shstr.h" @@ -94,12 +95,20 @@ // make sure we have "size" extra room char *force (int size) { - if (expect_false (ptr + size >= end)) + if (expect_false (ptr + size > end)) reserve (size); + assume (ptr + size <= end); + return ptr; } + // used for force + alloc combo + void alloc (char *p) + { + ptr = p; + } + // allocate size bytes and return pointer to them (caller must force()) char *falloc (int size) {