[fpc-devel] Memory Streams unable to handle reads past 2GB
    michael.vancanneyt at wisa.be 
    michael.vancanneyt at wisa.be
       
    Tue Nov  6 09:50:43 CET 2012
    
    
  
On Mon, 5 Nov 2012, Andrew Brunner wrote:
> Same problem with TMemoryStream.Write :-(
>
> On 11/05/2012 10:09 PM, Andrew Brunner wrote:
>> objpas/classes/classesh.inc
>> 
>> TCustomMemoryStream
>>     function Read(var Buffer; Count: LongInt): LongInt; override;
>> 
>> Having Read result declared as LongInt is problematic on 64 bit systems 
>> with large streams.
>> Read result MUST be either PtrInt or Int64 but it cannot be LongInt.
Since you can only read 2GB (Count is a longint) in a single read operation, 
it makes no sense to return a 64-bit result.
Note that the operating system only allows 2Gb reads anyway, even on 64-bit
systems.
Michael.
    
    
More information about the fpc-devel
mailing list