You are not logged in.
Pages: 1
I found a small error when working with TDateTime in the implementation of the method TInterfacedObjectFake.FakeCall (unit SQLite3Commons)
Current version
function TInterfacedObjectFake.FakeCall(var aCall: TFakeCallStack): Int64;
{...}
begin
{...}
if ValueDirection=smdResult then
case ValueType of // ordinal/real result values to CPU/FPU registers
smvBoolean..smvInt64: Move(V^,result,SizeInStorage); // al/ax/eax/eax:edx
smvDouble: asm mov eax,V; fld qword ptr [eax] end; // in st(0)
smvCurrency: asm mov eax,V; fild qword ptr [eax] end; // in st(0)
end;
end;
end;
end;
Corrected version
function TInterfacedObjectFake.FakeCall(var aCall: TFakeCallStack): Int64;
{...}
begin
{...}
if ValueDirection=smdResult then
case ValueType of // ordinal/real result values to CPU/FPU registers
smvBoolean..smvInt64: Move(V^,result,SizeInStorage); // al/ax/eax/eax:edx
smvDouble, smvDateTime: asm mov eax,V; fld qword ptr [eax] end; // in st(0)
smvCurrency: asm mov eax,V; fild qword ptr [eax] end; // in st(0)
end;
end;
end;
end;
Offline
You're right.
I have fixed this issue in client side fake interface creation, when returning a DateTime kind of value.
See http://synopse.info/fossil/info/e0ff26f3fc
Nice catch!
Thanks for the feedback.
Offline
Pages: 1