Boxed field struct.
authorAndrea Zagli <azagli@libero.it>
Sat, 28 Dec 2019 10:34:48 +0000 (11:34 +0100)
committerAndrea Zagli <azagli@libero.it>
Sat, 28 Dec 2019 10:34:48 +0000 (11:34 +0100)
src/audit.c
src/libzakaudit.h

index da610b01cecd1704b31c51f64bb47ba6f83e0ed3..b5e013964aed98cd54e7efa1083ac6d251aac408 100644 (file)
@@ -63,13 +63,6 @@ typedef struct
        gchar *field_value;
 } ChangesColumn;
 
-typedef struct
-{
-       gint id;
-       gchar *name;
-       gboolean is_key;
-} Field;
-
 typedef struct
 {
        gchar **values;
@@ -86,7 +79,7 @@ static gboolean load_fields (ZakAudit *zak_audit,
 static gboolean load_tables (ZakAudit *zak_audit,
                              ZakAuditDatasource *datasource);
 static gboolean load_datasources (ZakAudit *zak_audit, va_list ap);
-static Field *get_field_from_name (ZakAudit *zak_audit,
+static ZakAuditField *get_field_from_name (ZakAudit *zak_audit,
                                    ZakAuditTable *table,
                                    const char *field);
 static ZakAuditTable *get_table_from_name (ZakAudit *zak_audit,
@@ -223,16 +216,6 @@ zak_audit_init (ZakAudit *zak_audit)
        priv->gtkbuilder = gtk_builder_new ();
 }
 
-static void
-free_field (gpointer data)
-{
-       Field *f;
-
-       f = (Field *)data;
-
-       g_free (f->name);
-}
-
 static gboolean
 load_fields (ZakAudit *zak_audit,
              ZakAuditDatasource *datasource,
@@ -244,7 +227,7 @@ load_fields (ZakAudit *zak_audit,
        gchar *sql;
        gint rows, row;
 
-       Field *field;
+       ZakAuditField *field;
 
        ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit);
 
@@ -281,7 +264,7 @@ load_fields (ZakAudit *zak_audit,
 
        for (row = 0; row < rows; row++)
                {
-                       field = g_new0 (Field, 1);
+                       field = g_new0 (ZakAuditField, 1);
 
                        field->id = gdaex_data_model_get_field_value_integer_at (dm, row, "id");
                        field->name = gdaex_data_model_get_field_value_stringify_at (dm, row, "name");
@@ -472,12 +455,12 @@ load_datasources (ZakAudit *zak_audit, va_list ap)
        return TRUE;
 }
 
-static Field
+static ZakAuditField
 *get_field_from_name (ZakAudit *zak_audit,
                       ZakAuditTable *table,
                       const char *field)
 {
-       Field *ret_field;
+       ZakAuditField *ret_field;
        GList *c = g_list_first (table->fields);
 
        gchar *real_field;
@@ -487,9 +470,9 @@ static Field
        ret_field = NULL;
        while (c != NULL)
                {
-                       if (g_strcmp0 (((Field *)c->data)->name, real_field) == 0)
+                       if (g_strcmp0 (((ZakAuditField *)c->data)->name, real_field) == 0)
                                {
-                                       ret_field = (Field *)c->data;
+                                       ret_field = (ZakAuditField *)c->data;
                                        break;
                                }
 
@@ -569,7 +552,7 @@ insert_value (ZakAudit *zak_audit,
 
        ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit);
 
-       Field *field = get_field_from_name (zak_audit, table, field_name);
+       ZakAuditField *field = get_field_from_name (zak_audit, table, field_name);
        if (field == NULL)
                {
                        g_warning (_("Unable to find the field «%s» on loaded fields."),
@@ -1728,7 +1711,7 @@ GtkWidget
 
        ZakAuditDatasource *datasource;
        ZakAuditTable *table;
-       Field *field;
+       ZakAuditField *field;
 
        guint l;
        guint strpart;
@@ -2122,7 +2105,7 @@ const gchar
 {
        ZakAuditDatasource *datasource;
        ZakAuditTable *table;
-       Field *field;
+       ZakAuditField *field;
 
        guint l;
        guint strpart;
@@ -2337,6 +2320,26 @@ GOptionGroup
        return ret;
 }
 
+ZakAuditField
+*zak_audit_field_copy (ZakAuditField *field)
+{
+       ZakAuditField *f;
+
+       f = g_slice_new (ZakAuditField);
+       f->id = field->id;
+       f->name = g_strdup (field->name);
+       f->is_key = field->is_key;
+
+       return f;
+}
+
+void
+zak_audit_field_free (ZakAuditField *field)
+{
+       g_free (field->name);
+       g_slice_free (ZakAuditField, field);
+}
+
 ZakAuditTable
 *zak_audit_table_copy (ZakAuditTable *table)
 {
@@ -2357,9 +2360,9 @@ void
 zak_audit_table_free (ZakAuditTable *table)
 {
        g_free (table->name);
-       g_list_free_full (table->fields, free_field);
+       g_list_free_full (table->fields, g_free);
        g_free (table->fields_sql);
-       g_list_free_full (table->keys, free_field);
+       g_list_free_full (table->keys, g_free);
        g_free (table->keys_sql);
        g_slice_free (ZakAuditTable, table);
 }
index 3b549a3428083ea30fde3d468ab189c60b07be40..f39e5271e1f2d1eaa21ba16cc8e94f5a4eb299d0 100644 (file)
@@ -115,6 +115,16 @@ void zak_audit_destroy (ZakAudit *zak_audit);
 
 GOptionGroup *zak_audit_get_option_group (ZakAudit *zak_audit);
 
+typedef struct
+{
+       gint id;
+       gchar *name;
+       gboolean is_key;
+} ZakAuditField;
+
+ZakAuditField *zak_audit_field_copy (ZakAuditField *field);
+void zak_audit_field_free (ZakAuditField *field);
+
 typedef struct
 {
        gint id;