Quellcode durchsuchen

* tried to apply patch of mantis #38169 in a more minimal way and fixing some of the omissions.

git-svn-id: trunk@47703 -
marco vor 4 Jahren
Ursprung
Commit
36eaa6c9ae
1 geänderte Dateien mit 10 neuen und 6 gelöschten Zeilen
  1. 10 6
      packages/chm/src/chmreader.pas

+ 10 - 6
packages/chm/src/chmreader.pas

@@ -480,9 +480,8 @@ begin
 end;
 
 function TChmReader.ReadURLSTR ( APosition: DWord ) : String;
-var
-  URLStrURLOffset: DWord;
 begin
+  result:='';
   if not CheckCommonStreams then
     Exit;
 
@@ -1124,6 +1123,8 @@ var
 
 function readvalue:string;
 begin
+  result:='';
+  title:='';
   if head<tail Then
     begin
       ind:=LEToN(plongint(head)^);
@@ -1308,19 +1309,21 @@ var TryTextual : boolean;
 
 begin
    Result := nil;  SiteMap:=Nil;
-   lookup:=TDictionary<string,TLookupRec>.create;
    // First Try Binary
    Index := GetObject('/$WWKeywordLinks/BTree');
    if (Index = nil) or ForceXML then
    begin
-     Result:=AbortAndTryTextual;
+     Result:=AbortAndTryTextual; // frees index if needed
      Exit;
    end;
    if not CheckCommonStreams then
    begin
-     Result:=AbortAndTryTextual;
+     index.free;
+     Result:=AbortAndTryTextual; // frees index if needed
      Exit;
    end;
+
+   lookup:=TDictionary<string,TLookupRec>.create;
    SiteMap:=TChmSitemap.Create(StIndex);
    itemstack :=TObjectList.create(false);
    //Item   :=Nil;  // cached last created item, in case we need to make
@@ -1349,9 +1352,10 @@ begin
   if trytextual then
     begin
       sitemap.free;
-      Result:=AbortAndTryTextual;
+      Result:=AbortAndTryTextual; // frees index if needed
     end
   else Index.Free;
+  itemstack.free;
   lookup.free;
 end;