Lines Matching refs:an

12 general: an obstack can contain any number of objects of any size.  They
18 * Creating Obstacks:: How to declare an obstack in your program.
21 * Allocation in an Obstack:: Allocating objects in an obstack.
22 * Freeing Obstack Objects:: Freeing objects in an obstack.
25 * Growing Objects:: Making an object bigger by stages.
28 * Status of an Obstack:: Inquiries about the status of an obstack.
56 variable number of different stacks. (You can even allocate an
61 *}. In the following, we often say ``an obstack'' when strictly
68 The obstack library obtains a new chunk whenever you allocate an object
111 as an obstack, it must initialize the obstack by calling
125 Here are two examples of how to allocate the space for an obstack and
126 initialize it. First, an obstack that is a static variable:
135 Second, an obstack that is itself dynamically allocated:
162 @node Allocation in an Obstack
163 @subsubsection Allocation in an Obstack
166 The most direct way to allocate an object in an obstack is with
172 This allocates an uninitialized block of @var{size} bytes in an obstack
176 requires you to specify an @var{obstack-ptr} as the first argument.
215 Like @code{obstack_copy}, but appends an extra byte containing a null
220 of characters into an obstack as a null-terminated string. Here is an
236 @subsubsection Freeing Objects in an Obstack
239 To free an object allocated in an obstack, use the function
248 is freed. Otherwise, @var{object} must be the address of an object
253 Note that if @var{object} is a null pointer, the result is an
254 uninitialized obstack. To free all memory in an obstack but leave it
262 Recall that the objects in an obstack are grouped into chunks. When all
276 If you are using an old-fashioned @w{non-ISO C} compiler, all the obstack
329 build up an object step by step, adding one or more bytes at a time to the
335 You don't need to do anything special when you start to grow an object.
368 @var{size} bytes copied from @var{data}, followed by an additional null
405 @code{obstack_alloc} (@pxref{Allocation in an Obstack}).
408 When you build an object by growing it, you will probably need to know
422 If you have started growing an object and wish to cancel it, you should
461 growing object (or to an object about to be started) in obstack
504 So, each time you use an ordinary growth function, check afterward for
509 Here is an example:
540 @node Status of an Obstack
541 @subsubsection Status of an Obstack
546 allocation in an obstack. You can use them to learn about an object while
586 Each obstack has an @dfn{alignment boundary}; each object allocated in
587 the obstack automatically starts on an address that is a multiple of the
591 To access an obstack's alignment boundary, use the macro
599 bit in the address of an object should be 0. The mask value should be one
604 addresses are multiples of 4. A mask value of 0 means an object can start
607 The expansion of the macro @code{obstack_alignment_mask} is an lvalue,
619 @emph{after} the next time an object is allocated or finished in the
620 obstack. If you are not growing an object, you can make the new
668 Since this macro expands to an lvalue, you can specify a new chunk size by
685 takes the address of an obstack (@code{struct obstack *}) as its first
690 Initialize use of an obstack. @xref{Creating Obstacks}.
693 Allocate an object of @var{size} uninitialized bytes.
694 @xref{Allocation in an Obstack}.
697 Allocate an object of @var{size} bytes, with contents copied from
698 @var{address}. @xref{Allocation in an Obstack}.
701 Allocate an object of @var{size}+1 bytes, with @var{size} of them copied
703 @xref{Allocation in an Obstack}.
747 The mask used for aligning the beginning of an object. This is an
751 The size for allocating chunks. This is an lvalue. @xref{Obstack Chunks}.
755 @xref{Status of an Obstack}.
759 @xref{Status of an Obstack}.