FIX: Invalid typecast

(cherry picked from commit e4cdb921d0)
This commit is contained in:
Alexander Koblov 2024-01-27 14:36:01 +03:00
commit 73e31f077f
3 changed files with 21 additions and 8 deletions

View file

@ -172,10 +172,15 @@ end;
function TDCReaderHEIF.InternalCheck(Stream: TStream): boolean;
var
Err: Theif_error;
MemoryStream: TMemoryStream absolute Stream;
MemoryStream: TMemoryStream;
begin
Err:= heif_context_read_from_memory_without_copy(FContext, MemoryStream.Memory, MemoryStream.Size, nil);
Result:= (Err.code = heif_error_Ok);
Result:= Stream is TMemoryStream;
if Result then
begin
MemoryStream:= TMemoryStream(Stream);
Err:= heif_context_read_from_memory_without_copy(FContext, MemoryStream.Memory, MemoryStream.Size, nil);
Result:= (Err.code = heif_error_Ok);
end;
end;
procedure TDCReaderHEIF.InternalRead(Stream: TStream; Img: TFPCustomImage);

View file

@ -207,9 +207,13 @@ function TDCReaderRSVG.InternalCheck(Stream: TStream): boolean;
var
MemoryStream: TMemoryStream;
begin
MemoryStream:= Stream as TMemoryStream;
FRsvgHandle:= rsvg_handle_new_from_data(MemoryStream.Memory, MemoryStream.Size, nil);
Result:= Assigned(FRsvgHandle);
Result:= Stream is TMemoryStream;
if Result then
begin
MemoryStream:= TMemoryStream(Stream);
FRsvgHandle:= rsvg_handle_new_from_data(MemoryStream.Memory, MemoryStream.Size, nil);
Result:= Assigned(FRsvgHandle);
end;
end;
procedure TDCReaderRSVG.InternalRead(Stream: TStream; Img: TFPCustomImage);

View file

@ -76,8 +76,12 @@ function TDCReaderWebP.InternalCheck(Stream: TStream): Boolean;
var
MemoryStream: TMemoryStream;
begin
MemoryStream:= Stream as TMemoryStream;
Result:= WebPGetInfo(MemoryStream.Memory, MemoryStream.Size, nil, nil) <> 0;
Result:= Stream is TMemoryStream;
if Result then
begin
MemoryStream:= TMemoryStream(Stream);
Result:= WebPGetInfo(MemoryStream.Memory, MemoryStream.Size, nil, nil) <> 0;
end;
end;
procedure TDCReaderWebP.InternalRead(Stream: TStream; Img: TFPCustomImage);