static void gda_data_model_array_finalize (GObject *object) { GdaDataModelArray *model = (GdaDataModelArray *) object; g_return_if_fail (GDA_IS_DATA_MODEL_ARRAY (model)); /* free memory */ gda_data_model_freeze (GDA_DATA_MODEL(model)); gda_data_model_array_clear (model); g_array_free (model->priv->rows, TRUE); g_hash_table_foreach (model->priv->column_spec, (GHFunc) hash_free_column, model); g_hash_table_destroy (model->priv->column_spec); model->priv->column_spec = NULL; g_free (model->priv); model->priv = NULL; /* chain to parent class */ parent_class->finalize (object); }
static void action_executed_holder_changed_cb (G_GNUC_UNUSED GdaSet *params, G_GNUC_UNUSED GdaHolder *holder, ActionExecutedData *aed) { if (! aed->formgrid->priv->autoupdate || ! aed->formgrid->priv->autoupdate_possible) return; GError *error = NULL; gda_data_model_freeze (aed->model); if (!t_connection_rerun_select (aed->tcnc, aed->model, &error)) { GtkWidget *toplevel; toplevel = gtk_widget_get_toplevel (GTK_WIDGET (aed->formgrid)); ui_show_error (GTK_WINDOW (toplevel), _("Error executing query:\n%s"), error->message ? error->message : _("No detail")); g_clear_error (&error); gda_data_model_thaw (aed->model); } else { gda_data_model_thaw (aed->model); gda_data_model_reset (aed->model); } }