extern void (*__free_hook) (void *);
extern void *(*__malloc_hook) (size_t);
static void *check_malloc (size_t);
extern void (*__free_hook) (void *);
extern void *(*__malloc_hook) (size_t);
static void *check_malloc (size_t);
/* I originally wrote: "There's really no need to drop core."
I have seen the error of my ways. -slb */
if (strict_free_check)
/* I originally wrote: "There's really no need to drop core."
I have seen the error of my ways. -slb */
if (strict_free_check)
#endif
printf("Freeing unmalloc'ed memory at %p\n", ptr);
__free_hook = check_free;
#endif
printf("Freeing unmalloc'ed memory at %p\n", ptr);
__free_hook = check_free;
#endif
printf("Freeing %p twice\n", ptr);
__free_hook = check_free;
#endif
printf("Freeing %p twice\n", ptr);
__free_hook = check_free;
/* Note: There is no more input blocking in XEmacs */
typedef enum {
block_type, unblock_type, totally_type,
/* Note: There is no more input blocking in XEmacs */
typedef enum {
block_type, unblock_type, totally_type,
- gcpro1_type, gcpro2_type, gcpro3_type, gcpro4_type, ungcpro_type
+ gcpro1_type, gcpro2_type, gcpro3_type, gcpro4_type, gcpro5_type,
+ ungcpro_type
note_block_input (char *file, int line)
{
note_block (file, line, block_type);
note_block_input (char *file, int line)
{
note_block (file, line, block_type);
static void
log_gcpro (char *file, int line, struct gcpro *value, blocktype type)
{
static void
log_gcpro (char *file, int line, struct gcpro *value, blocktype type)
{
gcprohist[j].type == gcpro2_type ? "GCPRO2" :
gcprohist[j].type == gcpro3_type ? "GCPRO3" :
gcprohist[j].type == gcpro4_type ? "GCPRO4" :
gcprohist[j].type == gcpro2_type ? "GCPRO2" :
gcprohist[j].type == gcpro3_type ? "GCPRO3" :
gcprohist[j].type == gcpro4_type ? "GCPRO4" :