Я пытаюсь получить значение индекса выбранного элемента в GTK TreeView, чтобы использовать этот индекс для удаления этого значения из соответствующего массива значений. Мой код делает это успешно для всех элементов TreeView, кроме последнего в списке. Я получаю эту ошибку при попытке удалить последний элемент:
(SDS-CW:32229): Gtk-CRITICAL **: 00:07:38.494: gtk_list_store_get_path: assertion 'iter->stamp == priv->stamp' failed
(SDS-CW:32229): Gtk-CRITICAL **: 00:07:38.494: gtk_tree_path_get_indices: assertion 'path != NULL' failed
Вот мой код:
void remove_hash(GtkWidget *widget, gpointer user_data) {
struct data *dataStruct = user_data;
GtkListStore *store;
GtkTreeModel *model;
GtkTreeIter iter;
GtkTreePath *path;
GtkTreeSelection *selectedHash = dataStruct->selectedHash;
int removeIndex;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(list)));
model = gtk_tree_view_get_model(GTK_TREE_VIEW(list));
if (gtk_tree_model_get_iter_first(model, &iter) == FALSE) {
return;
}
if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(selectedHash), &model, &iter)) {
gtk_list_store_remove(store, &iter);
}
path = gtk_tree_model_get_path(model, &iter); <-- This appears to be returning NULL
removeIndex = *gtk_tree_path_get_indices(path) + 1; <-- Error occurs here, I believe
g_print("Remove Index: %i\n", removeIndex);
g_print("Remove Hash: %s\n", dataStruct->queuedHashes[removeIndex][0]);
// Function continues below, but error occurs above
Кто-нибудь знает, где я могу пойти не так?
Любая помощь будет принята с благодарностью, спасибо.