[Non-ACR]fixing memory issue 98/229998/2
authorAbhishek Vijay <abhishek.v@samsung.com>
Tue, 7 Apr 2020 05:39:36 +0000 (11:09 +0530)
committerAbhishek Vijay <abhishek.v@samsung.com>
Tue, 7 Apr 2020 05:50:00 +0000 (05:50 +0000)
Change-Id: I333b77fe9f6cc6ca0f8ffd95802848045b1cd0d9
Signed-off-by: Abhishek Vijay <abhishek.v@samsung.com>
src/battery_dump/bd_history_item.c

index 7b755a4..fae5728 100644 (file)
@@ -161,13 +161,17 @@ static int bd_get_and_print_battery_usage_from_dump(int fd, long int duration)
 
        dump_p = g_string_sized_new(30);
        BM_CHECK_MEM_ALLOC(dump_p, {});
+
        g_string_append(dump_p, TIZEN_DUMP_VERSION);
        // Power Capacity
        g_string_append_printf(dump_p, ",0,l,pws,%d,0,0,0", battery_capacity);
        g_string_append(dump_p, "\n");
+
        _DBG("%s", dump_p->str);
+
        if (write(fd, dump_p->str, dump_p->len) < 0)
                _WARN("write error");
+
        g_string_free(dump_p, TRUE);
 
        g_hash_table_iter_init(&iter, app_map);
@@ -1148,52 +1152,53 @@ int bd_print_history_item_main(int fd, int num_h_items, long long base_time, boo
 
        if (write(fd, dump_tmp_p->str, dump_tmp_p->len) < 0)
                _WARN("write error");
-       g_free(dump_tmp_p->str);
+       g_string_free(dump_p, TRUE);
 
-               //Dump i & l values after this
-               ret = bd_get_and_print_uid_info_entry_from_dump(fd);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("UID data dump failed");
-               // Get Last charge time to dump "l" field
-               // for the time being dumping all data
-               long int duration = 0; //Time of last charge
-               ret = bd_get_and_print_gn_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GN dump failed");
-               ret = bd_get_and_print_gwf_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GWF data dump failed");
-               ret = bd_get_and_print_gble_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GBL data dump failed");
-               ret = bd_get_and_print_gbr_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GBR data dump failed");
-               ret = bd_get_and_print_gst_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GST data dump failed");
-               ret = bd_get_and_print_gwst_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GWST data dump failed");
-               ret = bd_get_and_print_gcpu_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("GCPU data dump failed");
-               ret = bd_get_and_print_misc_stat_entry_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("MISc data dump failed");
-               // Battery Usage Dump
-               // Add usage for each of the resource
-               // and each of the application
-               ret = bd_get_and_print_battery_usage_from_dump(fd, duration);
-               if (ret != BATTERY_MONITOR_ERROR_NONE)
-                       _ERR("Battery Usage failed");
+       //Dump i & l values after this
+       ret = bd_get_and_print_uid_info_entry_from_dump(fd);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("UID data dump failed");
+       // Get Last charge time to dump "l" field
+       // for the time being dumping all data
+       long int duration = 0; //Time of last charge
+       ret = bd_get_and_print_gn_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GN dump failed");
+       ret = bd_get_and_print_gwf_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GWF data dump failed");
+       ret = bd_get_and_print_gble_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GBL data dump failed");
+       ret = bd_get_and_print_gbr_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GBR data dump failed");
+       ret = bd_get_and_print_gst_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GST data dump failed");
+       ret = bd_get_and_print_gwst_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GWST data dump failed");
+       ret = bd_get_and_print_gcpu_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("GCPU data dump failed");
+       ret = bd_get_and_print_misc_stat_entry_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("MISc data dump failed");
+       // Battery Usage Dump
+       // Add usage for each of the resource
+       // and each of the application
+       ret = bd_get_and_print_battery_usage_from_dump(fd, duration);
+       if (ret != BATTERY_MONITOR_ERROR_NONE)
+               _ERR("Battery Usage failed");
 
-               _DBG("DUMP COMPLETED/DELETE HASH TABLE");
+       _DBG("DUMP COMPLETED/DELETE HASH TABLE");
 
-               g_hash_table_destroy(app_map);
-               h_flag = true;
-               EXIT;
-               return BATTERY_MONITOR_ERROR_NONE;
+       g_hash_table_destroy(app_map);
+       h_flag = true;
+
+       EXIT;
+       return BATTERY_MONITOR_ERROR_NONE;
 }
 
 static int bd_dump_data_item_reset(dump_data_s* old_state)