Re: [Evolution-hackers] Subclassable and extendable IMAPX



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




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]