Avoid hardcoded type conversion for metadata
The engine uses the names `int` and `float` to refer to the 64-bit types, so in the bindings generator we have a hardcoded conversion for those types.
But this type conversion should not be used for metadata. Even though the underlying type should still be 64-bit for interop, metadata is meant to specify the correct type to expose. So if metadata says `float` it means the type is really meant to be a 32-bit `float` and not `double`. Other hardcoded type conversions (`int` and `Nil`) won't ever be metadata.
This change corrects the `float` type, to use the right type in the generated C++ code. Before we were always using `double` due to this type conversion.
(cherry picked from commit 4829199081
)
pull/1572/head
parent
d529fc5b69
commit
67145b323b
|
@ -2451,8 +2451,6 @@ def correct_type(type_name, meta=None, use_alias=True):
|
||||||
if meta is not None:
|
if meta is not None:
|
||||||
if "int" in meta:
|
if "int" in meta:
|
||||||
return f"{meta}_t"
|
return f"{meta}_t"
|
||||||
elif meta in type_conversion:
|
|
||||||
return type_conversion[type_name]
|
|
||||||
else:
|
else:
|
||||||
return meta
|
return meta
|
||||||
if type_name in type_conversion:
|
if type_name in type_conversion:
|
||||||
|
|
Loading…
Reference in New Issue