Commit: 870840e8b7dd8860691de0910ade3f0d0f217f14
Author: Sergey Sharybin
Date:   Fri Dec 22 12:50:06 2017 +0100
Branches: master
https://developer.blender.org/rB870840e8b7dd8860691de0910ade3f0d0f217f14

Subsurf: Avoid possible use of partially initialized edge hash

===================================================================

M       source/blender/blenkernel/intern/subsurf_ccg.c

===================================================================

diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c 
b/source/blender/blenkernel/intern/subsurf_ccg.c
index 1386c23e234..ecb0f76fd62 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1492,13 +1492,16 @@ static void ccgDM_copyFinalLoopArray(DerivedMesh *dm, 
MLoop *mloop)
                BLI_rw_mutex_lock(&ccgdm->loops_cache_rwlock, 
THREAD_LOCK_WRITE);
                if (!ccgdm->ehash) {
                        MEdge *medge;
+                       EdgeHash *ehash;
 
-                       ccgdm->ehash = BLI_edgehash_new_ex(__func__, 
ccgdm->dm.numEdgeData);
+                       ehash = BLI_edgehash_new_ex(__func__, 
ccgdm->dm.numEdgeData);
                        medge = ccgdm->dm.getEdgeArray((DerivedMesh *)ccgdm);
 
                        for (i = 0; i < ccgdm->dm.numEdgeData; i++) {
-                               BLI_edgehash_insert(ccgdm->ehash, medge[i].v1, 
medge[i].v2, SET_INT_IN_POINTER(i));
+                               BLI_edgehash_insert(ehash, medge[i].v1, 
medge[i].v2, SET_INT_IN_POINTER(i));
                        }
+
+                       atomic_cas_ptr((void**)&ccgdm->ehash, ccgdm->ehash, 
ehash);
                }
                BLI_rw_mutex_unlock(&ccgdm->loops_cache_rwlock);
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to