NetworkManager/shared
Thomas Haller 28340588d9 core: remove NMDedupMultiBox object and track NMDedupMultiObj instances directly
Implement the reference counting of NMPObject as part of
NMDedupMultiObj and get rid of NMDedupMultiBox.

With this change, the NMPObject is aware in which NMDedupMultiIndex
instance it is tracked.

- this saves an additional GSlice allocation for the NMDedupMultiBox.

- it is immediately known, whether an NMPObject is tracked by a
  certain NMDedupMultiIndex or not. This saves an additional hash
  lookup.

- previously, when all idx-types cease to reference an NMDedupMultiObj
  instance, it was removed. Now, a tracked objects stays in the
  NMDedupMultiIndex until it's last reference is deleted. This possibly
  extends the lifetime of the object and we may reuse it better.

- it is no longer possible to add one object to more then one
  NMDedupMultiIndex instance. As we anyway want to have only one
  instance to deduplicate the objects, this is fine.

- the ref-counting implementation is now part of NMDedupMultiObj.
  Previously, NMDedupMultiIndex could also track objects that were
  not ref-counted. Hoever, the object anyway *must* implement the
  NMDedupMultiObj API, so this flexibility is unneeded and was not
  used.

- a downside is, that NMPObject grows by one pointer size, even if
  it isn't tracked in the NMDedupMultiIndex. But we really want to
  put all objects into the index for sharing and deduplication. So
  this downside should be acceptable. Still, code like
  nmp_object_stackinit*() needs to handle a larger object.
2017-07-05 18:37:39 +02:00
..
nm-utils core: remove NMDedupMultiBox object and track NMDedupMultiObj instances directly 2017-07-05 18:37:39 +02:00
nm-common-macros.h all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-dbus-compat.h build: rename directory "include" to "shared" 2015-12-24 11:42:37 +01:00
nm-default.h build: disable type checks in G_TYPE_CHECK_INSTANCE_CAST() macros (bgo#771120) 2016-09-12 13:53:34 +02:00
nm-dispatcher-api.h build: cleanup src/Makefile.am 2016-08-11 11:54:18 +02:00
nm-meta-setting.c cli: don't mark field names for translation 2017-04-23 23:45:02 +02:00
nm-meta-setting.h cli: add meta data for NMSettingGeneric 2017-04-12 14:12:20 +02:00
nm-test-libnm-utils.h shared: move shared files to subdirectory "shared/nm-utils/" 2016-06-16 10:45:53 +02:00
nm-test-utils-impl.c build: allow specifying the python interpreter for building 2016-12-14 19:00:42 +01:00
nm-version-macros.h.in release: bump version to 1.9.0 (development) 2017-03-28 16:34:22 +02:00