This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 0/5] obstacks again


On Tue, Nov 04, 2014 at 12:43:05AM -0800, Paul Eggert wrote:
> >I've added: "Earlier versions of obstacks allowed you to use
> >@code{obstack_blank} to shrink objects. This will no longer work."
> 
> But this doesn't suffice for obstack_blank_stack, which *can* shrink objects
> and where user code relies on this feature.

Right, the entire para on shrinking object is now:

@cindex shrinking objects
You can use @code{obstack_blank_fast} with a ``negative'' size
argument to make the current object smaller.  Just don't try to shrink
it beyond zero length---there's no telling what will happen if you do
that.  Earlier versions of obstacks allowed you to use
@code{obstack_blank} to shrink objects.  This will no longer work.

> I installed the attached patches to gnulib to try to implement the above;
> please let me know of any issues.

Thanks for doing all this.  I particularly like the removal of
obstack_chunk_alloc and obstack_chunk_free casts for version 2, except
here:

#define obstack_chunkfun(h, newchunkfun)				      \
  ((void) ((h)->chunkfun.extra = _OBSTACK_CAST (void *(*) (void *, size_t),   \
                                                newchunkfun)))

and in obstack_freefun.  I think you need to keep the casts, otherwise
you can only specify new extra arg alloc and free functions.

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]