Browse Source

* Removed several mem-leaks

git-svn-id: trunk@18902 -
joost 14 years ago
parent
commit
c0fa7e930b
2 changed files with 25 additions and 18 deletions
  1. 6 12
      packages/fppkg/src/fpxmlrep.pp
  2. 19 6
      packages/fppkg/src/pkgrepos.pp

+ 6 - 12
packages/fppkg/src/fpxmlrep.pp

@@ -736,9 +736,8 @@ procedure TFPXMLRepositoryHandler.LoadFromXml(D: TFPDependency; Stream: TStream)
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  Xmlread.ReadXMLFile(XML,Stream);
   try
-    Xmlread.ReadXMLFile(XML,Stream);
     XmlToDependency(XML.DocumentElement,D);
   finally
     XML.Free;
@@ -750,9 +749,8 @@ procedure TFPXMLRepositoryHandler.LoadFromXml(DS: TFPDependencies; Stream: TStre
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  xmlread.ReadXMLFile(XML,Stream);
   try
-    xmlread.ReadXMLFile(XML,Stream);
     XmlToDependencies(XML.DocumentElement,DS);
   finally
     XML.Free;
@@ -764,9 +762,8 @@ procedure TFPXMLRepositoryHandler.LoadFromXml(P: TFPPackage; Stream: TStream);
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  xmlread.ReadXMLFile(XML,Stream);
   try
-    xmlread.ReadXMLFile(XML,Stream);
     XmlToPackage(XML.DocumentElement,P);
   finally
     XML.Free;
@@ -778,9 +775,8 @@ procedure TFPXMLRepositoryHandler.LoadFromXml(PS: TFPPackages; Stream: TStream);
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  xmlread.ReadXMLFile(XML,Stream);
   try
-    xmlread.ReadXMLFile(XML,Stream);
     XmlToPackages(XML.DocumentElement,PS);
   finally
     XML.Free;
@@ -792,9 +788,8 @@ procedure TFPXMLRepositoryHandler.LoadFromXml(R: TFPRepository; Stream: TStream)
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  xmlread.ReadXMLFile(XML,Stream);
   try
-    xmlread.ReadXMLFile(XML,Stream);
     XmlToRepository(XML.DocumentElement,R);
   finally
     XML.Free;
@@ -923,9 +918,8 @@ procedure TFPXMLMirrorHandler.LoadFromXml(PS: TFPMirrors; Stream: TStream);
 Var
   XML : TXMLDocument;
 begin
-  XML:=TXMLDocument.Create;
+  xmlread.ReadXMLFile(XML,Stream);
   try
-    xmlread.ReadXMLFile(XML,Stream);
     XmlToMirrors(XML.DocumentElement,PS);
   finally
     XML.Free;

+ 19 - 6
packages/fppkg/src/pkgrepos.pp

@@ -261,6 +261,7 @@ procedure FindInstalledPackages(ACompilerOptions:TCompilerOptions;showdups:boole
             end;
         until FindNext(SR)<>0;
       end;
+    FindClose(SR);
   end;
 
 begin
@@ -386,12 +387,16 @@ begin
           else
             AvailVerStr:='<not available>';
           ReqVer:=TFPVersion.Create;
-          ReqVer.AsString:=FPMKUnitDeps[i].ReqVer;
-          log(vlDebug,SLogFPMKUnitDepVersion,[P.Name,ReqVer.AsString,P.Version.AsString,AvailVerStr]);
-          if ReqVer.CompareVersion(P.Version)<=0 then
-            FPMKUnitDeps[i].available:=true
-          else
-            log(vlDebug,SLogFPMKUnitDepTooOld,[FPMKUnitDeps[i].package]);
+          try
+            ReqVer.AsString:=FPMKUnitDeps[i].ReqVer;
+            log(vlDebug,SLogFPMKUnitDepVersion,[P.Name,ReqVer.AsString,P.Version.AsString,AvailVerStr]);
+            if ReqVer.CompareVersion(P.Version)<=0 then
+              FPMKUnitDeps[i].available:=true
+            else
+              log(vlDebug,SLogFPMKUnitDepTooOld,[FPMKUnitDeps[i].package]);
+          finally
+            ReqVer.Free;
+          end;
         end
       else
         log(vlDebug,SLogFPMKUnitDepTooOld,[FPMKUnitDeps[i].package]);
@@ -662,4 +667,12 @@ begin
     end;
 end;
 
+initialization
+  AvailableRepository := nil;
+  InstalledRepository := nil;
+  AvailableMirrors := nil;
+finalization
+  AvailableRepository.Free;
+  InstalledRepository.Free;
+  AvailableMirrors.Free;
 end.