2
0
Эх сурвалжийг харах

tiff error number, fix init error value, avoid 64 bit hint

circular17 6 жил өмнө
parent
commit
1ba1527d9f

+ 4 - 2
lazpaint/uimagepreview.pas

@@ -749,6 +749,7 @@ var reader: TFPCustomImageReader;
   jpegReader: TBGRAReaderJpeg;
   source: TStream;
   svg: TBGRASVG;
+  tr: TTiffError;
 begin
   if FInUpdatePreview then
   begin
@@ -775,8 +776,9 @@ begin
         begin
           try
             FTiff := TTiff.Create;
-            if FTiff.LoadFromStream(source) <> teNone then
-              raise exception.Create(rsCannotOpenFile);
+            tr := FTiff.LoadFromStream(source);
+            if tr <> teNone then
+              raise exception.Create(rsCannotOpenFile+' (TIFF '+inttostr(ord(tr))+')');
 
             FImageNbLayers := 1;
             if FTiff.Count = 0 then

+ 7 - 3
lazpaint/utiff.pas

@@ -466,6 +466,8 @@ begin
 
   subError := LoadChunkList(AInput, TiffTagFreeOffsets, TiffTagFreeByteCounts, FFreeChunks);
   if subError <> teNone then Exit(subError);
+
+  result := teNone;
 end;
 
 procedure TTiffImageDirectory.SaveChunks(AOutput: TTiffIO);
@@ -1143,6 +1145,7 @@ begin
         AList.Add(mem);
     end;
   end;
+  result := teNone;
 end;
 
 procedure TTiffDirectory.SaveChunkList(AOutput: TTiffIO; ATagOffsets,
@@ -1365,15 +1368,15 @@ end;
 
 function TTiff.LoadImageEntries(var AInput: TTiffIO; AFirstImagePos: LongWord
   ): TTiffError;
-type TIntegerList = specialize TFPGList<integer>;
+type TLongwordList = specialize TFPGList<Longword>;
 var
   curImagePos, nextImagePos: LongWord;
-  previousPositions: TIntegerList;
+  previousPositions: TLongwordList;
   newEntry: TTiffImageDirectory;
   i: Integer;
   subError: TTiffError;
 begin
-  previousPositions := TIntegerList.Create;
+  previousPositions := TLongwordList.Create;
   try
     curImagePos := AFirstImagePos;
     repeat
@@ -1403,6 +1406,7 @@ begin
   finally
     previousPositions.Free;
   end;
+  result := teNone;
 end;
 
 constructor TTiff.Create;