14 lines
502 B
C
14 lines
502 B
C
/* save memory for constant strings by keeping a list of the ones that
|
|
* we already saw and not allocating memory for each new one. The only
|
|
* API is "add string and return pointer". Will try to insert the
|
|
* string in the table. If the same string was already there, it will
|
|
* return a pointer to that string, otherwise it will insert a copy of
|
|
* the new string. */
|
|
|
|
struct stringduptable {
|
|
size_t n,a;
|
|
const char** s;
|
|
};
|
|
|
|
const char* strduptab_add(struct stringduptable* t,const char* s);
|