From 2d25656e051b74707b22e8af2202aafc0bb6e132 Mon Sep 17 00:00:00 2001
From: Porteries Tristan <republicthunderbolt9@gmail.com>
Date: Thu, 2 Jul 2015 12:20:13 +0200
Subject: [PATCH] BGE: Fix T45267 Lib load without material caching.

---
 .../Converter/KX_BlenderSceneConverter.cpp       | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 9e53d9e1569..e3eb6a28337 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -1359,14 +1359,18 @@ bool KX_BlenderSceneConverter::MergeScene(KX_Scene *to, KX_Scene *from)
 	}
 
 	MaterialCache::iterator matcacheit = m_mat_cache.find(from);
-	// Merge cached BL_Material map.
-	m_mat_cache[to].insert(matcacheit->second.begin(), matcacheit->second.end());
-	m_mat_cache.erase(matcacheit);
+	if (matcacheit != m_mat_cache.end()) {
+		// Merge cached BL_Material map.
+		m_mat_cache[to].insert(matcacheit->second.begin(), matcacheit->second.end());
+		m_mat_cache.erase(matcacheit);
+	}
 
 	PolyMaterialCache::iterator polymatcacheit = m_polymat_cache.find(from);
-	// Merge cached RAS_IPolyMaterial map.
-	m_polymat_cache[to].insert(polymatcacheit->second.begin(), polymatcacheit->second.end());
-	m_polymat_cache.erase(polymatcacheit);
+	if (polymatcacheit != m_polymat_cache.end()) {
+		// Merge cached RAS_IPolyMaterial map.
+		m_polymat_cache[to].insert(polymatcacheit->second.begin(), polymatcacheit->second.end());
+		m_polymat_cache.erase(polymatcacheit);
+	}
 
 	return true;
 }
-- 
GitLab