Lines Matching refs:chunk

68 The way we do this is to take a large chunk, allocating memory from
69 low addresses. When you want to build a symbol in the chunk you just
70 add chars above the current "high water mark" in the chunk. When you
73 Mostly the chars will not burst over the highest address of the chunk,
74 because you would typically expect a chunk to be (say) 100 times as
84 When the chars burst over a chunk boundary, we allocate a larger
85 chunk, and then copy the partly formed object from the end of the old
86 chunk to the beginning of the new larger chunk. We then carry on
95 We carve out one object at a time from the current chunk.
162 struct _obstack_chunk /* Lives at front of each chunk. */
164 char *limit; /* 1 past end of this chunk */
165 struct _obstack_chunk *prev; /* address of prior chunk or NULL */
169 struct obstack /* control current object in current chunk */
172 struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
175 char *chunk_limit; /* address of char after current chunk */
184 void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
186 struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
187 void (*freefun) (); /* User's function to free a chunk. */
188 char *extra_arg; /* first arg for chunk alloc/dealloc funcs */
190 unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
192 chunk contains a zero-length object. This
193 prevents freeing the chunk if we allocate
194 a bigger chunk to replace it. */
280 because a new chunk might be needed to hold the final size. */
288 /* Pointer to next byte not yet allocated in current chunk. */
390 (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
492 if (__o1->next_free - (char *)__o1->chunk \
493 > __o1->chunk_limit - (char *)__o1->chunk) \
502 if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
516 ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
588 (((h)->next_free - (char *) (h)->chunk \
589 > (h)->chunk_limit - (char *) (h)->chunk) \
596 ( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
597 (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
599 = (h)->temp + (char *) (h)->chunk) \
600 : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
603 ( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
604 (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
606 = (h)->temp + (char *) (h)->chunk) \
607 : (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))