diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-09-20 14:42:31 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2013-01-02 00:35:39 -0600 |
commit | d58c31e6dcfd8c5e6fe3ead4a69216b059558223 (patch) | |
tree | ab6353317504e63eb28ab9030b995b3b576067ae /src/fcobjshash.gperf.h | |
parent | 7c0f79c5fe9db50b55112a1048a8f1c6a80e96fa (diff) | |
download | fontconfig-d58c31e6dcfd8c5e6fe3ead4a69216b059558223.tar.gz |
Use a static perfect hash table for object-name lookup
The hash table is generated by gperf. For runtime element types, we use
a append-only linked list.
A bit clumsy, but I think I got it right.
Diffstat (limited to 'src/fcobjshash.gperf.h')
-rw-r--r-- | src/fcobjshash.gperf.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/fcobjshash.gperf.h b/src/fcobjshash.gperf.h new file mode 100644 index 0000000..94002b1 --- /dev/null +++ b/src/fcobjshash.gperf.h @@ -0,0 +1,26 @@ +%{ +CUT_OUT_BEGIN +#include <fontconfig/fontconfig.h> +CUT_OUT_END +%} +%struct-type +%language=C +%includes +%enum +%readonly-tables +%define slot-name name +%define hash-function-name FcObjectTypeHash +%define lookup-function-name FcObjectTypeLookup + +%pic +%define string-pool-name FcObjectTypeNamePool + +struct FcObjectTypeInfo { + int name; + int id; +}; + +%% +#define FC_OBJECT(NAME, Type) FC_##NAME, FC_##NAME##_OBJECT +#include "fcobjs.h" +#undef FC_OBJECT |