Remove WrapNonBlittableTypesWhereNecessaryTransformation and make NativeBoolean/NativeChar an output implementation detail #200
Labels
Area-OutputGeneration
Issues concerning the process of generating output from Biohazrd
Area-Transformation
Issues concerning Biohazrd transformations
Concept-OutputFriendliness
Issues concerning the friendliness of using the Biohazrd output
Workaround
Edit: Decided this was extra double-plus annoying and decided to quickly fix it using the first option described below.
However this has revealed that
NativeBoolean
/NativeChar
are a bit of an annoying edge case to be handled. We should consider the second option below to make it so that we don't generally have to worry about them.An unfortunate side-effect of #147 is that we can't use
NativeBoolean
on the vtable pointer type andbool
on the correspondingTranslatedFunction
.Ideally we'd use
NativeBoolean
for the vtable pointer butbool
for the trampoline. However doing that is somewhat more complex now.There's multiple ways to handle this and I'm not sure which I want to go with so I'm deferring this for the time being since it's not a huge deal. As a workaround I'm going to modify
WrapNonBlittableTypesWhereNecessaryTransformation
to always wrapbool
/char
on virtual methods.bool
/char
when emitting types for the trampoline.WrapNonBlittableTypesWhereNecessaryTransformation
and have the output stage responsible for wrappingbool
/char
instead. (If we do this, the output stage needs to know to add the wrappers or we need to move them to a support library of some kind.The text was updated successfully, but these errors were encountered: