Browse Source

Fix crash when ScriptObject constructor throws.

Eugene Kozlov 8 years ago
parent
commit
f42bd0d24f
1 changed files with 5 additions and 1 deletions
  1. 5 1
      Source/Urho3D/AngelScript/ScriptFile.cpp

+ 5 - 1
Source/Urho3D/AngelScript/ScriptFile.cpp

@@ -463,7 +463,11 @@ asIScriptObject* ScriptFile::CreateObject(const String& className, bool useInter
     if (!factory || context->Prepare(factory) < 0 || context->Execute() < 0)
     if (!factory || context->Prepare(factory) < 0 || context->Execute() < 0)
         return 0;
         return 0;
 
 
-    asIScriptObject* obj = *(static_cast<asIScriptObject**>(context->GetAddressOfReturnValue()));
+    void* objAddress = context->GetAddressOfReturnValue();
+    if (!objAddress)
+        return 0;
+
+    asIScriptObject* obj = *(static_cast<asIScriptObject**>(objAddress));
     if (obj)
     if (obj)
         obj->AddRef();
         obj->AddRef();