summaryrefslogtreecommitdiff
path: root/src/analysis/loading.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-02-05 22:03:38 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-02-05 22:03:38 (GMT)
commit17f591f2230ac66394467d5e5eefe71cb259637d (patch)
tree1664e994b2904e5e9009027fc57749a11667365b /src/analysis/loading.c
parentff187d24b7441e88e1f0361d59b0f6f55851791f (diff)
Fixed a huge number of memory leaks.
Diffstat (limited to 'src/analysis/loading.c')
-rw-r--r--src/analysis/loading.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/analysis/loading.c b/src/analysis/loading.c
index 0ded268..664b8d6 100644
--- a/src/analysis/loading.c
+++ b/src/analysis/loading.c
@@ -782,6 +782,8 @@ void g_content_explorer_delete_group(GContentExplorer *explorer, wgroup_id_t wid
g_work_queue_delete_work_group(queue, group->wid);
+ g_object_unref(G_OBJECT(group->original));
+
for (i = 0; i < group->count; i++)
g_object_unref(G_OBJECT(group->contents[i]));
@@ -802,8 +804,7 @@ void g_content_explorer_delete_group(GContentExplorer *explorer, wgroup_id_t wid
memmove(&explorer->groups[index], &explorer->groups[index + 1],
(explorer->count - index - 1) * sizeof(exploring_group));
- explorer->groups = (exploring_group *)realloc(explorer->groups,
- --explorer->count * sizeof(exploring_group));
+ explorer->groups = realloc(explorer->groups, --explorer->count * sizeof(exploring_group));
/* Sortie */
@@ -839,7 +840,7 @@ void g_content_explorer_populate_group(GContentExplorer *explorer, wgroup_id_t w
/* Conservation du résultat */
- group->contents = (GBinContent **)realloc(group->contents, ++group->count * sizeof(GBinContent *));
+ group->contents = realloc(group->contents, ++group->count * sizeof(GBinContent *));
group->contents[group->count - 1] = content;
g_object_ref(G_OBJECT(content));
@@ -885,7 +886,7 @@ void g_content_explorer_note_detected(GContentExplorer *explorer, wgroup_id_t wi
group = g_content_explorer_find_group(explorer, wid);
assert(group != NULL);
- group->loaded = (GLoadedContent **)realloc(group->loaded, ++group->noted * sizeof(GLoadedContent *));
+ group->loaded = realloc(group->loaded, ++group->noted * sizeof(GLoadedContent *));
group->loaded[group->noted - 1] = loaded;
g_object_ref(G_OBJECT(loaded));
@@ -923,7 +924,7 @@ GBinContent **g_content_explorer_get_all(GContentExplorer *explorer, wgroup_id_t
/* Allocation de la liste finale */
*count = 1 + group->count;
- result = (GBinContent **)malloc(*count * sizeof(GBinContent *));
+ result = malloc(*count * sizeof(GBinContent *));
/* On regarde déjà du côté de la source */
@@ -1438,7 +1439,7 @@ void g_content_resolver_create_group(GContentResolver *resolver, wgroup_id_t wid
if (noted > 0)
{
group->count = noted;
- group->loaded = (GLoadedContent **)realloc(group->loaded, group->count * sizeof(GLoadedContent *));
+ group->loaded = realloc(group->loaded, group->count * sizeof(GLoadedContent *));
for (i = 0; i < noted; i++)
{
@@ -1496,6 +1497,9 @@ void g_content_resolver_delete_group(GContentResolver *resolver, wgroup_id_t wid
for (i = 0; i < group->count; i++)
g_object_unref(G_OBJECT(group->loaded[i]));
+ if (group->loaded != NULL)
+ free(group->loaded);
+
/* Réorganisation de la liste */
index = group - resolver->groups;
@@ -1504,8 +1508,7 @@ void g_content_resolver_delete_group(GContentResolver *resolver, wgroup_id_t wid
memmove(&resolver->groups[index], &resolver->groups[index + 1],
(resolver->count - index - 1) * sizeof(resolving_group));
- resolver->groups = (resolving_group *)realloc(resolver->groups,
- --resolver->count * sizeof(resolving_group));
+ resolver->groups = realloc(resolver->groups, --resolver->count * sizeof(resolving_group));
/* Sortie */
@@ -1537,7 +1540,7 @@ void g_content_resolver_add_detected(GContentResolver *resolver, wgroup_id_t wid
group = g_content_resolver_find_group(resolver, wid);
assert(group != NULL);
- group->loaded = (GLoadedContent **)realloc(group->loaded, ++group->count * sizeof(GLoadedContent *));
+ group->loaded = realloc(group->loaded, ++group->count * sizeof(GLoadedContent *));
group->loaded[group->count - 1] = loaded;
g_object_ref(G_OBJECT(loaded));
@@ -1575,7 +1578,7 @@ GLoadedContent **g_content_resolver_get_all(GContentResolver *resolver, wgroup_i
/* Allocation de la liste finale */
*count = group->count;
- result = (GLoadedContent **)malloc(*count * sizeof(GLoadedContent *));
+ result = malloc(*count * sizeof(GLoadedContent *));
/* On parcourt les éventuels contenus encapsulés découverts */