Revision: 311 http://trac.macosforge.org/projects/darwinbuild/changeset/311 Author: kevin Date: 2006-10-04 02:02:33 -0700 (Wed, 04 Oct 2006) Log Message: ----------- - Delete the entire dictionary prior to inserting; removes obsolete keys. Modified Paths: -------------- trunk/darwinxref/DBDataStore.c Modified: trunk/darwinxref/DBDataStore.c =================================================================== --- trunk/darwinxref/DBDataStore.c 2005-12-01 01:08:50 UTC (rev 310) +++ trunk/darwinxref/DBDataStore.c 2006-10-04 09:02:33 UTC (rev 311) @@ -664,6 +664,13 @@ char* cproj = strdup_cfstr(project); char* cprop = strdup_cfstr(property); + // Delete all keys from the dictionary prior to insertion. + if (project) { + SQL("DELETE FROM properties WHERE build=%Q AND project=%Q AND property=%Q", cbuild, cproj, cprop); + } else { + SQL("DELETE FROM properties WHERE build=%Q AND project IS NULL AND property=%Q", cbuild, cprop); + } + CFArrayRef keys = dictionaryGetSortedKeys(value); CFIndex i, count = CFArrayGetCount(keys); for (i = 0; i < count; ++i) { @@ -671,12 +678,6 @@ char* ckey = strdup_cfstr(key); CFTypeRef cf = CFDictionaryGetValue(value, key); - if (project) { - SQL("DELETE FROM properties WHERE build=%Q AND project=%Q AND property=%Q AND key=%Q", cbuild, cproj, cprop, ckey); - } else { - SQL("DELETE FROM properties WHERE build=%Q AND project IS NULL AND property=%Q AND key=%Q", cbuild, cprop, ckey); - } - if (CFGetTypeID(cf) == CFStringGetTypeID()) { char* cvalu = strdup_cfstr(cf); if (project) {
participants (1)
-
source_changes@macosforge.org