Access violation on Windows 64 bit

We use Pascalscript extensively in our software. Even though I know it’s an unsupported product, I’ll explain the problem we run into when trying to run our software on 64 bit Window.

Basically we allow customization of our software with scripts events with specific signatures that our code calls if exists in the script. Normally it’s procedure - for example:
OnGetProfile(aParameter: TOnGetProfileWraper);

But in my test project I’ve reduced it into:

procedure Test(aWrapper: TParaWrapper);
begin
   aWrapper.Child.StringValue;
end;

Debugging shows that the 32 MSB is cleared on the 64 bit pointer of aWrapper.Child, and therefore leads to an AccessViolation.

I would appreciate much if someone could have a look at it. The attached project is very simple.

PascalScript64Problem.zip (8.2 KB)

Logged as bugs://D19272.

That does sound like a bug, yeah. i’ve logged an issue to have this looked at, but it probably won’t be before next week, I’m afraid.

Hi,

it works for me:

Hi,

To be sure, I just downloaded the latest source from GitHub - remobjects/pascalscript: pascalscript master. I also made 100% sure it was that version that was used. But still the same error.


Pascalscript64.zip (3.8 MB)
I’ve attached the exe file.

Hi,

Can you retest this issue with another version of Delphi?
I can reproduce issue with Delphi 11.1 but it works with another versions of Delphi (I’ve tested with Delphi 10.3 & Delphi 10.4):

exe: Pascalscript64.7z (2.6 MB)

Yepp. It seems to work on 10.4.2.
I have tried our whole application previously on Delphi 10.X, but it failed. It might be that this simple test just works by luck.

Hi,

Any chance for this one to be solved?

Hi,

We have to investigate what EMBT has changed in Delphi 11 and why old code doesn’t work anymore.
as a result, I can’t say any terms when it will be solved …