Skip to content

Commit

Permalink
Prevent Valgrind detected error
Browse files Browse the repository at this point in the history
  • Loading branch information
rnorris committed Jan 18, 2025
1 parent e8f9344 commit 2b23a39
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions src/viktreeview.c
Original file line number Diff line number Diff line change
Expand Up @@ -862,13 +862,25 @@ void vik_treeview_sort_children ( VikTreeview *vt, GtkTreeIter *parent, vik_laye
SortTuple *sort_array;
sort_array = g_new ( SortTuple, length );

gchar *name;
gdouble timestamp;
guint number;
guint uuid;
guint ii = 0;
do {
sort_array[ii].offset = ii;
gtk_tree_model_get ( model, &child, NAME_COLUMN, &(sort_array[ii].name), -1 );
gtk_tree_model_get ( model, &child, ITEM_TIMESTAMP_COLUMN, &(sort_array[ii].timestamp), -1 );
gtk_tree_model_get ( model, &child, ITEM_NUMBER_COLUMN, &(sort_array[ii].number), -1 );
gtk_tree_model_get ( model, &child, ITEM_POINTER_COLUMN, &(sort_array[ii].uuid), -1 );
// Previous method of passing sort_array into gtk_tree_model_get() at least for the final UUID
// caused Valgrind 3-20.0 to claim an 'Invalid write of size 8'
// Unclear if it really is an error, however use the temporary variables method instead
// which doesn't flag up any errors
gtk_tree_model_get ( model, &child, NAME_COLUMN, &name, -1 );
gtk_tree_model_get ( model, &child, ITEM_TIMESTAMP_COLUMN, &timestamp, -1 );
gtk_tree_model_get ( model, &child, ITEM_NUMBER_COLUMN, &number, -1 );
gtk_tree_model_get ( model, &child, ITEM_POINTER_COLUMN, &uuid, -1 );
sort_array[ii].name = name;
sort_array[ii].timestamp = timestamp;
sort_array[ii].number = number;
sort_array[ii].uuid = uuid;
ii++;
} while ( gtk_tree_model_iter_next (model, &child) );

Expand Down

0 comments on commit 2b23a39

Please sign in to comment.