From ef18966f6a51d0336e0a75b13354516be5a17d5b Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 1 Nov 2012 14:50:08 +0000 Subject: (Trans_traverse) simplify using _run_cb_while_traversing() (1/2) --- URPM.xs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/URPM.xs b/URPM.xs index ce8c8c2..3b2e6ee 100644 --- a/URPM.xs +++ b/URPM.xs @@ -2598,16 +2598,7 @@ Trans_traverse(trans, callback) mi = rpmtsInitIterator(trans->ts, RPMDBI_PACKAGES, NULL, 0); while ((h = rpmdbNextIterator(mi))) { if (SvROK(callback)) { - dSP; - URPM__Package pkg = calloc(1, sizeof(struct s_Package)); - pkg->flag = FLAG_ID_INVALID | FLAG_NO_HEADER_FREE; - pkg->h = h; - PUSHMARK(SP); - mXPUSHs(sv_setref_pv(newSVpvs(""), "URPM::Package", pkg)); - PUTBACK; - call_sv(callback, G_DISCARD | G_SCALAR); - SPAGAIN; - pkg->h = NULL; /* avoid using it anymore, in case it has been copied inside callback */ + _run_cb_while_traversing(callback, h, G_DISCARD); } ++c; } -- cgit v1.2.1