summaryrefslogtreecommitdiffstats
path: root/libopkg/pkg_depends.c
diff options
context:
space:
mode:
authorgraham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-18 23:41:29 (EST)
committer graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-18 23:41:29 (EST)
commit97e125627ab4fd1ceb974a8a0f4b836403dbaa94 (patch)
tree0f1fa58fef9f0a2a8d42a46def15084feeec89cf /libopkg/pkg_depends.c
parentc9fc602ad5c318d50707393caf62d1468697f500 (diff)
Free some strings as soon as they are parsed to save memory.
git-svn-id: http://opkg.googlecode.com/svn/trunk@337 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/pkg_depends.c')
-rw-r--r--libopkg/pkg_depends.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
index 10a8ab5..b28f68d 100644
--- a/libopkg/pkg_depends.c
+++ b/libopkg/pkg_depends.c
@@ -576,11 +576,14 @@ void buildProvides(hash_table_t * hash, abstract_pkg_t * ab_pkg, pkg_t * pkg)
for (i=1; i<pkg->provides_count; i++) {
abstract_pkg_t *provided_abpkg = ensure_abstract_pkg_by_name(hash,
pkg->provides_str[i-1]);
+ free(pkg->provides_str[i-1]);
pkg->provides[i] = provided_abpkg;
abstract_pkg_vec_insert(provided_abpkg->provided_by, ab_pkg);
}
+ if (pkg->provides_str)
+ free(pkg->provides_str);
}
/* Abhaya: added conflicts support */
@@ -597,8 +600,11 @@ void buildConflicts(hash_table_t * hash, abstract_pkg_t * ab_pkg, pkg_t * pkg)
conflicts->type = CONFLICTS;
parseDepends(conflicts, hash,
pkg->conflicts_str[i]);
+ free(pkg->conflicts_str[i]);
conflicts++;
}
+ if (pkg->conflicts_str)
+ free(pkg->conflicts_str);
}
void buildReplaces(hash_table_t * hash, abstract_pkg_t * ab_pkg, pkg_t * pkg)
@@ -614,6 +620,7 @@ void buildReplaces(hash_table_t * hash, abstract_pkg_t * ab_pkg, pkg_t * pkg)
abstract_pkg_t *old_abpkg = ensure_abstract_pkg_by_name(hash, pkg->replaces_str[i]);
pkg->replaces[i] = old_abpkg;
+ free(pkg->replaces_str[i]);
if (!old_abpkg->replaced_by)
old_abpkg->replaced_by = abstract_pkg_vec_alloc();
@@ -623,6 +630,9 @@ void buildReplaces(hash_table_t * hash, abstract_pkg_t * ab_pkg, pkg_t * pkg)
if (pkg_conflicts_abstract(pkg, old_abpkg))
abstract_pkg_vec_insert(old_abpkg->replaced_by, ab_pkg);
}
+
+ if (pkg->replaces_str)
+ free(pkg->replaces_str);
}
void buildDepends(hash_table_t * hash, pkg_t * pkg)