void stringstore_deinit(void) { if(stringstore!=NULL){ Rb_node node; while ((node=rb_first(stringstore))!=rb_nil(stringstore)) { node->v.ival = 1; stringstore_free((StringId)node); } } }
void rb_free_tree(Rb_node n) { if (!ishead(n)) { fprintf(stderr, "ERROR: Rb_free_tree called on a non-head node\n"); exit(1); } while(rb_first(n) != rb_nil(n)) { rb_delete_node(rb_first(n)); } free(n); }