ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/dynbuf.h
(Generate patch)

Comparing deliantra/server/include/dynbuf.h (file contents):
Revision 1.27 by root, Sat Nov 7 18:30:05 2009 UTC vs.
Revision 1.28 by root, Mon Nov 9 03:08:24 2009 UTC

26#define DYNBUF_H__ 26#define DYNBUF_H__
27 27
28#include <cstring> 28#include <cstring>
29#include <cassert> 29#include <cassert>
30 30
31#include "compiler.h"
31#include "util.h" 32#include "util.h"
32#include "shstr.h" 33#include "shstr.h"
33 34
34// this is a "buffer" that can grow fast 35// this is a "buffer" that can grow fast
35// and is still somewhat space-efficient. 36// and is still somewhat space-efficient.
92 int room () const { return end - ptr; } 93 int room () const { return end - ptr; }
93 94
94 // make sure we have "size" extra room 95 // make sure we have "size" extra room
95 char *force (int size) 96 char *force (int size)
96 { 97 {
97 if (expect_false (ptr + size >= end)) 98 if (expect_false (ptr + size > end))
98 reserve (size); 99 reserve (size);
100
101 assume (ptr + size <= end);
99 102
100 return ptr; 103 return ptr;
101 } 104 }
102 105
103 // allocate size bytes and return pointer to them (caller must force()) 106 // allocate size bytes and return pointer to them (caller must force())

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines