PostGIS  2.2.8dev-r@@SVN_REVISION@@

◆ bytebuffer_makeroom()

static void bytebuffer_makeroom ( bytebuffer_t s,
size_t  size_to_add 
)
inlinestatic

If necessary, expand the bytebuffer_t internal buffer to accomodate the specified additional size.

Definition at line 131 of file bytebuffer.c.

References bytebuffer_t::buf_start, bytebuffer_t::capacity, LWDEBUGF, lwrealloc(), bytebuffer_t::readcursor, and bytebuffer_t::writecursor.

Referenced by bytebuffer_append_bulk(), bytebuffer_append_byte(), bytebuffer_append_bytebuffer(), bytebuffer_append_double(), bytebuffer_append_int(), bytebuffer_append_uvarint(), and bytebuffer_append_varint().

132 {
133  LWDEBUGF(2,"Entered bytebuffer_makeroom with space need of %d", size_to_add);
134  size_t current_write_size = (s->writecursor - s->buf_start);
135  size_t capacity = s->capacity;
136  size_t required_size = current_write_size + size_to_add;
137 
138  LWDEBUGF(2,"capacity = %d and required size = %d",capacity ,required_size);
139  while (capacity < required_size)
140  capacity *= 2;
141 
142  if ( capacity > s->capacity )
143  {
144  LWDEBUGF(4,"We need to realloc more memory. New capacity is %d", capacity);
145  s->buf_start = lwrealloc(s->buf_start, capacity);
146  s->capacity = capacity;
147  s->writecursor = s->buf_start + current_write_size;
148  s->readcursor = s->buf_start + (s->readcursor - s->buf_start);
149  }
150  return;
151 }
uint8_t * writecursor
Definition: bytebuffer.h:53
uint8_t * readcursor
Definition: bytebuffer.h:54
size_t capacity
Definition: bytebuffer.h:51
void * lwrealloc(void *mem, size_t size)
Definition: lwutil.c:207
uint8_t * buf_start
Definition: bytebuffer.h:52
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:55
Here is the call graph for this function:
Here is the caller graph for this function: