On 13-10-24 08:34 PM, Lex Trotman wrote:
[...]

We could use GHashTable as a Set to contain the documents internally
afterwards. It doesn't make much sense to have a particular document
instantiated more than once anyway and the only order we care about for
documents here is maybe the order/time they were opened, which is better
solved with a "open timestamp" or something, IMO.


The current index does not depend on opening order since it recycles the
document structs, so there can be no dependency on the current order that
makes sense.


I don't follow. I didn't mean to imply the current way cares about the index order, I'm just saying since we don't care, a good data structure for that is a "set", which in GLib is done with GHashTable.

What would you use as the key to the hash/set, and why? A simple list or
array is all thats needed to hold pointers to open documents and iterate
them.


I'd use it, as mentioned, as a "set" data structure (unique unordered collection, like std::unordered_set in C++ or set() in Python) where the key is the document and value is the document (GHashTable has special case for use as a "set" like this to avoid extra memory allocation IIRC). It's definitively not complicated and the GHashTable API is quite nice, IMO.

Cheers,
Matthew Brush














_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to