On Tue, 2012-05-22 at 16:38 +0200, Christian Hilberg wrote: > camel-imapx-tokens.txt is the file which is fed to gperf, and the > resulting structs are used by the IMAPX tokenizer. > The tokenizer is called inside imapx_untagged, and its result is > switch()ed on, and the extended untagged handler function, which can > be registered, is called in the default: block of that same switch > statement.
At this point I would advocate ditching gperf and just building an internal hash table of known tokens which subclasses can extend. The tokens could be internalized with g_intern_string() to save a few string comparisons, but I can't imagine that's a huge performance hit in the face of network I/O. I haven't really looked closely as how gperf is used within the parser, so this is admittedly hand-wavy. But clearly a static hash function built from a text file is not going to be extensible the way we need. Matthew Barnes _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers