Commit: 26a00078e0958c99793f4f8e5fdfc4e57d65f151
Author: Joshua Leung
Date:   Tue Jan 27 00:28:13 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB26a00078e0958c99793f4f8e5fdfc4e57d65f151

Depsgraph: Use BLI_gset_add() instead of BLI_gset_insert() to avoid duplicate 
entries in set

So it turns out that using BLI_gset_insert() will just cause the ghash-set
implementation to blindly add duplicate entries if the key already exists
in the hashtable - not exactly what we want, as that kindof violates the
whole point of such data structures.

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

M       source/blender/depsgraph/intern/depsgraph_build_relations.cpp

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

diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp 
b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
index 2e4f0a9..8b4e97a 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -200,9 +200,9 @@ void DepsgraphRelationBuilder::RootPChanMap::print_debug()
 void DepsgraphRelationBuilder::RootPChanMap::add_bone(const char *bone, const 
char *root)
 {
        if (BLI_ghash_haskey(m_map, bone)) {
-               /* add new entry */
+               /* add new entry, but only add the root if it doesn't already 
exist in there */
                GSet *values = (GSet *)BLI_ghash_lookup(m_map, bone);
-               BLI_gset_insert(values, (void *)root);
+               BLI_gset_add(values, (void *)root);
        }
        else {
                /* create new set and mapping */

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

Reply via email to