Blender Git Commit Log
Git Commits -> Revision 52eb61f
Revision 52eb61f by Sv. Lockal (master) August 23, 2013, 20:35 (GMT) |
Fix state losses for recursive outliner trees (e.g. datablocks editor) In previous optimization in outliner I assumed that order in treehash was not important. But testing outliner in datablocks mode revealed a problem: when user expands multiple recursive levels and then closes any element, it always closed the top level of recursion. Now it should work fine with recursive trees. Now treehash contains groups of elements indexed by (id,nr,type). Adding an element with the same (id,nr,type) results in appending it to existing group. No duplicates are possible in treehash. This commit should also make lookups a little bit faster, because searching in small arrays by "used" is faster than searching in hashtable with duplicates by "id,nr,type,used". |
Commit Details:
Full Hash: 52eb61f84b564308762fdaafbd05b5193cf513c0
SVN Revision: 59440
Parent Commit: 5877961
Lines Changed: +208, -81
2 Added Paths:
/source/blender/blenkernel/BKE_treehash.h (+52, -0) (View)
/source/blender/blenkernel/intern/treehash.c (+133, -0) (View)
/source/blender/blenkernel/intern/treehash.c (+133, -0) (View)
7 Modified Paths:
/source/blender/blenkernel/CMakeLists.txt (+2, -0) (Diff)
/source/blender/blenlib/BLI_ghash.h (+2, -0) (Diff)
/source/blender/blenloader/intern/readfile.c (+6, -13) (Diff)
/source/blender/editors/space_outliner/outliner_tools.c (+1, -4) (Diff)
/source/blender/editors/space_outliner/outliner_tree.c (+8, -58) (Diff)
/source/blender/editors/space_outliner/space_outliner.c (+2, -1) (Diff)
/source/blender/makesdna/DNA_space_types.h (+2, -5) (Diff)
/source/blender/blenlib/BLI_ghash.h (+2, -0) (Diff)
/source/blender/blenloader/intern/readfile.c (+6, -13) (Diff)
/source/blender/editors/space_outliner/outliner_tools.c (+1, -4) (Diff)
/source/blender/editors/space_outliner/outliner_tree.c (+8, -58) (Diff)
/source/blender/editors/space_outliner/space_outliner.c (+2, -1) (Diff)
/source/blender/makesdna/DNA_space_types.h (+2, -5) (Diff)