diff options
Diffstat (limited to 'RPM4/src/RPM4.xs')
-rw-r--r-- | RPM4/src/RPM4.xs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/RPM4/src/RPM4.xs b/RPM4/src/RPM4.xs index 3f252dc..71e23fa 100644 --- a/RPM4/src/RPM4.xs +++ b/RPM4/src/RPM4.xs @@ -1957,15 +1957,19 @@ void Te_files(Te) rpmte Te PREINIT: - rpmfi Files; + rpmfiles Files; + rpmfi fi; PPCODE: - Files = rpmteFI(Te); - if ((Files = rpmfiInit(Files, 0)) != NULL && rpmfiNext(Files) >= 0) { - mXPUSHs(sv_setref_pv(newSVpvs(""), bless_rpmfi, Files)); + Files = rpmteFiles(Te); + fi = rpmfilesIter(Files, RPMFI_ITER_FWD); + if (fi != NULL && rpmfiNext(fi) >= 0) { + mXPUSHs(sv_setref_pv(newSVpvs(""), bless_rpmfi, fi)); #ifdef HDRPMMEM PRINTF_NEW(bless_rpmfi, Files, Files->nrefs); #endif } + rpmfiFree(fi); + rpmfilesFree(Files); MODULE = RPM4 PACKAGE = RPM4 |