PascalScript: sync with original from GIT

git-svn-id: trunk@42194 -
This commit is contained in:
martin 2013-07-24 11:10:00 +00:00
parent 34e144634c
commit e96caf8f0b
3 changed files with 10 additions and 3 deletions

View File

@ -10875,7 +10875,7 @@ begin
Result := Caller.InnerfuseCall(FSelf, p.Ext2, cdregister, Params, nil); Result := Caller.InnerfuseCall(FSelf, p.Ext2, cdregister, Params, nil);
finally finally
Params.Clear; Params.Clear;
DestroyHeapVariant(n2); //DestroyHeapVariant(n2);
DisposePPSVariantIFCList(Params); DisposePPSVariantIFCList(Params);
end; end;
end; end;

View File

@ -14,7 +14,7 @@ procedure x64call(
_RCX, _RDX, _R8, _R9: IPointer; _RCX, _RDX, _R8, _R9: IPointer;
var _XMM0: Double; var _XMM0: Double;
_XMM1, _XMM2, _XMM3: Double; _XMM1, _XMM2, _XMM3: Double;
aStack: Pointer; aItems: {$IFDEF FPC}PtrUInt{$ELSE}IntPtr{$IFEND}); assembler; {$IFDEF FPC}nostackframe;{$ENDIF} aStack: Pointer; aItems: {$IFDEF FPC}PtrUInt{$ELSE}IntPtr{$ENDIF}); assembler; {$IFDEF FPC}nostackframe;{$ENDIF}
asm asm
(* Registers: (* Registers:
RCX: Address RCX: Address
@ -41,7 +41,7 @@ asm
push qword ptr [rdx] push qword ptr [rdx]
{$ELSE} {$ELSE}
push [rdx] push [rdx]
{$IFEND} {$ENDIF}
dec rcx dec rcx
sub rdx,8 sub rdx,8
@compareitems: @compareitems:

View File

@ -253,6 +253,7 @@ var
pp: ^Byte; pp: ^Byte;
{$IFDEF FPC} {$IFDEF FPC}
IsConstructor,IsVirtualCons: Boolean; IsConstructor,IsVirtualCons: Boolean;
MethodData: TMethod;
{$ENDIF} {$ENDIF}
EAX, EDX, ECX: Longint; EAX, EDX, ECX: Longint;
@ -464,9 +465,15 @@ var
btProcPtr: btProcPtr:
begin begin
{$IFDEF FPC}
MethodData := MKMethod(Self, Longint(FVar.Dta^));
TempStr := StringOfChar(AnsiChar(#0),4);
Pointer((@TempStr[1])^) := @MethodData;
{$ELSE}
tempstr := StringOfChar(AnsiChar(#0),8); tempstr := StringOfChar(AnsiChar(#0),8);
TMethod((@TempStr[1])^) := MKMethod(Self, Longint(FVar.Dta^)); TMethod((@TempStr[1])^) := MKMethod(Self, Longint(FVar.Dta^));
UseReg := false; UseReg := false;
{$ENDIF}
end; end;
{$IFNDEF PS_NOINT64}bts64: {$IFNDEF PS_NOINT64}bts64: