diff options
Diffstat (limited to 'hardinfo2/arch/linux/common/devmemory.h')
-rw-r--r-- | hardinfo2/arch/linux/common/devmemory.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/hardinfo2/arch/linux/common/devmemory.h b/hardinfo2/arch/linux/common/devmemory.h index ca8ec4e6..c7ffdc08 100644 --- a/hardinfo2/arch/linux/common/devmemory.h +++ b/hardinfo2/arch/linux/common/devmemory.h @@ -18,7 +18,7 @@ static void __scan_memory() { - gchar **keys; + gchar **keys, *tmp; gint i; g_file_get_contents("/proc/meminfo", &meminfo, NULL, NULL); @@ -26,23 +26,31 @@ static void __scan_memory() keys = g_strsplit(meminfo, "\n", 0); g_free(meminfo); - meminfo = ""; - g_free(lginterval); - lginterval = ""; + + meminfo = g_strdup(""); + lginterval = g_strdup(""); for (i = 0; keys[i]; i++) { gchar **newkeys = g_strsplit(keys[i], ":", 0); - if (!newkeys[0]) break; + if (!newkeys[0]) { + g_strfreev(newkeys); + break; + } g_strstrip(newkeys[1]); g_hash_table_replace(moreinfo, g_strdup(newkeys[0]), g_strdup(newkeys[1])); - meminfo = g_strconcat(meminfo, newkeys[0], "=", newkeys[1], "\n", NULL); - lginterval = g_strconcat(lginterval, - "LoadGraphInterval$", newkeys[0], "=500\n", - "UpdateInterval$", newkeys[0], "=500\n", NULL); + tmp = g_strconcat(meminfo, newkeys[0], "=", newkeys[1], "\n", NULL); + g_free(meminfo); + meminfo = tmp; + + tmp = g_strconcat(lginterval, + "LoadGraphInterval$", newkeys[0], "=500\n", + "UpdateInterval$", newkeys[0], "=500\n", NULL); + g_free(lginterval); + lginterval = tmp; g_strfreev(newkeys); } |