summaryrefslogtreecommitdiff
path: root/src/trg-files-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-21 22:13:28 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-21 22:13:28 +0000
commit8fcd8ab2fae7858c802cddeebb03dc1197e625a1 (patch)
tree9697c45dca952799fffe2b7fe55fd1e8fe7212fc /src/trg-files-model.c
parent1db7752cc705eea685f4eeccb243da571afbf466 (diff)
fix memory leak on new fileicon cell renderer
Diffstat (limited to 'src/trg-files-model.c')
-rw-r--r--src/trg-files-model.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/trg-files-model.c b/src/trg-files-model.c
index 3da542a..db62961 100644
--- a/src/trg-files-model.c
+++ b/src/trg-files-model.c
@@ -17,9 +17,11 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#include <string.h>
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
+#include "protocol-constants.h"
#include "trg-files-model.h"
#include "trg-client.h"
#include "torrent.h"
@@ -86,20 +88,26 @@ struct updateAllArgs {
static gboolean trg_files_update_all_parents(GtkTreeModel *model,
GtkTreePath *path, GtkTreeIter *iter, gpointer data) {
struct updateAllArgs *args = (struct updateAllArgs*) data;
- GtkTreePath *descendentPath = gtk_tree_model_get_path(model,
- args->descendentIter);
-
- if (args->increment > 0 && gtk_tree_path_is_ancestor(path, descendentPath)) {
- gint64 lastCompleted, newCompleted, length;
- gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, &lastCompleted,
- FILESCOL_SIZE, &length, -1);
- newCompleted = lastCompleted + args->increment;
- gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_BYTESCOMPLETED,
- newCompleted, FILESCOL_PROGRESS,
- file_get_progress(length, newCompleted), -1);
- }
- gtk_tree_path_free(descendentPath);
+ if (args->increment > 0) {
+ GtkTreePath *descendentPath = gtk_tree_model_get_path(model,
+ args->descendentIter);
+
+ if (gtk_tree_path_is_ancestor(path, descendentPath)) {
+ gint64 lastCompleted, newCompleted, length;
+
+ gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, &lastCompleted,
+ FILESCOL_SIZE, &length, -1);
+ newCompleted = lastCompleted + args->increment;
+
+ gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_BYTESCOMPLETED,
+ newCompleted, FILESCOL_PROGRESS,
+ file_get_progress(length, newCompleted), -1);
+
+ }
+
+ gtk_tree_path_free(descendentPath);
+ }
return FALSE;
}
@@ -168,9 +176,10 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
g_value_init(&gvalue, G_TYPE_INT);
g_value_set_int(&gvalue, -1);
gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_ID, &gvalue);
+
memset(&gvalue, 0, sizeof(GValue));
g_value_init(&gvalue, G_TYPE_INT64);
- g_value_set_int64(&gvalue, -2);
+ g_value_set_int64(&gvalue, TR_PRI_UNSET);
gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_PRIORITY, &gvalue);
iter_to_row_reference(GTK_TREE_MODEL(model), iter, &parentRowRef);