fix: Generate a shadow ordinal
field for Kotlin Enums
#360
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Generates an added
_ordinal
field for every Kotlin Enum that can be accessed through fbjni.Previously, we accessed
ordinal
, which should've been available in every Kotlin enum, but apparently some people had issues with this (@Szymon20000 & @shovel-kun) - maybe it got compiled out? Maybe it was an older Kotlin version? Maybe it got replaced with aordinal()
method for some reason? I don't know. I couldn't reproduce this bug.Anyways; the smartest solution I can find that didn't degrade performance (calling
ordinal()
method thru JNI is slower than accessing a field) is that we just create a shadow-property on the Kotlin enum called_ordinal
which mirrors whatever state the parentordinal
value or method has.This can then be accessed directly from JNI as a field.