Moriyoshi Koizumi
moriy****@users*****
2002年 12月 8日 (日) 20:00:02 JST
moriyoshi 02/12/08 20:00:02 Modified: mbfl mbfilter.c mbfilter.h Log: Changed the way to specify the allocators Revision Changes Path 1.3 +12 -8 libmbfl/mbfl/mbfilter.c Index: mbfilter.c =================================================================== RCS file: /cvsroot/php-i18n/libmbfl/mbfl/mbfilter.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mbfilter.c 8 Dec 2002 08:18:44 -0000 1.2 +++ mbfilter.c 8 Dec 2002 11:00:02 -0000 1.3 @@ -163,14 +163,18 @@ static void *__mbfl__realloc(void *, size_t); static void *__mbfl__calloc(unsigned int, size_t); static void __mbfl__free(void *); - -void *(*__mbfl_malloc)(size_t) = __mbfl__malloc; -void *(*__mbfl_realloc)(void *, size_t) = __mbfl__realloc; -void *(*__mbfl_calloc)(unsigned int, size_t) = __mbfl__calloc; -void (*__mbfl_free)(void *) = __mbfl__free; -void *(*__mbfl_pmalloc)(size_t) = __mbfl__malloc; -void *(*__mbfl_prealloc)(void *, size_t) = __mbfl__realloc; -void (*__mbfl_pfree)(void *) = __mbfl__free; + +static mbfl_allocators default_allocators = { + __mbfl__malloc, + __mbfl__realloc, + __mbfl__calloc, + __mbfl__free, + __mbfl__malloc, + __mbfl__realloc, + __mbfl__free +}; + +mbfl_allocators *__mbfl_allocators = &default_allocators; static const mbfl_language *mbfl_language_ptr_table[] = { &mbfl_language_uni, 1.3 +18 -14 libmbfl/mbfl/mbfilter.h Index: mbfilter.h =================================================================== RCS file: /cvsroot/php-i18n/libmbfl/mbfl/mbfilter.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mbfilter.h 8 Dec 2002 08:18:44 -0000 1.2 +++ mbfilter.h 8 Dec 2002 11:00:02 -0000 1.3 @@ -592,20 +592,24 @@ } mbfl_html_entity; /* allocators */ -extern void *(*__mbfl_malloc)(size_t); -extern void *(*__mbfl_realloc)(void *, size_t); -extern void *(*__mbfl_calloc)(unsigned int, size_t); -extern void (*__mbfl_free)(void *); -extern void *(*__mbfl_pmalloc)(size_t); -extern void *(*__mbfl_prealloc)(void *, size_t); -extern void (*__mbfl_pfree)(void *); +typedef struct _mbfl_allocators { + void *(*malloc)(size_t); + void *(*realloc)(void *, size_t); + void *(*calloc)(unsigned int, size_t); + void (*free)(void *); + void *(*pmalloc)(size_t); + void *(*prealloc)(void *, size_t); + void (*pfree)(void *); +} mbfl_allocators; -#define mbfl_malloc __mbfl_malloc -#define mbfl_realloc __mbfl_realloc -#define mbfl_calloc __mbfl_calloc -#define mbfl_free __mbfl_free -#define mbfl_pmalloc __mbfl_pmalloc -#define mbfl_prealloc __mbfl_prealloc -#define mbfl_pfree __mbfl_pfree +extern mbfl_allocators *__mbfl_allocators; + +#define mbfl_malloc __mbfl_allocators->malloc +#define mbfl_realloc __mbfl_allocators->realloc +#define mbfl_calloc __mbfl_allocators->calloc +#define mbfl_free __mbfl_allocators->free +#define mbfl_pmalloc __mbfl_allocators->pmalloc +#define mbfl_prealloc __mbfl_allocators->preallloc +#define mbfl_pfree __mbfl_allocators->pfree #endif /* MBFL_MBFILTER_H */