summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardinfo2/arch/linux/common/filesystem.h10
-rw-r--r--hardinfo2/callbacks.c18
-rw-r--r--hardinfo2/computer.c3
-rw-r--r--hardinfo2/hardinfo.h8
-rw-r--r--hardinfo2/shell.c7
-rw-r--r--hardinfo2/uidefs.h2
-rw-r--r--hardinfo2/util.c16
7 files changed, 48 insertions, 16 deletions
diff --git a/hardinfo2/arch/linux/common/filesystem.h b/hardinfo2/arch/linux/common/filesystem.h
index 8300f278..74c019e0 100644
--- a/hardinfo2/arch/linux/common/filesystem.h
+++ b/hardinfo2/arch/linux/common/filesystem.h
@@ -23,15 +23,23 @@
static gchar *fs_list = NULL;
+static gboolean
+remove_filesystem_entries(gpointer key, gpointer value, gpointer data)
+{
+ return g_str_has_prefix(key, "FS");
+}
+
static void
scan_filesystems(void)
{
FILE *mtab;
gchar buf[1024];
struct statfs sfs;
+ int count = 0;
g_free(fs_list);
fs_list = g_strdup("");
+ g_hash_table_foreach_remove(moreinfo, remove_filesystem_entries, NULL);
mtab = fopen("/etc/mtab", "r");
if (!mtab)
@@ -71,7 +79,7 @@ scan_filesystems(void)
strstr(tmp[3], "rw") ? "Read-Write" :
"Read-Only", tmp[1], strsize, strused,
stravail);
- g_hash_table_insert(moreinfo, g_strdup(tmp[0]), strhash);
+ g_hash_table_insert(moreinfo, g_strdup_printf("FS%d", ++count), strhash);
fs_list = g_strdup_printf("%s$%s$%s=%s total, %s free\n",
fs_list,
diff --git a/hardinfo2/callbacks.c b/hardinfo2/callbacks.c
index ac47d089..d026d66f 100644
--- a/hardinfo2/callbacks.c
+++ b/hardinfo2/callbacks.c
@@ -149,16 +149,20 @@ void cb_about_module(GtkAction *action)
if ((ma = module_get_about(sm))) {
GtkWidget *about;
+ gchar *text;
about = gtk_about_dialog_new();
- gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about),
- idle_free(g_strdup_printf("%s Module", sm->name)));
+
+ text = g_strdup_printf("%s Module", sm->name);
+ gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), text);
+ g_free(text);
+
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), ma->version);
- gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about),
- idle_free(g_strdup_printf("Written by %s\n"
- "Licensed under %s",
- ma->author,
- ma->license)));
+
+ text = g_strdup_printf("Written by %s\nLicensed under %s",
+ ma->author, ma->license);
+ gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), text);
+ g_free(text);
if (ma->description)
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about),
diff --git a/hardinfo2/computer.c b/hardinfo2/computer.c
index 8679ffb6..2106ffcf 100644
--- a/hardinfo2/computer.c
+++ b/hardinfo2/computer.c
@@ -120,8 +120,9 @@ hi_get_field(gchar * field)
gchar *tmp;
if (g_str_equal(field, "Memory")) {
- MemoryInfo *mi = idle_free(computer_get_memory());
+ MemoryInfo *mi = computer_get_memory();
tmp = g_strdup_printf("%dMB (%dMB used)", mi->total, mi->used);
+ g_free(mi);
} else if (g_str_equal(field, "Uptime")) {
tmp = computer_get_formatted_uptime();
} else if (g_str_equal(field, "Date/Time")) {
diff --git a/hardinfo2/hardinfo.h b/hardinfo2/hardinfo.h
index 97d3aeea..ba3e23b3 100644
--- a/hardinfo2/hardinfo.h
+++ b/hardinfo2/hardinfo.h
@@ -81,7 +81,13 @@ gchar *file_chooser_build_filename(GtkWidget *chooser, gchar *extension);
gpointer file_types_get_data_by_name(FileTypes *file_types, gchar *name);
/* Misc utility functions */
-gpointer idle_free(gpointer ptr);
+#if RELEASE == 1
+gpointer idle_free(gpointer ptr);
+#else
+gpointer __idle_free(gpointer ptr, gchar *f, gint l);
+#define idle_free(p) __idle_free(p, __FILE__, __LINE__)
+#endif /* RELEASE == 1 */
+
inline gchar *size_human_readable(gfloat size);
void nonblock_sleep(guint msec);
void open_url(gchar *url);
diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c
index db9f15a1..11c42839 100644
--- a/hardinfo2/shell.c
+++ b/hardinfo2/shell.c
@@ -1131,6 +1131,8 @@ static void module_selected(gpointer data)
/* Get the current selection and shows its related info */
gtk_tree_model_get(model, &parent, TREE_COL_DATA, &entry, -1);
if (entry && !entry->selected) {
+ gchar *title;
+
shell_status_set_enabled(TRUE);
shell_status_update("Updating...");
@@ -1158,8 +1160,9 @@ static void module_selected(gpointer data)
shell_status_update("Done.");
shell_status_set_enabled(FALSE);
- gtk_window_set_title(GTK_WINDOW(shell->window),
- idle_free(g_strdup_printf("%s - System Information", entry->name)));
+ title = g_strdup_printf("%s - System Information", entry->name);
+ gtk_window_set_title(GTK_WINDOW(shell->window), title);
+ g_free(title);
shell_action_set_enabled("RefreshAction", TRUE);
shell_action_set_enabled("CopyAction", TRUE);
diff --git a/hardinfo2/uidefs.h b/hardinfo2/uidefs.h
index 591ecd01..a3a3e32d 100644
--- a/hardinfo2/uidefs.h
+++ b/hardinfo2/uidefs.h
@@ -5,7 +5,7 @@ char *uidefs_str = "<ui>" \
" <menubar>" \
" <menu name=\"InformationMenu\" action=\"InformationMenuAction\">" \
" <menuitem name=\"Report\" action=\"ReportAction\" />" \
-" <separator/>" \
+/*" <separator/>" \ */
" <menuitem name=\"Copy\" action=\"CopyAction\" />" \
/*
* Save Image is not ready for prime time. Yet.
diff --git a/hardinfo2/util.c b/hardinfo2/util.c
index 24e7967c..454a3a19 100644
--- a/hardinfo2/util.c
+++ b/hardinfo2/util.c
@@ -886,9 +886,10 @@ void tree_view_save_image(gchar *filename)
gtk_widget_set_sensitive(widget, tv_enabled);
}
-
static gboolean __idle_free_do(gpointer ptr)
{
+ DEBUG("bla %p", ptr);
+
if (ptr) {
g_free(ptr);
}
@@ -896,10 +897,16 @@ static gboolean __idle_free_do(gpointer ptr)
return FALSE;
}
+#if RELEASE == 1
gpointer idle_free(gpointer ptr)
+#else
+gpointer __idle_free(gpointer ptr, gchar *f, gint l)
+#endif
{
+ DEBUG("file: %s, line: %d, ptr %p", f, l, ptr);
+
if (ptr) {
- g_timeout_add(15000, __idle_free_do, ptr);
+ g_timeout_add(10000, __idle_free_do, ptr);
}
return ptr;
@@ -910,6 +917,7 @@ void module_entry_scan_all_except(ModuleEntry *entries, gint except_entry)
ModuleEntry entry;
gint i = 0;
void (*scan_callback)(gboolean reload);
+ gchar *text;
shell_view_set_enabled(FALSE);
@@ -917,7 +925,9 @@ void module_entry_scan_all_except(ModuleEntry *entries, gint except_entry)
if (i == except_entry)
continue;
- shell_status_update(idle_free(g_strdup_printf("Scanning: %s...", entry.name)));
+ text = g_strdup_printf("Scanning: %s...", entry.name);
+ shell_status_update(text);
+ g_free(text);
if ((scan_callback = entry.scan_callback)) {
scan_callback(FALSE);