summaryrefslogtreecommitdiffstats
path: root/libopkg/pkg_depends.c
diff options
context:
space:
mode:
authorgraham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-23 21:35:28 (EST)
committer graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2009-11-23 21:35:28 (EST)
commit0673e730b861851f27505447862e942599d6705b (patch)
treea75cb85a76d6fa03867693381b69240bf181de87 /libopkg/pkg_depends.c
parent22be42698db49235c24dbed4366d197a8342b064 (diff)
Remove remaining uses of pkg->*_str arrays and free() them after parsing.
Saves about 800kb in peak memory usage for my package list (6000 packages). git-svn-id: http://opkg.googlecode.com/svn/trunk@356 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/pkg_depends.c')
-rw-r--r--libopkg/pkg_depends.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libopkg/pkg_depends.c b/libopkg/pkg_depends.c
index 67924bd..813ec6a 100644
--- a/libopkg/pkg_depends.c
+++ b/libopkg/pkg_depends.c
@@ -647,26 +647,38 @@ void buildDepends(hash_table_t * hash, pkg_t * pkg)
for(i = 0; i < pkg->pre_depends_count; i++){
parseDepends(depends, hash, pkg->pre_depends_str[i]);
+ free(pkg->pre_depends_str[i]);
depends->type = PREDEPEND;
depends++;
}
+ if (pkg->pre_depends_str)
+ free(pkg->pre_depends_str);
for(i = 0; i < pkg->depends_count; i++){
parseDepends(depends, hash, pkg->depends_str[i]);
+ free(pkg->depends_str[i]);
depends++;
}
+ if (pkg->depends_str)
+ free(pkg->depends_str);
for(i = 0; i < pkg->recommends_count; i++){
parseDepends(depends, hash, pkg->recommends_str[i]);
+ free(pkg->recommends_str[i]);
depends->type = RECOMMEND;
depends++;
}
+ if(pkg->recommends_str)
+ free(pkg->recommends_str);
for(i = 0; i < pkg->suggests_count; i++){
parseDepends(depends, hash, pkg->suggests_str[i]);
+ free(pkg->suggests_str[i]);
depends->type = SUGGEST;
depends++;
}
+ if(pkg->suggests_str)
+ free(pkg->suggests_str);
}
const char*