[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