소스 검색

* more range check fixes (more serious this time) from mantis 16669
* one more writeln under chm_debug to avoid problems with gui-only apps.

git-svn-id: trunk@15397 -

marco 15 년 전
부모
커밋
909ffa4ee3
2개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 0
      packages/chm/src/chmtypes.pas
  2. 3 2
      packages/chm/src/chmwriter.pas

+ 2 - 0
packages/chm/src/chmtypes.pas

@@ -356,7 +356,9 @@ var
   end;
 begin
   if FItemCount < 1 then begin
+    {$ifdef chm_debug}
     WriteLn('WHAT ARE YOU DOING!!');
+    {$endif}
     Dec(AIndex);
     Exit;
   end;

+ 3 - 2
packages/chm/src/chmwriter.pas

@@ -1371,7 +1371,8 @@ function TChmWriter.AddURL ( AURL: String; TopicsIndex: DWord ) : LongWord;
       FAvlUrlStr.Add(UrlStrRec);
       FURLSTRStream.WriteDWord(NToLE(DWord(0))); // URL Offset for topic after the the "Local" value
       FURLSTRStream.WriteDWord(NToLE(DWord(0))); // Offset of FrameName??
-      FURLSTRStream.Write(AString[1], Length(AString));
+      if Length(AString) > 0 then
+        FURLSTRStream.Write(AString[1], Length(AString));
       FURLSTRStream.WriteByte(0); //NT
   end;
 
@@ -1390,7 +1391,7 @@ function TChmWriter.AddURL ( AURL: String; TopicsIndex: DWord ) : LongWord;
 var UrlIndex : Integer;
 
 begin
-  if AURL[1] = '/' then Delete(AURL,1,1);
+  if (Length(AURL) > 0) and (AURL[1] = '/') then Delete(AURL,1,1);
   UrlIndex:=LookupUrlString(AUrl);
 
   //if $1000 - (FURLTBLStream.Size mod $1000) = 4 then // we are at 4092