diff options
-rw-r--r-- | URPM.xs | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -587,10 +587,9 @@ return_list_tag(const URPM__Package pkg, rpmTag tag_name) { if (pkg->h != NULL) { struct rpmtd_s td; if (headerGet(pkg->h, tag_name, &td, HEADERGET_DEFAULT)) { - void *list = td.data; int32_t count = rpmtdCount(&td); if (tag_name == RPMTAG_ARCH) - mXPUSHs(newSVpv(headerIsEntry(pkg->h, RPMTAG_SOURCERPM) ? (char *) list : "src", 0)); + mXPUSHs(newSVpv(headerIsEntry(pkg->h, RPMTAG_SOURCERPM) ? rpmtdGetString(&td) : "src", 0)); else switch (rpmtdType(&td)) { case RPM_NULL_TYPE: @@ -915,10 +914,10 @@ update_provides(const URPM__Package pkg, HV *provides) { /* examine requires for files which need to be marked in provides */ if (headerGet(pkg->h, RPMTAG_REQUIRENAME, &td, HEADERGET_DEFAULT)) { - char **list = td.data; for (i = 0; i < rpmtdCount(&td); ++i) { - len = strlen(list[i]); - if (list[i][0] == '/') (void)hv_fetch(provides, list[i], len, 1); + const char *s = rpmtdNextString(&td); + len = strlen(s); + if (s[0] == '/') (void)hv_fetch(provides, s, len, 1); } } @@ -974,10 +973,9 @@ update_obsoletes(const URPM__Package pkg, HV *obsoletes) { /* update all provides */ if (headerGet(pkg->h, RPMTAG_OBSOLETENAME, &td, HEADERGET_DEFAULT)) { - char **list = td.data; unsigned int i; for (i = 0; i < rpmtdCount(&td); ++i) - update_hash_entry(obsoletes, list[i], 0, 1, 0, pkg); + update_hash_entry(obsoletes, rpmtdNextString(&td), 0, 1, 0, pkg); } } else { char *ps, *s; |