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.31 1998/04/17 05:13:32 hubbe Exp $"); + RCSID("$Id: stralloc.c,v 1.32 1998/04/17 16:57:12 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:186:         /*** Make new strings ***/      /* note that begin_shared_string expects the _exact_ size of the string,    * not the maximum size    */   struct pike_string *debug_begin_shared_string(int len)   {    struct pike_string *t; + #ifdef DEBUG +  if(d_flag>10) +  verify_shared_strings_tables(); + #endif    t=(struct pike_string *)xalloc(len + sizeof(struct pike_string));    t->str[len]=0;    t->len=len;    return t;   }      static void link_pike_string(struct pike_string *s, int h)   {    s->refs = 0;    s->next = base_table[h];
pike.git/src/stralloc.c:272:      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)