- fix mem leak
authorMichael Schroeder <mls@suse.de>
Fri, 14 Nov 2008 11:55:08 +0000 (11:55 +0000)
committerMichael Schroeder <mls@suse.de>
Fri, 14 Nov 2008 11:55:08 +0000 (11:55 +0000)
- use EVRCMP_COMPARE instead of MATCH_RELEASE when comparing evrs.

src/policy.c
src/solver.c

index 4b9cec5..ab3dd46 100644 (file)
@@ -294,7 +294,7 @@ prune_to_best_version(Solver *solv, Queue *plist)
 
       if (pool->solvables[best].evr != s->evr)   /* compare evr */
         {
-          if (evrcmp(pool, pool->solvables[best].evr, s->evr, EVRCMP_MATCH_RELEASE) < 0)
+          if (evrcmp(pool, pool->solvables[best].evr, s->evr, EVRCMP_COMPARE) < 0)
             best = plist->elements[i];
         }
     }
@@ -429,7 +429,7 @@ policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs, int allow_all)
       ps = pool->solvables + p;
       if (s->name == ps->name) /* name match */
        {
-         if (!allow_all && !solv->allowdowngrade && evrcmp(pool, s->evr, ps->evr, EVRCMP_MATCH_RELEASE) > 0)
+         if (!allow_all && !solv->allowdowngrade && evrcmp(pool, s->evr, ps->evr, EVRCMP_COMPARE) > 0)
            continue;
        }
       else if (!solv->noupdateprovide && ps->obsoletes)   /* provides/obsoletes combination ? */
index bed5fd4..175cd18 100644 (file)
@@ -2508,6 +2508,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
              if (analyze_unsolvable(solv, r, disablerules))
                continue;
              queue_free(&dq);
+             queue_free(&dqs);
              return;
            }
        }
@@ -2556,6 +2557,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
              if (level == 0)
                {
                  queue_free(&dq);
+                 queue_free(&dqs);
                  return;
                }
              if (level <= olevel)
@@ -2601,6 +2603,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
                  if (level == 0)                /* unsolvable */
                    {
                      queue_free(&dq);
+                     queue_free(&dqs);
                      return;
                    }
                  if (level <= olevel)
@@ -2638,6 +2641,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
                      if (level == 0)
                        {
                          queue_free(&dq);
+                         queue_free(&dqs);
                          return;
                        }
                      if (level <= olevel)
@@ -2659,6 +2663,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
                      if (level == 0)
                        {
                          queue_free(&dq);
+                         queue_free(&dqs);
                          return;
                        }
                      if (level <= olevel)
@@ -2721,6 +2726,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
              if (level == 0)
                {
                  queue_free(&dq);
+                 queue_free(&dqs);
                  return;
                }
              if (level <= olevel)
@@ -2813,6 +2819,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
          if (level == 0)
            {
              queue_free(&dq);
+             queue_free(&dqs);
              return;
            }
          if (level < systemlevel)
@@ -2976,6 +2983,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
              if (level == 0)
                {
                  queue_free(&dq);
+                 queue_free(&dqs);
                  return;
                }
              continue;
@@ -3014,6 +3022,7 @@ run_solver(Solver *solv, int disablerules, int doweak)
              if (level == 0)
                {
                  queue_free(&dq);
+                 queue_free(&dqs);
                  return;
                }
              continue;