From 865796375bcfa6be4288cca4243dddcb4092f70b Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 9 Nov 2015 19:47:10 +0100 Subject: Cleanup: avoid incrementing/decrementing id->us outside of BKE_library. We have callbacks for that, they also do some checks and help ensure things are done correctly. Only place where this is assumed not true is blenloader (since here we may affect refcount of library IDs as well...). --- source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/gameengine/Converter/KX_BlenderSceneConverter.cpp') diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 95d8fe1f294..6cbb8e08cf5 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -1426,7 +1426,7 @@ RAS_MeshObject *KX_BlenderSceneConverter::ConvertMeshSpecial(KX_Scene *kx_scene, printf("Mesh has a user \"%s\"\n", name); #endif me = (ID*)BKE_mesh_copy_ex(from_maggie, (Mesh*)me); - me->us--; + id_us_min(me); } BLI_remlink(&from_maggie->mesh, me); /* even if we made the copy it needs to be removed */ BLI_addtail(&maggie->mesh, me); @@ -1450,7 +1450,7 @@ RAS_MeshObject *KX_BlenderSceneConverter::ConvertMeshSpecial(KX_Scene *kx_scene, Material *mat_new = BKE_material_copy(mat_old); mat_new->id.flag |= LIB_DOIT; - mat_old->id.us--; + id_us_min(&mat_old->id); BLI_remlink(&G.main->mat, mat_new); // BKE_material_copy uses G.main, and there is no BKE_material_copy_ex BLI_addtail(&maggie->mat, mat_new); @@ -1461,8 +1461,8 @@ RAS_MeshObject *KX_BlenderSceneConverter::ConvertMeshSpecial(KX_Scene *kx_scene, for (int j = i + 1; j < mesh->totcol; j++) { if (mesh->mat[j] == mat_old) { mesh->mat[j] = mat_new; - mat_new->id.us++; - mat_old->id.us--; + id_us_plus(&mat_new->id); + id_us_min(&mat_old->id); } } } -- cgit v1.2.3