From d608e7fc3afb0c7988dd1041d7177dc00c9aeca3 Mon Sep 17 00:00:00 2001 From: Freeman Date: Thu, 18 Jun 2020 21:28:45 +0300 Subject: [PATCH] System.TVarRec reverted compatible with standard one --- RTL/System.pas | 62 +++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/RTL/System.pas b/RTL/System.pas index e74fc35..2899308 100644 --- a/RTL/System.pas +++ b/RTL/System.pas @@ -67,32 +67,46 @@ type OuterContext: PInitContext; end; - TVarType = ( - vtInteger, vtBoolean, vtAnsiChar, vtExtended, vtShortString, vtPointer, vtPAnsiChar, - vtObject, vtClass, vtWideChar, vtPWideChar, vtAnsiString, vtCurrency, vtVariant, vtInterface, - vtWideString, vtInt64 - ); +const + vtInteger = 0; + vtBoolean = 1; + vtChar = 2; + vtExtended = 3; + vtString = 4; + vtPointer = 5; + vtPChar = 6; + vtObject = 7; + vtClass = 8; + vtWideChar = 9; + vtPWideChar = 10; + vtAnsiString = 11; + vtCurrency = 12; + vtVariant = 13; + vtInterface = 14; + vtWideString = 15; + vtInt64 = 16; +type PVarRec = ^TVarRec; - TVarRec = record { do not pack this record; it is compiler-generated } - case TVarType of - vtInteger: (VarInteger: Integer; VarType: Byte); - vtBoolean: (VarBoolean: Boolean); - vtAnsiChar: (VarChar: AnsiChar); - vtExtended: (VarExtended: PExtended); - vtShortString: (VarString: PShortString); - vtPointer: (VarPointer: Pointer); - vtPAnsiChar: (VarPChar: PAnsiChar); - vtObject: (VarObject: Pointer); - vtClass: (VarClass: Pointer); - vtWideChar: (VarWideChar: WideChar); - vtPWideChar: (VarPWideChar: PWideChar); - vtAnsiString: (VarAnsiString: PAnsiChar); - vtCurrency: (VarCurrency: PCurrency); - vtVariant: (VarVariant: PVariant); - vtInterface: (VarInterface: Pointer); - vtWideString: (VarWideString: PWideChar); - vtInt64: (VarInt64: PInt64); + TVarRec = record + case Byte of + vtInteger: (VInteger: Integer; VType: Byte); + vtBoolean: (VBoolean: Boolean); + vtChar: (VChar: AnsiChar); + vtExtended: (VExtended: PExtended); + vtString: (VString: PShortString); + vtPointer: (VPointer: Pointer); + vtPChar: (VPChar: PAnsiChar); + vtObject: (VObject: Pointer); + vtClass: (VClass: Pointer); + vtWideChar: (VWideChar: WideChar); + vtPWideChar: (VPWideChar: PWideChar); + vtAnsiString: (VAnsiString: Pointer); + vtCurrency: (VCurrency: PCurrency); + vtVariant: (VVariant: PVariant); + vtInterface: (VInterface: Pointer); + vtWideString: (VWideString: Pointer); + vtInt64: (VInt64: PInt64); end; procedure _Halt0;