Skip to content

Commit 4bb6ffa

Browse files
committed
fix merge up
1 parent 4d74c44 commit 4bb6ffa

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ members = ["bevy_quadtree"]
33
resolver = "2"
44

55
[workspace.package]
6-
version = "0.15.1-alpha7"
6+
version = "0.15.1-alpha8"
77
authors = ["Louis <[email protected]>"]
88
description = "A quadtree plugin for bevy"
99
license = "MIT"

bevy_quadtree/src/tree/tree_impl.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,13 +201,16 @@ impl<const N: usize, const D: usize, const W: usize, const H: usize, const K: us
201201
}
202202

203203
fn merge_up(&self, id: NodeID) {
204+
if !self[id].is_leaf() {
205+
return;
206+
}
204207
let mut x = vec![id];
205208
while let Some(id) = x.pop() {
206-
let mut children = (id << 2) + 1..=(id << 2) + 4;
207-
if children.all(|id| self.total(id) == 0) {
208-
self[id].leaf.store(true, Ordering::Release);
209-
if id > 0 {
210-
let p = (id - 1) >> 2;
209+
if id > 0 {
210+
let p = (id - 1) >> 2;
211+
let mut children = (p << 2) + 1..=(p << 2) + 4;
212+
if children.all(|id| self[id].is_leaf() && self[id].len() == 0) {
213+
self[p].leaf.store(true, Ordering::Release);
211214
x.push(p);
212215
}
213216
}

0 commit comments

Comments
 (0)