diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc index cf598ea4ca..06373c7269 100644 --- a/rtl/objpas/classes/classesh.inc +++ b/rtl/objpas/classes/classesh.inc @@ -1881,6 +1881,7 @@ type {$ifndef FPUNONE} function ReadFloat: Extended; function ReadSingle: Single; + function ReadDouble: Double; function ReadDate: TDateTime; {$endif} function ReadCurrency: Currency; diff --git a/rtl/objpas/classes/reader.inc b/rtl/objpas/classes/reader.inc index f4d02372ba..c66ac38740 100644 --- a/rtl/objpas/classes/reader.inc +++ b/rtl/objpas/classes/reader.inc @@ -1119,6 +1119,25 @@ begin Result := ReadInt64; end; +function TReader.ReadDouble: Double; +begin + // We have no vaDouble + Case FDriver.NextValue of + vaExtended: + begin + ReadValue; + Result := FDriver.ReadFloat + end; + vaSingle: + begin + ReadValue; + Result := FDriver.ReadSingle + end; + else + Result := ReadInt64; + end +end; + procedure TReader.ReadSignature; begin FDriver.ReadSignature;