Fix regression in C++ objects created from C# code to link managed instance properly
This commit is contained in:
@@ -796,12 +796,8 @@ ScriptingObject* ManagedBinaryModule::ManagedObjectSpawn(const ScriptingObjectSp
|
||||
// Mark as managed type
|
||||
object->Flags |= ObjectFlags::IsManagedType;
|
||||
|
||||
// Initialize managed instance
|
||||
if (params.Managed)
|
||||
{
|
||||
object->SetManagedInstance((MObject*)params.Managed);
|
||||
}
|
||||
else
|
||||
// Initialize managed instance (ScriptingObject ctor copies managed object handle)
|
||||
if (!params.Managed)
|
||||
{
|
||||
// Invoke managed ctor (to match C++ logic)
|
||||
object->CreateManaged();
|
||||
|
||||
@@ -89,7 +89,11 @@ void SerializableScriptingObject::Deserialize(DeserializeStream& stream, ISerial
|
||||
}
|
||||
|
||||
ScriptingObject::ScriptingObject(const SpawnParams& params)
|
||||
: _gcHandle(0)
|
||||
#if USE_NETCORE
|
||||
: _gcHandle((MGCHandle)params.Managed)
|
||||
#elif !COMPILE_WITHOUT_CSHARP
|
||||
: _gcHandle(params.Managed ? MCore::GCHandle::New(params.Managed) : 0)
|
||||
#endif
|
||||
, _type(params.Type)
|
||||
, _id(params.ID)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user