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