- Timestamp:
- 05/08/08 13:50:55 (7 months ago)
- Files:
-
- libwired/trunk/libwired/misc/wi-config.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
libwired/trunk/libwired/misc/wi-config.c
r5445 r5508 130 130 131 131 wi_boolean_t wi_config_read_file(wi_config_t *config) { 132 wi_enumerator_t *enumerator; 132 133 wi_runtime_instance_t *instance; 133 134 wi_file_t *file; 134 135 wi_array_t *array; 136 wi_hash_t *previous_values; 135 137 wi_string_t *string, *name, *value; 136 138 wi_config_type_t type; … … 151 153 wi_lock_lock(config->lock); 152 154 153 if(config->values) 154 wi_release(config->values); 155 else 156 wi_set_add_data_from_array(config->changes, wi_hash_all_keys(config->types)); 155 previous_values = config->values; 157 156 158 157 config->values = wi_hash_init(wi_hash_alloc()); … … 193 192 } 194 193 } 194 195 enumerator = wi_hash_key_enumerator(config->values); 196 197 while((name = wi_enumerator_next_data(enumerator))) { 198 instance = wi_hash_data_for_key(config->values, name); 199 200 if(!previous_values || !wi_is_equal(instance, wi_hash_data_for_key(previous_values, name))) 201 wi_set_add_data(config->changes, name); 202 } 203 204 wi_release(previous_values); 195 205 196 206 wi_lock_unlock(config->lock);
