Skip to content

Commit 8007d91

Browse files
AlexanderFabischogrisel
authored andcommitted
Fix memory leak in Barnes-Hut SNE
1 parent 58ba2b8 commit 8007d91

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sklearn/manifold/_barnes_hut_tsne.pyx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,10 +365,17 @@ cdef int free_tree(Tree* tree) nogil:
365365
for i in range(3):
366366
cnt[i] = 0
367367
free_recursive(tree, tree.root_node, cnt)
368+
if not tree.root_node.is_leaf:
369+
free(tree.root_node.children)
370+
free(tree.root_node.width)
371+
free(tree.root_node.left_edge)
372+
free(tree.root_node.center)
373+
free(tree.root_node.barycenter)
374+
free(tree.root_node.leaf_point_position)
368375
free(tree.root_node)
369-
free(tree)
370376
check = cnt[0] == tree.n_cells
371377
check &= cnt[2] == tree.n_points
378+
free(tree)
372379
free(cnt)
373380
return check
374381

0 commit comments

Comments
 (0)