summaryrefslogtreecommitdiff
path: root/src/analysis/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/db')
-rw-r--r--src/analysis/db/collection.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/analysis/db/collection.c b/src/analysis/db/collection.c
index 2c6086a..0e4f756 100644
--- a/src/analysis/db/collection.c
+++ b/src/analysis/db/collection.c
@@ -293,12 +293,12 @@ bool _g_db_collection_unpack(GDbCollection *collec, packed_buffer *pbuf, DBActio
GDbItem *item; /* Définition d'élément visé */
result = extract_packed_buffer(pbuf, &tmp32, sizeof(uint32_t), true);
- if (!result) goto exit;
+ if (!result) goto qck_exit;
*action = tmp32;
result = (*action >= 0 && *action < DBA_COUNT);
- if (!result) goto exit;
+ if (!result) goto qck_exit;
item = g_object_new(collec->type, NULL);
@@ -306,14 +306,16 @@ bool _g_db_collection_unpack(GDbCollection *collec, packed_buffer *pbuf, DBActio
if (!result) goto exit;
if (dest != NULL)
+ {
+ g_object_ref(G_OBJECT(item));
*dest = item;
- else
- g_object_unref(G_OBJECT(item));
+ }
exit:
- if (!result)
- g_object_unref(G_OBJECT(item));
+ g_object_unref(G_OBJECT(item));
+
+ qck_exit:
return result;