mirror of https://github.com/GNOME/gimp.git
app: gimp_pdb_query() returns a GStrv.
In particular, since commit 8eb7f6df9e
, even if it returns an empty
array of procedure, it still means an array of size 1 (with the unique
value being NULL).
This also fixes the public API gimp_pdb_query_procedures() which returns
a GStrv using gimp_pdb_query() internally.
Finally don't keep track of the array size, just recompute it with
g_strv_length(), which will be much less bug-prone.
This commit is contained in:
parent
8c1414eb02
commit
a6fab71a9a
|
@ -68,7 +68,6 @@ struct _PDBQuery
|
||||||
GRegex *proc_type_regex;
|
GRegex *proc_type_regex;
|
||||||
|
|
||||||
gchar **list_of_procs;
|
gchar **list_of_procs;
|
||||||
gint num_procs;
|
|
||||||
gboolean querying_compat;
|
gboolean querying_compat;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -182,7 +181,7 @@ gimp_pdb_query (GimpPDB *pdb,
|
||||||
g_return_val_if_fail (procs != NULL, FALSE);
|
g_return_val_if_fail (procs != NULL, FALSE);
|
||||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||||
|
|
||||||
*procs = NULL;
|
*procs = NULL;
|
||||||
|
|
||||||
pdb_query.name_regex = g_regex_new (name, PDB_REGEX_FLAGS, 0, error);
|
pdb_query.name_regex = g_regex_new (name, PDB_REGEX_FLAGS, 0, error);
|
||||||
if (! pdb_query.name_regex)
|
if (! pdb_query.name_regex)
|
||||||
|
@ -215,8 +214,7 @@ gimp_pdb_query (GimpPDB *pdb,
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
|
|
||||||
pdb_query.pdb = pdb;
|
pdb_query.pdb = pdb;
|
||||||
pdb_query.list_of_procs = NULL;
|
pdb_query.list_of_procs = g_new0 (gchar *, 1);
|
||||||
pdb_query.num_procs = 0;
|
|
||||||
pdb_query.querying_compat = FALSE;
|
pdb_query.querying_compat = FALSE;
|
||||||
|
|
||||||
g_hash_table_foreach (pdb->procedures,
|
g_hash_table_foreach (pdb->procedures,
|
||||||
|
@ -252,7 +250,7 @@ gimp_pdb_query (GimpPDB *pdb,
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
*procs = pdb_query.list_of_procs;
|
*procs = pdb_query.list_of_procs;
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
|
@ -310,11 +308,12 @@ gimp_pdb_query_entry (gpointer key,
|
||||||
match_string (pdb_query->date_regex, strings.date) &&
|
match_string (pdb_query->date_regex, strings.date) &&
|
||||||
match_string (pdb_query->proc_type_regex, type_desc->value_desc))
|
match_string (pdb_query->proc_type_regex, type_desc->value_desc))
|
||||||
{
|
{
|
||||||
pdb_query->num_procs++;
|
guint num_procs = g_strv_length (pdb_query->list_of_procs);
|
||||||
|
|
||||||
pdb_query->list_of_procs = g_renew (gchar *, pdb_query->list_of_procs,
|
pdb_query->list_of_procs = g_renew (gchar *, pdb_query->list_of_procs,
|
||||||
pdb_query->num_procs + 1);
|
num_procs + 2);
|
||||||
pdb_query->list_of_procs[pdb_query->num_procs - 1] = g_strdup (proc_name);
|
pdb_query->list_of_procs[num_procs] = g_strdup (proc_name);
|
||||||
pdb_query->list_of_procs[pdb_query->num_procs] = NULL;
|
pdb_query->list_of_procs[num_procs + 1] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
gimp_pdb_free_strings (&strings);
|
gimp_pdb_free_strings (&strings);
|
||||||
|
|
Loading…
Reference in New Issue