[cppia] Fix missing jit exception checks for method calls#1212
[cppia] Fix missing jit exception checks for method calls#1212Simn merged 8 commits intoHaxeFoundation:masterfrom
Conversation
2643240 to
c75a21a
Compare
|
@hughsando Please check! |
It would be worth double checking if the full
|
In interp mode, we need to stop immediately if a jit exception has been thrown.
This covers the CallHaxe bug
The host must be compiled with HXCPP_CATCH_SEGV so that seg faults are handled as hxcpp exceptions.
c75a21a to
f6833f0
Compare
This test verifies that the full BCR check is needed in CallHaxe::run after runObject, otherwise the return is ignored and arguments continue to be evaluated
I have added tests that verify that the full BCR check is needed for So I think this is good to merge. This didn't fix the issue in HaxeFoundation/haxe#12646, so that must be something else. |
|
Hmm, this run seems to have had a weird state: This must mean that tests and std are not in-sync. Unrelated to this PR but something to look into because that can lead to all sorts of strange errors. |
|
Yeah, it looks like it just clones the latest haxe repository even if the haxe from build.haxe.org is slightly older. I guess we should read the commit hash from the version and use that, which is what the azure script used to do: hxcpp/tools/azure-pipelines/build.yml Line 145 in 8e3bc36 |
Even with #1188, some checks for jit exceptions in interp code were still missing. This causes control flow bugs when local functions interact with other code, as they are currently not jit compiled.
In short, we have to make sure an exception hasn't been thrown after evaluating the object for a method call.