Skip to content

Conversation

@tobil4sk
Copy link
Member

This enables an alternate solution for these bugs:
HaxeFoundation/haxe#12374
HaxeFoundation/haxe#12376

With this PR, haxe is able to mark methods as overrides so that they don't add an additional slot to the vtable. This way, haxe can still include them in __scriptableFunctions so that they can be resolved correctly in super.method calls, avoiding #1150.

Alternatively, if the haxe version is old and does not mark them, then fallback logic is used to infer overrides from matching method names. This has a runtime cost but avoids incorrect behaviour for current haxe. This only really affects 4.3.7 as older versions suffered from #1150.

This allows overridden methods to be marked so that they do not add an
addtional slot to the vtable, which has previously caused bugs due to
incorrect vtable indices.
For haxe versions that do not tag overridden methods in
__scriptableFunctions tables, we can infer overrides at runtime by
comparing method names.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant