diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-09-05 13:34:49 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-09-05 13:34:49 +0000 |
| commit | 14f8b96b563dda9f7d61f5dc1cde14436ef6ea69 (patch) | |
| tree | 5c5c8501f90ca74c5e3655301288d1c3d36d55d4 /src/runtime/c/gu | |
| parent | 46f2460a926a93a5bff360b0bfe7a52a983f2a56 (diff) | |
remove the string internalization since it slows down grammar loading with little benefit
Diffstat (limited to 'src/runtime/c/gu')
| -rw-r--r-- | src/runtime/c/gu/intern.c | 59 | ||||
| -rw-r--r-- | src/runtime/c/gu/intern.h | 24 |
2 files changed, 0 insertions, 83 deletions
diff --git a/src/runtime/c/gu/intern.c b/src/runtime/c/gu/intern.c deleted file mode 100644 index 35eaa1c5f..000000000 --- a/src/runtime/c/gu/intern.c +++ /dev/null @@ -1,59 +0,0 @@ -#include "intern.h" - -struct GuIntern { - GuPool* str_pool; - GuMap* map; -}; - -GuIntern* -gu_new_intern(GuPool* str_pool, GuPool* pool) -{ - GuIntern* intern = gu_new(GuIntern, pool); - intern->str_pool = str_pool; - intern->map = gu_new_set(const char*, gu_str_hasher, pool); - return intern; -} - -const char* -gu_intern_str(GuIntern* intern, const char* cstr) -{ - const char* const* strp = gu_map_find_key(intern->map, &cstr); - if (strp) { - return *strp; - } - const char* str = gu_strdup(cstr, intern->str_pool); - gu_map_insert(intern->map, &str); - return str; -} - - - - -struct GuSymTable { - GuPool* sym_pool; - GuMap* map; -}; - -GuSymTable* -gu_new_symtable(GuPool* sym_pool, GuPool* pool) -{ - GuSymTable* tab = gu_new(GuSymTable, pool); - tab->sym_pool = sym_pool; - tab->map = gu_new_set(GuSymbol, gu_string_hasher, pool); - return tab; -} - -GuSymbol -gu_symtable_intern(GuSymTable* tab, GuString string) -{ - if (gu_string_is_stable(string)) { - return string; - } - const GuSymbol* symp = gu_map_find_key(tab->map, &string); - if (symp) { - return *symp; - } - GuSymbol sym = gu_string_copy(string, tab->sym_pool); - gu_map_insert(tab->map, &sym); - return sym; -} diff --git a/src/runtime/c/gu/intern.h b/src/runtime/c/gu/intern.h deleted file mode 100644 index bf9e9b321..000000000 --- a/src/runtime/c/gu/intern.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef GU_INTERN_H_ -#define GU_INTERN_H_ - -#include <gu/map.h> -#include <gu/str.h> -#include <gu/string.h> - -typedef struct GuIntern GuIntern; - -GuIntern* gu_new_intern(GuPool* str_pool, GuPool* pool); -const char* gu_intern_str(GuIntern* intern, const char* cstr); - - -typedef struct GuSymTable GuSymTable; - -typedef GuString GuSymbol; - -GuSymTable* -gu_new_symtable(GuPool* sym_pool, GuPool* pool); - -GuSymbol -gu_symtable_intern(GuSymTable* symtab, GuString string); - -#endif /* GU_INTERN_H_ */ |
