mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 11:16:02 +00:00
obstack: size_t → _OBSTACK_CHUNK_SIZE_T
* lib/obstack.c (_obstack_begin, _obstack_begin_1): * lib/obstack.in.h (struct obstack, obstack_init, obstack_begin) (obstack_specify_allocation) (obstack_specify_allocation_with_arg, obstack_chunkfun): Use _OBSTACK_CHUNK_SIZE_T instead of size_t in places where glibc uses unsigned long rather than size_t. This makes no difference with Gnulib, but should help allay any concerns that merging Gnulib with glibc might change glibc’s ABI on obsolescent glibc platforms where size_t is unsigned int.
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
2025-05-05 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
obstack: size_t → _OBSTACK_CHUNK_SIZE_T
|
||||
* lib/obstack.c (_obstack_begin, _obstack_begin_1):
|
||||
* lib/obstack.in.h (struct obstack, obstack_init, obstack_begin)
|
||||
(obstack_specify_allocation)
|
||||
(obstack_specify_allocation_with_arg, obstack_chunkfun):
|
||||
Use _OBSTACK_CHUNK_SIZE_T instead of size_t in places where
|
||||
glibc uses unsigned long rather than size_t. This makes
|
||||
no difference with Gnulib, but should help allay any concerns
|
||||
that merging Gnulib with glibc might change glibc’s ABI
|
||||
on obsolescent glibc platforms where size_t is unsigned int.
|
||||
|
||||
obstack: rename to _OBSTACK_CHUNK_SIZE_T
|
||||
* lib/obstack.in.h (_OBSTACK_CHUNK_SIZE_T):
|
||||
Rename from _CHUNK_SIZE_T, for namespace prefix consistency.
|
||||
|
||||
+2
-2
@@ -139,7 +139,7 @@ _obstack_begin_worker (struct obstack *h,
|
||||
int
|
||||
_obstack_begin (struct obstack *h,
|
||||
_OBSTACK_INDEX_T size, _OBSTACK_INDEX_T alignment,
|
||||
void *(*chunkfun) (size_t),
|
||||
void *(*chunkfun) (_OBSTACK_CHUNK_SIZE_T),
|
||||
void (*freefun) (void *))
|
||||
{
|
||||
h->chunkfun.plain = chunkfun;
|
||||
@@ -151,7 +151,7 @@ _obstack_begin (struct obstack *h,
|
||||
int
|
||||
_obstack_begin_1 (struct obstack *h,
|
||||
_OBSTACK_INDEX_T size, _OBSTACK_INDEX_T alignment,
|
||||
void *(*chunkfun) (void *, size_t),
|
||||
void *(*chunkfun) (void *, _OBSTACK_CHUNK_SIZE_T),
|
||||
void (*freefun) (void *, void *),
|
||||
void *arg)
|
||||
{
|
||||
|
||||
+17
-9
@@ -210,8 +210,8 @@ struct obstack /* control current object in current chunk */
|
||||
/* These prototypes vary based on 'use_extra_arg'. */
|
||||
union
|
||||
{
|
||||
void *(*plain) (size_t);
|
||||
void *(*extra) (void *, size_t);
|
||||
void *(*plain) (_OBSTACK_CHUNK_SIZE_T);
|
||||
void *(*extra) (void *, _OBSTACK_CHUNK_SIZE_T);
|
||||
} chunkfun;
|
||||
union
|
||||
{
|
||||
@@ -244,10 +244,11 @@ extern void _obstack_newchunk (struct obstack *, _OBSTACK_INDEX_T);
|
||||
extern void _obstack_free (struct obstack *, void *);
|
||||
extern int _obstack_begin (struct obstack *,
|
||||
_OBSTACK_INDEX_T, _OBSTACK_INDEX_T,
|
||||
void *(*) (size_t), void (*) (void *));
|
||||
void *(*) (_OBSTACK_CHUNK_SIZE_T),
|
||||
void (*) (void *));
|
||||
extern int _obstack_begin_1 (struct obstack *,
|
||||
_OBSTACK_INDEX_T, _OBSTACK_INDEX_T,
|
||||
void *(*) (void *, size_t),
|
||||
void *(*) (void *, _OBSTACK_CHUNK_SIZE_T),
|
||||
void (*) (void *, void *), void *);
|
||||
extern _OBSTACK_INDEX_T _obstack_memory_used (struct obstack *)
|
||||
__attribute_pure__;
|
||||
@@ -283,26 +284,33 @@ extern int obstack_exit_failure;
|
||||
/* To prevent prototype warnings provide complete argument list. */
|
||||
#define obstack_init(h) \
|
||||
_obstack_begin ((h), 0, 0, \
|
||||
_OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \
|
||||
_OBSTACK_CAST (void *(*) (_OBSTACK_CHUNK_SIZE_T), \
|
||||
obstack_chunk_alloc), \
|
||||
_OBSTACK_CAST (void (*) (void *), obstack_chunk_free))
|
||||
|
||||
#define obstack_begin(h, size) \
|
||||
_obstack_begin ((h), (size), 0, \
|
||||
_OBSTACK_CAST (void *(*) (size_t), obstack_chunk_alloc), \
|
||||
_OBSTACK_CAST (void *(*) (_OBSTACK_CHUNK_SIZE_T), \
|
||||
obstack_chunk_alloc), \
|
||||
_OBSTACK_CAST (void (*) (void *), obstack_chunk_free))
|
||||
|
||||
#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
|
||||
_obstack_begin ((h), (size), (alignment), \
|
||||
_OBSTACK_CAST (void *(*) (size_t), chunkfun), \
|
||||
_OBSTACK_CAST (void *(*) (_OBSTACK_CHUNK_SIZE_T), \
|
||||
chunkfun), \
|
||||
_OBSTACK_CAST (void (*) (void *), freefun))
|
||||
|
||||
#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
|
||||
_obstack_begin_1 ((h), (size), (alignment), \
|
||||
_OBSTACK_CAST (void *(*) (void *, size_t), chunkfun), \
|
||||
_OBSTACK_CAST (void *(*) (void *, _OBSTACK_CHUNK_SIZE_T), \
|
||||
chunkfun), \
|
||||
_OBSTACK_CAST (void (*) (void *, void *), freefun), arg)
|
||||
|
||||
#define obstack_chunkfun(h, newchunkfun) \
|
||||
((void) ((h)->chunkfun.extra = (void *(*) (void *, size_t)) (newchunkfun)))
|
||||
((void) \
|
||||
((h)->chunkfun.extra = _OBSTACK_CAST (void *(*) (void *, \
|
||||
_OBSTACK_CHUNK_SIZE_T), \
|
||||
newchunkfun)))
|
||||
|
||||
#define obstack_freefun(h, newfreefun) \
|
||||
((void) ((h)->freefun.extra = (void *(*) (void *, void *)) (newfreefun)))
|
||||
|
||||
Reference in New Issue
Block a user