pike.git / src / stralloc.c

version» Context lines:

pike.git/src/stralloc.c:194:    int h;       h=StrHash(s->str,s->len);    propagate_shared_string(s,h);    base_table[h]=s->next;    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"); +     unlink_pike_string(s); -  +  s->next=(struct pike_string *)-1; +  return; +  } + #endif +  unlink_pike_string(s);    free((char *)s);   }         /*    * String table status    */   struct pike_string *add_string_status(int verbose)   {    char b[200];
pike.git/src/stralloc.c:541:    size_+=sizeof(struct pike_string)+p->len;    }    }   #ifdef DEBUG    if(num_strings != num_)    fatal("Num strings is wrong!.\n");   #endif    num[0]=num_;    size[0]=size_;   } +  + #ifdef GC2 +  + void gc_mark_all_strings() + { +  unsigned INT32 e; +  if(!base_table) return; +  for(e=0;e<htable_size;e++) +  { +  struct pike_string *p; +  for(p=base_table[e];p;p=p->next) gc_is_referenced(p); +  } + } + #endif