Lines Matching refs:h

121 # define CALL_CHUNKFUN(h, size) \  argument
122 (((h)->use_extra_arg) \
123 ? (*(h)->chunkfun)((h)->extra_arg, (size)) \
124 : (*(struct _obstack_chunk *(*)(long))(h)->chunkfun)((size)))
126 # define CALL_FREEFUN(h, old_chunk) \ argument
128 if ((h)->use_extra_arg) \
129 (*(h)->freefun)((h)->extra_arg, (old_chunk)); \
131 (*(void (*)(void *))(h)->freefun)((old_chunk)); \
144 _obstack_begin (struct obstack *h, in _obstack_begin() argument
170 h->chunkfun = (struct _obstack_chunk * (*) (void *, long)) chunkfun; in _obstack_begin()
171 h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; in _obstack_begin()
172 h->chunk_size = size; in _obstack_begin()
173 h->alignment_mask = alignment - 1; in _obstack_begin()
174 h->use_extra_arg = 0; in _obstack_begin()
176 chunk = h->chunk = CALL_CHUNKFUN (h, h->chunk_size); in _obstack_begin()
179 h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents, in _obstack_begin()
181 h->chunk_limit = chunk->limit in _obstack_begin()
182 = (char *) chunk + h->chunk_size; in _obstack_begin()
185 h->maybe_empty_object = 0; in _obstack_begin()
186 h->alloc_failed = 0; in _obstack_begin()
191 _obstack_begin_1 (struct obstack *h, int size, int alignment, in _obstack_begin_1() argument
217 h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun; in _obstack_begin_1()
218 h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; in _obstack_begin_1()
219 h->chunk_size = size; in _obstack_begin_1()
220 h->alignment_mask = alignment - 1; in _obstack_begin_1()
221 h->extra_arg = arg; in _obstack_begin_1()
222 h->use_extra_arg = 1; in _obstack_begin_1()
224 chunk = h->chunk = CALL_CHUNKFUN (h, h->chunk_size); in _obstack_begin_1()
227 h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents, in _obstack_begin_1()
229 h->chunk_limit = chunk->limit in _obstack_begin_1()
230 = (char *) chunk + h->chunk_size; in _obstack_begin_1()
233 h->maybe_empty_object = 0; in _obstack_begin_1()
234 h->alloc_failed = 0; in _obstack_begin_1()
245 _obstack_newchunk (struct obstack *h, int length) in _obstack_newchunk() argument
247 struct _obstack_chunk *old_chunk = h->chunk; in _obstack_newchunk()
250 long obj_size = h->next_free - h->object_base; in _obstack_newchunk()
256 new_size = (obj_size + length) + (obj_size >> 3) + h->alignment_mask + 100; in _obstack_newchunk()
257 if (new_size < h->chunk_size) in _obstack_newchunk()
258 new_size = h->chunk_size; in _obstack_newchunk()
261 new_chunk = CALL_CHUNKFUN (h, new_size); in _obstack_newchunk()
264 h->chunk = new_chunk; in _obstack_newchunk()
266 new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size; in _obstack_newchunk()
270 __PTR_ALIGN ((char *) new_chunk, new_chunk->contents, h->alignment_mask); in _obstack_newchunk()
275 if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT) in _obstack_newchunk()
280 = ((COPYING_UNIT *) h->object_base)[i]; in _obstack_newchunk()
290 object_base[i] = h->object_base[i]; in _obstack_newchunk()
295 if (!h->maybe_empty_object in _obstack_newchunk()
296 && (h->object_base in _obstack_newchunk()
298 h->alignment_mask))) in _obstack_newchunk()
301 CALL_FREEFUN (h, old_chunk); in _obstack_newchunk()
304 h->object_base = object_base; in _obstack_newchunk()
305 h->next_free = h->object_base + obj_size; in _obstack_newchunk()
307 h->maybe_empty_object = 0; in _obstack_newchunk()
319 int _obstack_allocated_p (struct obstack *h, void *obj) __attribute_pure__;
322 _obstack_allocated_p (struct obstack *h, void *obj) in _obstack_allocated_p() argument
327 lp = (h)->chunk; in _obstack_allocated_p()
345 __obstack_free (struct obstack *h, void *obj) in __obstack_free() argument
350 lp = h->chunk; in __obstack_free()
357 CALL_FREEFUN (h, lp); in __obstack_free()
361 h->maybe_empty_object = 1; in __obstack_free()
365 h->object_base = h->next_free = (char *) (obj); in __obstack_free()
366 h->chunk_limit = lp->limit; in __obstack_free()
367 h->chunk = lp; in __obstack_free()
381 _obstack_memory_used (struct obstack *h) in strong_alias()
386 for (lp = h->chunk; lp != 0; lp = lp->prev) in strong_alias()