[Bf-blender-cvs] [e7d18eb] master: Add check for KD tree size to BLI_kdtree_insert()
Sergey Sharybin
noreply at git.blender.org
Tue Jan 14 12:18:43 CET 2014
Commit: e7d18eb7bd706624183dd6d65f3e55faa5fb1956
Author: Sergey Sharybin
Date: Tue Jan 14 17:11:55 2014 +0600
https://developer.blender.org/rBe7d18eb7bd706624183dd6d65f3e55faa5fb1956
Add check for KD tree size to BLI_kdtree_insert()
Makes sure we're not trying to insert more nodes than we've
been expecting to.
===================================================================
M source/blender/blenlib/intern/BLI_kdtree.c
===================================================================
diff --git a/source/blender/blenlib/intern/BLI_kdtree.c b/source/blender/blenlib/intern/BLI_kdtree.c
index c0e7c21..844d850 100644
--- a/source/blender/blenlib/intern/BLI_kdtree.c
+++ b/source/blender/blenlib/intern/BLI_kdtree.c
@@ -46,6 +46,7 @@ struct KDTree {
KDTreeNode *root;
#ifdef DEBUG
bool is_balanced; /* ensure we call balance first */
+ unsigned int maxsize; /* max size of the tree */
#endif
};
@@ -67,6 +68,7 @@ KDTree *BLI_kdtree_new(unsigned int maxsize)
#ifdef DEBUG
tree->is_balanced = false;
+ tree->maxsize = maxsize;
#endif
return tree;
@@ -87,6 +89,10 @@ void BLI_kdtree_insert(KDTree *tree, int index, const float co[3], const float n
{
KDTreeNode *node = &tree->nodes[tree->totnode++];
+#ifdef DEBUG
+ BLI_assert(tree->totnode < tree->maxsize);
+#endif
+
/* note, array isn't calloc'd,
* need to initialize all struct members */
More information about the Bf-blender-cvs
mailing list