I just updated to the latest TMS Component Pack - 8.0.0.0
and now have an issue when one particular application closes-
"Invalid Pointer Operation at 0000000000009272" when it is compiled as a 64 bit app.
It is ok as a 23 bit app. The application works ok,
This occurs in XE8 and XE10.
Prior to 8.0.0.0 this DID not occur. I installed 8.0.0.0 to get XE10 support,
but now the issue is on both environments.
I use many TMS components in the app so I am not sure where the issue is.
the best I can diagnose is trapping on close and see that there
is an issue in system.pas.
is there a way I can 'go back' to the previous VCL component pack for XE8 to
test / check further?
Thanks in advance
Can you please define which particular application throws this error? Can you reproduce this in a separate project? We need more information about which component might be affected before we can further investigate this.
Pieter
my first request is can you get me the previous non-8.0.0.0 VCL component suite.
-is there a link on the web site - I just see the current version and recently I now use
the subscription manager application.
- I still use XE8 for my development and am testing XE10.
As to the application - so far only one application in which I use the TMS components have
this issue. I have not been able to re-create the problem in a 'new' application with the TMS ribbon wizard, but then the base application has nothing on it....
Thanks!
Upon a little further debug investigation the issue / exception occurs
in System.Classes at line 16900 where there is an IFDEF area for CPUX86 vs CPUX64.
{ Standard window procedure }
function StdWndProc(Window: HWND; Message: UINT; WParam: WPARAM; LParam: WPARAM): LRESULT; stdcall;
{$IF Defined(CPUX86)}
{ In ECX = Address of method pointer }
{ Out EAX = Result }
asm
XOR EAX,EAX
PUSH EAX
PUSH LParam
PUSH WParam
PUSH Message
MOV EDX,ESP
MOV EAX,[ECX].Longint[4]
CALL [ECX].Pointer
ADD ESP,12
POP EAX
end;
{$ELSEIF Defined(CPUX64)}
{ In R11 = Address of method pointer }
{ Out RAX = Result }
var
Msg: TMessage;
asm
.PARAMS 2
MOV Msg.Msg,Message
MOV Msg.WParam,WParam
MOV Msg.LParam,LParam
MOV Msg.Result,0
LEA RDX,Msg
MOV RCX,[R11].TMethod.Data
CALL [R11].TMethod.Code
MOV RAX,Msg.Result
end;//<<<<<<<<<<<<<exception right here
{$ENDIF CPUX64}
Just prior to System.Classes debug went through AdvToolBar.pas
clean up code.
HTH
TIA
I have retested this here but could not reproduce this.
To get an old version, please contact us by email.
Thank you Bruno
- It is only one application that is causing this issue. I have another application that also
uses the ribbon VCL - not as complicated that is ok with 8.0.0.0,
At the moment I am 'code freezing' the affected app to the exe that used the previous VCL
Long term I am re-writing (and copy / paste) where I can the affected app.
regards
PS
-I updated to 8.0.0.1 and issue has disappeared...
:)