pike.git / src / stralloc.c

version» Context lines:

pike.git/src/stralloc.c:2175:    }    free(base_table);    base_table=0;    num_strings=0;      #ifdef DO_PIKE_CLEANUP    ba_destroy(&string_allocator);   #endif /* DO_PIKE_CLEANUP */   }    + void count_string_types() { +  unsigned INT32 e; +  size_t num_static = 0, num_short = 0; +  +  for (e = 0; e < htable_size; e++) { +  struct pike_string * s; +  +  for (s = base_table[e]; s; s = s->next) +  switch (s->flags & STRING_ALLOC_MASK) { +  case STRING_ALLOC_BA: +  num_short ++; +  break; +  case STRING_ALLOC_STATIC: +  num_static ++; +  break; +  } +  } +  +  push_static_text("num_short_pike_strings"); +  push_ulongest(num_short); +  push_static_text("num_static_pike_strings"); +  push_ulongest(num_static); + } +    size_t count_memory_in_string(const struct pike_string * s) {    size_t size = sizeof(struct pike_string);       switch (s->flags & STRING_ALLOC_MASK) {    case STRING_ALLOC_BA:    size += sizeof(struct pike_string);    break;    case STRING_ALLOC_MALLOC:    size += PIKE_ALIGNTO(((s->len + 1) << s->size_shift), 4);    break;