/* A string intern table.
*
* The intern table holds a list of strings. Given a new string, we
* either str_dup it and add it to the table or return a ref to the
* existing copy of the string from the table if present.
*
* This implementation has one big intern table that's designed to be
* used during db load then freed all at once. It might be
* interesting to intern all strings even during runtime. Somebody
* else can do this.
* */
#ifndef Str_Intern_h
#define Str_Intern_h
/* 0 for a default size */
extern void str_intern_open(int table_size);
extern void str_intern_close(void);
/* Make an immutable copy of s. If there's an intern table open,
possibly share storage. */
extern const char *str_intern(const char *s);
#endif
syntax highlighted by Code2HTML, v. 0.9.1