pike.git / src / stralloc.c

version» Context lines:

pike.git/src/stralloc.c:8:   #include "pike_macros.h"   #include "dynamic_buffer.h"   #include "pike_macros.h"   #include "pike_memory.h"   #include "error.h"   #include "gc.h"   #include "stuff.h"      #include <ctype.h>    - RCSID("$Id: stralloc.c,v 1.34 1998/04/20 18:53:23 grubba Exp $"); + RCSID("$Id: stralloc.c,v 1.35 1998/04/24 00:09:35 hubbe Exp $");      #define BEGIN_HASH_SIZE 997   #define MAX_AVG_LINK_LENGTH 3   #define HASH_PREFIX 64      unsigned INT32 htable_size=0;   static unsigned int hashprimes_entry=0;   static struct pike_string **base_table=0;   static unsigned INT32 full_hash_value;   unsigned INT32 num_strings=0;
pike.git/src/stralloc.c:265:      /*** Free strings ***/      void unlink_pike_string(struct pike_string *s)   {    int h;       h=StrHash(s->str,s->len);    propagate_shared_string(s,h);    base_table[h]=s->next; + #ifdef DEBUG +  s->next=(struct pike_string *)-1; + #endif    num_strings--;   }      void really_free_string(struct pike_string *s)   {   #ifdef DEBUG    extern int d_flag;    if(d_flag > 2)    {    if(s->next == (struct pike_string *)-1)    fatal("Freeing shared string again!\n");       if(((long)s->next) & 1)    fatal("Freeing shared string again, memory corrupt or other bug!\n"); -  -  unlink_pike_string(s); -  s->next=(struct pike_string *)-1; -  return; +     }   #endif    unlink_pike_string(s);    free((char *)s);   }      void debug_free_string(struct pike_string *s)   {    if(--s->refs<=0)    really_free_string(s);