]> pilppa.org Git - libplp.git/blobdiff - src/StoreCache.cc
fix more errors from uninitalized variables
[libplp.git] / src / StoreCache.cc
index fe5c5834be8e64f5b40d7216ba048dfd26a20034..a289f54bd242568160e2a3021e6a67901b8bd3c3 100644 (file)
@@ -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();
                                                }