• Jiří Techet's avatar
    Prepend values to GtkTreeStore to eliminate quadratic complexity · 44fec8f7
    Jiří Techet yazdı
    The tree model nodes consist of GNode structs:
    
    struct GNode {
      gpointer data;
      GNode	  *next;
      GNode	  *prev;
      GNode	  *parent;
      GNode	  *children;
    };
    
    where children are a linked list. To append a value, the list has to be
    walked to the end and with nodes with many children (which is our case)
    this becomes very expensive.
    
    We sort the tree afterwards anyway so it doesn't matter where we insert the
    value.
    44fec8f7
symbols.c 65.7 KB