- more memory-leak fixes (lua-interface, repomd)
authorPanu Matilainen <pmatilai@turre.koti.laiskiainen.org>
Sun, 18 Mar 2007 20:43:25 +0000 (22:43 +0200)
committerPanu Matilainen <pmatilai@turre.koti.laiskiainen.org>
Sun, 18 Mar 2007 20:43:25 +0000 (22:43 +0200)
apt-pkg/luaiface.cc
apt-pkg/rpm/repomd.cc
cmdline/cmdline.cc
cmdline/cmdline.h

index 0474ddd..19d5854 100644 (file)
@@ -985,6 +985,7 @@ static int AptLua_verpkg(lua_State *L)
    if (VerI == NULL)
       return 0;
    pushudata(pkgCache::Package*, VerI->ParentPkg());
+   delete VerI;
    return 1;
 }
 
@@ -1020,7 +1021,9 @@ static int AptLua_verisonline(lua_State *L)
    pkgCache::VerIterator *VerI = AptAux_ToVerIterator(L, 1);
    if (VerI == NULL)
       return 0;
-   return AptAux_PushBool(L, VerI->Downloadable());
+   int Ret = AptAux_PushBool(L, VerI->Downloadable());
+   delete VerI;
+   return Ret;
 }
 
 static int AptLua_verprovlist(lua_State *L)
@@ -1055,6 +1058,7 @@ static int AptLua_verprovlist(lua_State *L)
       lua_settable(L, -3);
       lua_rawseti(L, -2, i++);
    }
+   delete VerI;
    return 1;
 }
 
@@ -1101,6 +1105,7 @@ static int AptLua_verdeplist(lua_State *L)
       lua_settable(L, -3);
       lua_rawseti(L, -2, i++);
    }
+   delete VerI;
    return 1;
 }
 
@@ -1126,6 +1131,7 @@ static int AptLua_verfilelist(lua_State *L)
       lua_pushstring(L, (*FI).c_str());
       lua_rawseti(L, -2, i++);
    }
+   delete VerI;
    return 1;
 }
 
@@ -1160,6 +1166,7 @@ static int AptLua_verchangeloglist(lua_State *L)
       lua_settable(L, -3);
       lua_rawseti(L, -2, i++);
    }
+   delete VerI;
    return 1;
 }
 
index 47f5bd4..a349ccd 100644 (file)
@@ -95,6 +95,7 @@ bool repomdRepository::ParseRelease(string File)
       } else {
         CheckMethod = "MDA5-Hash";
       }
+      xmlFree(type);
    }
    
    GotRelease = true;
index a44dea7..69251df 100644 (file)
@@ -184,6 +184,13 @@ void cmdCacheFile::Sort()
    qsort(List,Cache->Head().PackageCount,sizeof(*List),NameComp);
 }
 
+cmdCacheFile::~cmdCacheFile()
+{
+   if (List) {
+      delete [] List;
+   }
+}
+
 // ShowBroken - Debugging aide                                         /*{{{*/
 // ---------------------------------------------------------------------
 /* This prints out the names of all the packages that are broken along
index 98f5b9e..872304b 100644 (file)
@@ -37,6 +37,7 @@ class cmdCacheFile : public pkgCacheFile
    void Sort();
 
    cmdCacheFile() : List(0) {};
+   virtual ~cmdCacheFile();
 };
 
 class LogCleaner : public pkgArchiveCleaner