From: <svn...@op...> - 2009-05-28 14:19:07
|
Author: dgollub Date: Thu May 28 16:19:03 2009 New Revision: 5648 URL: http://www.opensync.org/changeset/5648 Log: OSyncMappingEngine & OSyncMappingEntryEngine's don't get freed When the engine is finalized, it doesn't look like the OSyncMappingEngines or OSyncMappingEntryEngines are getting freed. I checked by adding log messages to the *_unref() functions. It looks like that an OSyncMappingEngines holds a reference on each OSyncMappingEntryEngines and each OSyncMappingEntryEngines holds a reference on the OSyncMappingEngines. A nice circle. Original patch by marka Sligthly adapted (coding style: // to /* */) fixes #1122 Modified: trunk/opensync/engine/opensync_mapping_entry_engine.c Modified: trunk/opensync/engine/opensync_mapping_entry_engine.c ============================================================================== --- trunk/opensync/engine/opensync_mapping_entry_engine.c Thu May 28 16:06:41 2009 (r5647) +++ trunk/opensync/engine/opensync_mapping_entry_engine.c Thu May 28 16:19:03 2009 (r5648) @@ -57,7 +57,7 @@ engine->objengine = objengine; - engine->mapping_engine = osync_mapping_engine_ref(mapping_engine); + engine->mapping_engine = mapping_engine; /* No reference taken */ engine->entry = osync_mapping_entry_ref(entry); sink_engine->entries = osync_list_append(sink_engine->entries, engine); @@ -89,9 +89,6 @@ if (engine->change) osync_change_unref(engine->change); - if (engine->mapping_engine) - osync_mapping_engine_unref(engine->mapping_engine); - if (engine->entry) osync_mapping_entry_unref(engine->entry); |