+ if (allocs != NULL) {
+ alloc_size = sizeof(Allocated);
+ if ((a = (Allocated *) malloc(alloc_size)) == NULL) {
+ /* don't fflush(stdout); WORKAROUND bug in Linux glibc */
+ MallocFailHook((W_) alloc_size,
+ "creating info for debugging allocator");
+ stg_exit(EXIT_INTERNAL_ERROR);
+ }
+ a->addr = addr;
+ a->len = len;
+ ACQUIRE_LOCK(&allocator_mutex);
+ a->next = allocs->next;
+ allocs->next = a;
+ RELEASE_LOCK(&allocator_mutex);