Преглед изворни кода

Bugfix: Fixed a crash when switching to a custom material (or initializing a material with a null shader)

BearishSun пре 8 година
родитељ
комит
8251636f5f
1 измењених фајлова са 5 додато и 4 уклоњено
  1. 5 4
      Source/BansheeCore/Material/BsMaterial.cpp

+ 5 - 4
Source/BansheeCore/Material/BsMaterial.cpp

@@ -469,8 +469,8 @@ namespace bs
 
 		for(UINT32 i = 0; i < numTechniques; i++)
 		{
-			SPtr<ct::Technique>* technique = new (dataPtr)SPtr<ct::Technique>();
-				*technique = mTechniques[i]->getCore();
+			SPtr<ct::Technique>* technique = new (dataPtr) SPtr<ct::Technique>();
+			*technique = mTechniques[i]->getCore();
 
 			dataPtr += sizeof(SPtr<ct::Technique>);
 		}
@@ -802,10 +802,11 @@ namespace bs
 
 		UINT32 paramsSize = 0;
 		dataPtr = rttiReadElem(paramsSize, dataPtr);
-		if (mParams == nullptr)
+		if (mParams == nullptr && mShader != nullptr)
 			mParams = bs_shared_ptr_new<MaterialParams>(mShader);
 
-		mParams->setSyncData((UINT8*)dataPtr, paramsSize);
+		if(mParams != nullptr)
+			mParams->setSyncData((UINT8*)dataPtr, paramsSize);
 
 		dataPtr += paramsSize;
 	}