diff --git a/src/core/store.c b/src/core/store.c
index fd08de9101272dfafa7e7b0e6f8e4dbe1d626675..6d9c971702b4e696ca14991eb2ea4f4e4716413c 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
else {
sdb_time_t interval = last_update - old->last_update;
old->last_update = last_update;
- if (old->interval)
- old->interval = (sdb_time_t)((0.9 * (double)old->interval)
- + (0.1 * (double)interval));
- else
- old->interval = interval;
+ if (interval) {
+ if (old->interval)
+ old->interval = (sdb_time_t)((0.9 * (double)old->interval)
+ + (0.1 * (double)interval));
+ else
+ old->interval = interval;
+ }
}
if (updated_obj)
if (status >= 0) {
assert(updated_attr);
+ sdb_data_free_datum(&SDB_ATTR(updated_attr)->value);
if (sdb_data_copy(&SDB_ATTR(updated_attr)->value, value)) {
sdb_object_deref(SDB_OBJ(updated_attr));
status = -1;