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