Add improvements for native interfaces usage

This commit is contained in:
Wojtek Figat
2021-09-29 16:33:25 +02:00
parent b9ef09df96
commit ba8f7c5ab4
3 changed files with 7 additions and 9 deletions

View File

@@ -212,8 +212,8 @@ Asset::LoadResult JsonAsset::loadAsset()
case ScriptingTypes::Class:
{
// Ensure that object can deserialized
const ScriptingType::InterfaceImplementation* interfaces = type.GetInterface(&ISerializable::TypeInitializer);
if (!interfaces)
const ScriptingType::InterfaceImplementation* interface = type.GetInterface(ISerializable::TypeInitializer);
if (!interface)
{
LOG(Warning, "Cannot deserialize {0} from Json Asset because it doesn't implement ISerializable interface.", type.ToString());
break;
@@ -231,7 +231,7 @@ Asset::LoadResult JsonAsset::loadAsset()
// Deserialize object
auto modifier = Cache::ISerializeModifier.Get();
modifier->EngineBuild = DataEngineBuild;
((ISerializable*)((byte*)instance + interfaces->VTableOffset))->Deserialize(*Data, modifier.Value);
((ISerializable*)((byte*)instance + interface->VTableOffset))->Deserialize(*Data, modifier.Value);
// TODO: delete object when containing BinaryModule gets unloaded
break;
}