Skip to content
  • Thomas Haller's avatar
    shared: add NMCListElem · 2aad517b
    Thomas Haller authored
    Sometimes, we want to use CList to track a simple data item. But contrary
    to GList/GSList, we need to define a structure to hold the data pointer
    and the CList member.
    
    Add a generic NMCListElem type that can be used for such simple uses.
    
    Before you ask: why not use GList/GSList? Because even simple operations
    like g_list_append() is O(n), which kinda defeats the purpose of having
    a doubly linked list.
    
    This code is added to a new header file nm-c-list.h, the reason is that
    there is no other good place:
      - "nm-utils/c-list.h" is a clone of upstream, it should not deviate.
      - "nm-utils/c-list-util.h" contains our utils functions for c-list.h
        but should be plain C, independent of glib.
      - "nm-utils/nm-shared-utils.h" contains our glib related utilities,
        but it should not drag in "c-list.h".
    So, "nm-c-list.h" is a utility libray that extends "c-list.h" and
    requires glib.
    2aad517b