Eliminate freeNames() from librpmbuild ABI
authorPanu Matilainen <pmatilai@redhat.com>
Thu, 2 Sep 2010 08:19:46 +0000 (11:19 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Thu, 2 Sep 2010 08:19:46 +0000 (11:19 +0300)
- Call freeNames() at end of buildSpec() instead of requiring API
  users to clean up after us. This does mean losing some of the
  supposed caching advantage when building on more than one spec,
  but hardly matters, one spec at a time is the typical build usage
  anyway.

build/build.c
build/rpmbuild_misc.h
rpmbuild.c

index cab152b..cdc44a5 100644 (file)
@@ -11,6 +11,7 @@
 #include <rpm/rpmlog.h>
 #include <rpm/rpmfileutil.h>
 #include "build/rpmbuild_internal.h"
+#include "build/rpmbuild_misc.h"
 
 #include "debug.h"
 
@@ -295,6 +296,7 @@ exit:
        rpmlog(RPMLOG_NOTICE, _("\n\nRPM build errors:\n"));
        rpmlogPrint(NULL);
     }
+    freeNames();
 
     return rc;
 }
index dae216a..0d2dcd2 100644 (file)
@@ -7,9 +7,8 @@
 
 /** \ingroup rpmbuild
  * Destroy uid/gid caches.
- * @todo Get this out of the ABI
  */
-/* RPM_GNUC_INTERNAL XXX should be internal too but rpmbuild "needs" for now */
+RPM_GNUC_INTERNAL
 void freeNames(void);
 
 /** \ingroup rpmbuild
index 912c4b7..6f06b51 100644 (file)
@@ -14,7 +14,6 @@ const char *__progname;
 #include <rpm/rpmps.h>
 #include <rpm/rpmts.h>
 #include "lib/signature.h"
-#include "build/rpmbuild_misc.h"       /* XXX freeNames() */
 #include "cliutils.h"
 
 #include "debug.h"
@@ -474,7 +473,6 @@ int main(int argc, char *argv[])
 
     ts = rpmtsFree(ts);
     finishPipe();
-    freeNames();
     ba->buildRootOverride = _free(ba->buildRootOverride);
     ba->targets = _free(ba->targets);