Clean up runTransScripts() a bit
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 24 Feb 2009 12:24:40 +0000 (14:24 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 24 Feb 2009 12:24:40 +0000 (14:24 +0200)
- move progtag figuring out of the loop, and return with error code
  instead of asserting on invalid tag

lib/transaction.c

index fae1592..c05aef8 100644 (file)
@@ -864,28 +864,23 @@ static int runTransScripts(rpmts ts, rpmTag stag)
     rpmtsi pi; 
     rpmte p;
     rpmpsm psm;
+    rpmTag progtag = RPMTAG_NOT_FOUND;
     int xx;
 
+    if (stag == RPMTAG_PRETRANS) {
+       progtag = RPMTAG_PRETRANSPROG;
+    } else if (stag == RPMTAG_POSTTRANS) {
+       progtag = RPMTAG_POSTTRANSPROG;
+    } else {
+       return -1;
+    }
+
     pi = rpmtsiInit(ts);
     while ((p = rpmtsiNext(pi, TR_ADDED)) != NULL) {
-       rpmTag progtag = RPMTAG_NOT_FOUND;
-
        /* If no pre/post-transaction script, then don't bother. */
        if (!rpmteHaveTransScript(p, stag))
            continue;
 
-       switch (stag) {
-       case RPMTAG_PRETRANS:
-           progtag = RPMTAG_PRETRANSPROG;
-           break;
-       case RPMTAG_POSTTRANS:
-           progtag = RPMTAG_POSTTRANSPROG;
-           break;
-       default:
-           assert(progtag != RPMTAG_NOT_FOUND);
-           break;
-       }
-       
        if (rpmteOpen(p, ts, 0)) {
            psm = rpmpsmNew(ts, p);
            xx = rpmpsmScriptStage(psm, stag, progtag);