diff --git a/NEWS b/NEWS index 01aa90c714680a95a18dd0dbf5f0997646b3c9da..415d620884bcbee6c021457256cba342eb3048c5 100644 --- a/NEWS +++ b/NEWS @@ -197,6 +197,8 @@ documents those changes that are of interest to users and admins. they are still visible to sinfo. State set to IDLE after reboot completes. -- Apply BatchStartTimeout configuration to task launch and avoid aborting srun commands due to long running Prolog scripts. + -- Fix minor memory leaks when freeing node_info_t structure. + -- Fix various memory leaks in sview * Changes in Slurm 14.03.6 ========================== diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index b94534a7275921ce64229f7213760d9b3898c037..d7f8c8c5dc3f94deef39093bd4d5b38d3afe11a4 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -2397,8 +2397,8 @@ extern void slurm_free_node_info_members(node_info_t * node) xfree(node->gres_drain); xfree(node->gres_used); xfree(node->name); - xfree(node->node_hostname); xfree(node->node_addr); + xfree(node->node_hostname); xfree(node->os); xfree(node->reason); select_g_select_nodeinfo_free(node->select_nodeinfo); diff --git a/src/sview/block_info.c b/src/sview/block_info.c index c757c0ed410c942cab3f66cbc0220177fbde9c1a..68c1b3436bcd1c8fc777282aeac964be062a9097 100644 --- a/src/sview/block_info.c +++ b/src/sview/block_info.c @@ -1145,10 +1145,12 @@ display_it: list_iterator_destroy(itr); change_grid_color(grid_button_list, -1, -1, MAKE_WHITE, true, 0); - } else + } else { highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_NODE_INX, SORTID_COLOR_INX, grid_button_list); + gtk_tree_path_free(path); + } if (view == ERROR_VIEW && display_widget) { gtk_widget_destroy(display_widget); diff --git a/src/sview/common.c b/src/sview/common.c index 32af27b015d40d079f7746c1526ce1124b22656c..929f80ee27517a4e11f4ecfba9d28b5470a55f62 100644 --- a/src/sview/common.c +++ b/src/sview/common.c @@ -522,6 +522,9 @@ static void _add_col_to_treeview(GtkTreeView *tree_view, } else renderer = gtk_cell_renderer_text_new(); + if (model) + g_object_unref(model); + gtk_tree_view_column_pack_start(col, renderer, TRUE); g_object_set_data(G_OBJECT(renderer), "column", @@ -1379,9 +1382,6 @@ extern gboolean key_pressed(GtkTreeView *tree_view, GdkEventKey *event, const signal_params_t *signal_params) { - GtkTreePath *path = NULL; - GtkTreeViewColumn *column; - control_key_in_effect = FALSE; enter_key_in_effect = FALSE; @@ -1392,8 +1392,6 @@ extern gboolean key_pressed(GtkTreeView *tree_view, each_t each; GtkTreeSelection *selection = NULL; - gtk_tree_view_get_cursor(GTK_TREE_VIEW(tree_view), - &path, &column); selection = gtk_tree_view_get_selection(tree_view); memset(&each, 0, sizeof(each_t)); each.tree_view = tree_view; @@ -1885,6 +1883,9 @@ extern void set_for_update(GtkTreeModel *model, int updated) } } } + + if (path) + gtk_tree_path_free(path); } extern void remove_old(GtkTreeModel *model, int updated) diff --git a/src/sview/front_end_info.c b/src/sview/front_end_info.c index 29f3b80e505e03e7472c2f2c9d3e09ff6c18a5fa..ff81432ed13b4d972184704fb0d63af12dbba8b6 100644 --- a/src/sview/front_end_info.c +++ b/src/sview/front_end_info.c @@ -710,6 +710,7 @@ display_it: highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_NODE_INX, SORTID_COLOR_INX, grid_button_list); + gtk_tree_path_free(path); } if (view == ERROR_VIEW && display_widget) { diff --git a/src/sview/job_info.c b/src/sview/job_info.c index ad2e6154884a94b89e6d6e0c46abef94d8a73588..21292654433fda7506f038d3a2b849d6c53268f3 100644 --- a/src/sview/job_info.c +++ b/src/sview/job_info.c @@ -3866,6 +3866,7 @@ display_it: highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_NODE_INX, SORTID_COLOR_INX, grid_button_list); + gtk_tree_path_free(path); } if (view == ERROR_VIEW && display_widget) { diff --git a/src/sview/node_info.c b/src/sview/node_info.c index 61df68ebb9b00b633c491e227a71b56170637cfc..ca8953a543fc9044546a122ecdc89cb40217b4d7 100644 --- a/src/sview/node_info.c +++ b/src/sview/node_info.c @@ -1492,9 +1492,11 @@ display_it: color_inx, color_set_flag, true, 0); xfree(color_inx); xfree(color_set_flag); - } else + } else { highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_POS, (int)NO_VAL, grid_button_list); + gtk_tree_path_free(path); + } if (view == ERROR_VIEW && display_widget) { gtk_widget_destroy(display_widget); diff --git a/src/sview/part_info.c b/src/sview/part_info.c index c00114586e7c287d31b5d3566a6cdf7119640210..247e82aabf320d61f8d0e5caee2a5a86733a66d2 100644 --- a/src/sview/part_info.c +++ b/src/sview/part_info.c @@ -2490,10 +2490,12 @@ display_it: MAKE_WHITE, true, 0); xfree(color_inx); xfree(color_set_flag); - } else + } else { highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_NODE_INX, SORTID_COLOR_INX, grid_button_list); + gtk_tree_path_free(path); + } if (view == ERROR_VIEW && display_widget) { gtk_widget_destroy(display_widget); diff --git a/src/sview/resv_info.c b/src/sview/resv_info.c index dbcee404d9aaa7b910ba50fc0592588ab96caf2f..80861924079f9931f38dd80e371d08d6f3937775 100644 --- a/src/sview/resv_info.c +++ b/src/sview/resv_info.c @@ -1184,10 +1184,12 @@ display_it: list_iterator_destroy(itr); change_grid_color(grid_button_list, -1, -1, MAKE_WHITE, true, 0); - } else + } else { highlight_grid(GTK_TREE_VIEW(display_widget), SORTID_NODE_INX, SORTID_COLOR_INX, grid_button_list); + gtk_tree_path_free(path); + } if (view == ERROR_VIEW && display_widget) { gtk_widget_destroy(display_widget);