From 40ffb54129f825260a55b72e370a21cbc8f7646f Mon Sep 17 00:00:00 2001 From: svenbarth Date: Wed, 25 Dec 2019 15:23:35 +0000 Subject: [PATCH] * Currency and Comp are correctly handled by GetFloatProp/SetFloatProp, so use these instead of GetOrdProp/SetOrdProp git-svn-id: trunk@43792 - --- packages/rtl-objpas/src/inc/rtti.pp | 32 +++-------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/packages/rtl-objpas/src/inc/rtti.pp b/packages/rtl-objpas/src/inc/rtti.pp index 36312788ad..0a0fc76b5a 100644 --- a/packages/rtl-objpas/src/inc/rtti.pp +++ b/packages/rtl-objpas/src/inc/rtti.pp @@ -3991,11 +3991,7 @@ begin case GetTypeData(FPropInfo^.PropType)^.FloatType of ftCurr : begin - {$IfDef FPC_CURRENCY_IS_INT64} - Values.Cur := Currency(GetOrdProp(TObject(Instance), FPropInfo)) / 10000; - {$Else} - Values.Cur := Currency(GetFloatProp(TObject(Instance), FPropInfo)); - {$EndIf} + Values.Cur := Currency(GetFloatProp(TObject(Instance), FPropInfo)); TValue.Make(@Values.Cur, FPropInfo^.PropType, Result); end; ftSingle : @@ -4015,11 +4011,7 @@ begin end; ftComp : begin - {$IfDef FPC_COMP_IS_INT64} - Values.Cp := Comp(GetOrdProp(TObject(Instance), FPropInfo)); - {$Else} Values.Cp := Comp(GetFloatProp(TObject(Instance), FPropInfo)); - {$EndIf} TValue.Make(@Values.Cp, FPropInfo^.PropType, Result); end; end; @@ -4035,10 +4027,6 @@ begin end; procedure TRttiProperty.SetValue(Instance: pointer; const AValue: TValue); -{$if defined(FPC_CURRENCY_IS_INT64) or defined(FPC_COMP_IS_INT64)} -var - td: PTypeData; -{$endif} begin case FPropinfo^.PropType^.Kind of tkSString, @@ -4056,22 +4044,8 @@ begin SetObjectProp(TObject(Instance), FPropInfo, AValue.AsObject); tkInterface: SetInterfaceProp(TObject(Instance), FPropInfo, AValue.AsInterface); - tkFloat: begin -{$if defined(FPC_CURRENCY_IS_INT64) or defined(FPC_COMP_IS_INT64)} - td := GetTypeData(FPropInfo^.PropType); -{$if defined(FPC_CURRENCY_IS_INT64)} - if td^.FloatType = ftCurr then - SetOrdProp(TObject(Instance), FPropInfo, Trunc(AValue.AsExtended * 10000)) - else -{$endif} -{$if defined(FPC_COMP_IS_INT64)} - if td^.FloatType = ftComp then - SetOrdProp(TObject(Instance), FPropInfo, Trunc(AValue.AsExtended)) - else -{$endif} -{$endif} - SetFloatProp(TObject(Instance), FPropInfo, AValue.AsExtended); - end; + tkFloat: + SetFloatProp(TObject(Instance), FPropInfo, AValue.AsExtended); tkDynArray: SetDynArrayProp(TObject(Instance), FPropInfo, PPointer(AValue.GetReferenceToRawData)^); else