comparison src/gmalloc.c @ 88:821dec489c24 r20-0

Import from CVS: tag r20-0
author cvs
date Mon, 13 Aug 2007 09:09:59 +0200
parents 364816949b59
children 4be1180a9e89
comparison
equal deleted inserted replaced
87:7df2982f5c17 88:821dec489c24
256 /* If not NULL, this function is called after each time 256 /* If not NULL, this function is called after each time
257 `__morecore' is called to increase the data size. */ 257 `__morecore' is called to increase the data size. */
258 extern void (*__after_morecore_hook) __P ((void)); 258 extern void (*__after_morecore_hook) __P ((void));
259 259
260 /* Nonzero if `malloc' has been called and done its initialization. */ 260 /* Nonzero if `malloc' has been called and done its initialization. */
261 extern int __malloc_initialized; 261 /* extern int __malloc_initialized; */
262 262
263 /* Hooks for debugging versions. */ 263 /* Hooks for debugging versions. */
264 extern void (*__free_hook) __P ((__ptr_t __ptr)); 264 extern void (*__free_hook) __P ((__ptr_t __ptr));
265 extern __ptr_t (*__malloc_hook) __P ((size_t __size)); 265 extern __ptr_t (*__malloc_hook) __P ((size_t __size));
266 extern __ptr_t (*__realloc_hook) __P ((__ptr_t __ptr, size_t __size)); 266 extern __ptr_t (*__realloc_hook) __P ((__ptr_t __ptr, size_t __size));
429 __malloc_size_t _bytes_used; 429 __malloc_size_t _bytes_used;
430 __malloc_size_t _chunks_free; 430 __malloc_size_t _chunks_free;
431 __malloc_size_t _bytes_free; 431 __malloc_size_t _bytes_free;
432 432
433 /* Are you experienced? */ 433 /* Are you experienced? */
434 int __malloc_initialized; 434 static int __malloc_initialized;
435 435
436 void (*__after_morecore_hook) __P ((void)); 436 void (*__after_morecore_hook) __P ((void));
437 437
438 /* Aligned allocation. */ 438 /* Aligned allocation. */
439 static __ptr_t align __P ((__malloc_size_t)); 439 static __ptr_t align __P ((__malloc_size_t));
554 #else 554 #else
555 if (size == 0) 555 if (size == 0)
556 return NULL; 556 return NULL;
557 #endif 557 #endif
558 558
559 if (__malloc_hook != NULL)
560 return (*__malloc_hook) (size);
561
559 if (!__malloc_initialized) 562 if (!__malloc_initialized)
560 if (!initialize ()) 563 if (!initialize ())
561 return NULL; 564 return NULL;
562
563 if (__malloc_hook != NULL)
564 return (*__malloc_hook) (size);
565 565
566 #ifdef SUNOS_LOCALTIME_BUG 566 #ifdef SUNOS_LOCALTIME_BUG
567 /* Workaround for localtime() allocating 8 bytes and writing 9 bug... */ 567 /* Workaround for localtime() allocating 8 bytes and writing 9 bug... */
568 if (size < 16) 568 if (size < 16)
569 size = 16; 569 size = 16;