Home The GNU C Library www.imodulo.com · 2003-04-05
Imodulo

Status of an Obstack

[ Up: Obstacks ]
[ Previous: Extra Fast Growing ][ Next: Obstacks Data Alignment ]

Here are functions that provide information on the current status of allocation in an obstack. You can use them to learn about an object while still growing it.

- Function: void * obstack_base (struct obstack *obstack-ptr)

This function returns the tentative address of the beginning of the currently growing object in obstack-ptr. If you finish the object immediately, it will have that address. If you make it larger first, it may outgrow the current chunk--then its address will change!

If no object is growing, this value says where the next object you allocate will start (once again assuming it fits in the current chunk).

- Function: void * obstack_next_free (struct obstack *obstack-ptr)

This function returns the address of the first free byte in the current chunk of obstack obstack-ptr. This is the end of the currently growing object. If no object is growing, obstack_next_free returns the same value as obstack_base.

- Function: int obstack_object_size (struct obstack *obstack-ptr)

This function returns the size in bytes of the currently growing object. This is equivalent to

obstack_next_free (obstack-ptr) - obstack_base (obstack-ptr)