[fpc-pascal] TCustomStream still using LongInt and not Int64

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Sun Dec 27 17:20:32 CET 2020


Hi,

Is this a bug in FPC 3.2.0 where TCustomStream still uses LongInt in
the Read() method, where all other methods in in the class uses Int64
type?

Here is the FPC code:

  TCustomMemoryStream = class(TStream)
  private
    FMemory: Pointer;
    FSize, FPosition: PtrInt;
  protected
    Function GetSize : Int64; Override;
    function GetPosition: Int64; Override;
    procedure SetPointer(Ptr: Pointer; ASize: PtrInt);
  public
    function Read(var Buffer; Count: LongInt): LongInt; override; // <-- Here
    function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
    ...
  end;


As this class extends the TStream class, I guess the issue relates to
TStream too.

eg: Why would you have GetSize(): Int64; or GetPosition: Int64; but when you
read data, it is limited to the Longint type?


Regards,
  Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp


More information about the fpc-pascal mailing list