X-Git-Url: http://pilppa.org/gitweb/?p=libplp.git;a=blobdiff_plain;f=src%2FStoreCache.cc;fp=src%2FStoreCache.cc;h=a289f54bd242568160e2a3021e6a67901b8bd3c3;hp=fe5c5834be8e64f5b40d7216ba048dfd26a20034;hb=c89282fa11d75b7ccf02c970f40fbe663514bb1a;hpb=8f4e7878b0df7bc4e8e3bfb65e596fb3a3e5d0b3 diff --git a/src/StoreCache.cc b/src/StoreCache.cc index fe5c583..a289f54 100644 --- a/src/StoreCache.cc +++ b/src/StoreCache.cc @@ -156,8 +156,9 @@ DataRange *StoreCache::get_mean(EnumSummaryPeriod period_type_param) { res_data = NULL; cnt = 0; val_cnt = 0; - dr = NULL; while(cur_date->before(max_date)) { + store = NULL; + dr = NULL; if (period_type_param == PERIOD_YEARLY) { store = new StoreCache(device_id, cur_date); dr = store->get_mean(PERIOD_MONTHLY); @@ -192,7 +193,8 @@ DataRange *StoreCache::get_mean(EnumSummaryPeriod period_type_param) { } delete(dr); } - delete(store); + if (store != NULL) + delete(store); if (period_type_param == PERIOD_YEARLY) { cur_date->next_month(); } @@ -218,7 +220,7 @@ DataRange *StoreCache::get_mean(EnumSummaryPeriod period_type_param) { case PERIOD_MINUTELY: case PERIOD_SECONDLY: if (StoreDay::exist(device_id, date, false)) { - StoreDay *store; + StoreDay *store; store = new StoreDay(device_id, date); ret_val = store->get_mean(period_type_param); @@ -541,6 +543,8 @@ DataRange *StoreCache::get_max(EnumSummaryPeriod period_type_param) { res_data = NULL; cnt = 0; while(cur_date->before(max_date)) { + store = NULL; + dr = NULL; if (period_type_param == PERIOD_YEARLY) { store = new StoreCache(device_id, cur_date); dr = store->get_max(PERIOD_MONTHLY); @@ -584,7 +588,8 @@ DataRange *StoreCache::get_max(EnumSummaryPeriod period_type_param) { } delete(dr); } - delete(store); + if (store != NULL) + delete(store); if (period_type_param == PERIOD_YEARLY) { cur_date->next_month(); } @@ -667,6 +672,8 @@ DataRange *StoreCache::get_min(EnumSummaryPeriod period_type_param) { res_data = NULL; cnt = 0; while(cur_date->before(max_date)) { + store = NULL; + dr = NULL; if (period_type_param == PERIOD_YEARLY) { store = new StoreCache(device_id, cur_date); dr = store->get_min(PERIOD_MONTHLY); @@ -710,7 +717,8 @@ DataRange *StoreCache::get_min(EnumSummaryPeriod period_type_param) { } delete(dr); } - delete(store); + if (store != NULL) + delete(store); if (period_type_param == PERIOD_YEARLY) { cur_date->next_month(); }