RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 29-Mar-2009 23:44:06 Branch: HEAD Handle: 2009032921440501 Modified files: rpm CHANGES rpm/rpmdb pkgio.c rpm/rpmio rpmiob.c rpmku.c Log: - rpmku: rework rpmiob handling to avoid extra malloc's. - rpmiob: fix: add a newref in rpmiobNew. Summary: Revision Changes Path 1.2886 +2 -0 rpm/CHANGES 1.97 +2 -4 rpm/rpmdb/pkgio.c 1.5 +1 -1 rpm/rpmio/rpmiob.c 2.3 +5 -4 rpm/rpmio/rpmku.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.2885 -r1.2886 CHANGES --- rpm/CHANGES 29 Mar 2009 18:42:21 -0000 1.2885 +++ rpm/CHANGES 29 Mar 2009 21:44:05 -0000 1.2886 @@ -1,5 +1,7 @@ 5.2a3 -> 5.2a4: + - jbj: rpmku: rework rpmiob handling to avoid extra malloc's. + - jbj: rpmiob: fix: add a newref in rpmiobNew. - jbj: yarn: convert rpmiob to usage mutex with refcounts. - rse: add RPM Lua function rpm.hostname() - jbj: fix: handle ./../foo paths correctly (#491388). @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/pkgio.c ============================================================================ $ cvs diff -u -r1.96 -r1.97 pkgio.c --- rpm/rpmdb/pkgio.c 27 Mar 2009 17:42:00 -0000 1.96 +++ rpm/rpmdb/pkgio.c 29 Mar 2009 21:44:05 -0000 1.97 @@ -312,10 +312,8 @@ /* Save the pubkey in the keyutils keyring. */ if (krcache) { if (iob == NULL) { - iob = xcalloc(1, sizeof(*iob)); - iob->b = memcpy(xmalloc(ts->pkpktlen), ts->pkpkt, ts->pkpktlen); - iob->blen = ts->pkpktlen; - iob->allocated = ts->pkpktlen; + iob = rpmiobNew(ts->pkpktlen); + iob->b = memcpy(iob->b, ts->pkpkt, iob->blen); } (void) rpmkuStorePubkey(sigp, iob); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmiob.c ============================================================================ $ cvs diff -u -r1.4 -r1.5 rpmiob.c --- rpm/rpmio/rpmiob.c 29 Mar 2009 18:42:22 -0000 1.4 +++ rpm/rpmio/rpmiob.c 29 Mar 2009 21:44:06 -0000 1.5 @@ -47,7 +47,7 @@ iob->allocated = len; iob->blen = 0; iob->b = xcalloc(iob->allocated+1, sizeof(*iob->b)); - return iob; + return rpmiobLink(iob); } rpmiob rpmiobEmpty(rpmiob iob) @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmku.c ============================================================================ $ cvs diff -u -r2.2 -r2.3 rpmku.c --- rpm/rpmio/rpmku.c 1 Oct 2008 15:53:17 -0000 2.2 +++ rpm/rpmio/rpmku.c 29 Mar 2009 21:44:06 -0000 2.3 @@ -168,9 +168,8 @@ key = keyctl_search(keyring, "user", krn, 0); xx = keyctl_read(key, NULL, 0); if (xx > 0) { - rpmiob iob = xcalloc(1, sizeof(*iob)); - iob->allocated = iob->blen = xx; - xx = keyctl_read_alloc(key, (void **)&iob->b); + rpmiob iob = rpmiobNew(xx); + xx = keyctl_read(key, (char *)iob->b, iob->blen); if (xx > 0) { #ifdef NOTYET pubkeysource = xstrdup(krn); @@ -182,8 +181,10 @@ if (iob != NULL && iobp != NULL) { *iobp = iob; return RPMRC_OK; - } else + } else { + iob = rpmiobFree(iob); return RPMRC_NOTFOUND; + } } else return RPMRC_NOTFOUND; } else @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org