From 8415bd7e2e880231a78efecd1693e41d889960df Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 14 Jun 2012 18:23:53 +0000 Subject: (return_files) use proper API for freeing memory --- URPM.xs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'URPM.xs') diff --git a/URPM.xs b/URPM.xs index d792539..f23664e 100644 --- a/URPM.xs +++ b/URPM.xs @@ -699,9 +699,10 @@ return_files(const Header header, int filter_mode) { char **baseNames = td_baseNames.data; char **dirNames = td_dirNames.data; int32_t *dirIndexes = td_dirIndexes.data; + int is_oldfilenames = !baseNames || !dirNames || !dirIndexes; char **list = NULL; - if (!baseNames || !dirNames || !dirIndexes) { + if (is_oldfilenames) { if (!headerGet(header, RPMTAG_OLDFILENAMES, &td_list, HEADERGET_DEFAULT)) return; list = td_list.data; @@ -729,9 +730,10 @@ return_files(const Header header, int filter_mode) { mXPUSHs(newSVpv(s, len)); } - free(baseNames); - free(dirNames); - free(list); + rpmtdFreeData(&td_baseNames); + rpmtdFreeData(&td_dirNames); + if (is_oldfilenames) + rpmtdFreeData(&td_list); } PUTBACK; } -- cgit v1.2.1