Skip to content
  • Thomas Haller's avatar
    libnm: rework setting metadata for property handling · 37938043
    Thomas Haller authored
    NMSetting internally already tracked a list of all proper GObject properties
    and D-Bus-only properties.
    
    Rework the tracking of the list, so that:
    
    - instead of attaching the data to the GType of the setting via
      g_type_set_qdata(), it is tracked in a static array indexed by
      NMMetaSettingType. This allows to find the setting-data by simple
      pointer arithmetic, instead of taking a look and iterating (like
      g_type_set_qdata() does).
    
      Note, that this is still thread safe, because the static table entry is
      initialized in the class-init function with _nm_setting_class_commit().
      And it only accessed by following a NMSettingClass instance, thus
      the class constructor already ran (maybe not for all setting classes,
      but for the particular one that we look up).
    
      I think this makes initialization of the metadata simpler to
      understand.
      Previously, in a first phase each class would attach the metadata
      to the GType as setting_property_overrides_...
    37938043