f12993ecf0058fe8dba7db533a20aec277504806
- Author
- outfoxxed <outfoxxed@outfoxxed.me>
- Committer
- outfoxxed <outfoxxed@outfoxxed.me>
- Date
Message
Fix parent pointer corruption in intoGroup
This appears to be what caused group movement related segfaults.
Diff
1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
2index c2ce51f43a51584956a3be67614789c1e39f9eff..1237db355527eec83803901cdb2bdb06ee05916a 100644
3--- a/src/Hy3Layout.cpp
4+++ b/src/Hy3Layout.cpp
5@@ -355,12 +355,13 @@ Hy3Node* Hy3Node::removeFromParentRecursive() {
6 Hy3Node* Hy3Node::intoGroup(Hy3GroupLayout layout) {
7 this->layout->nodes.push_back({
8 .parent = this,
9- .data = this->data,
10+ .data = layout,
11 .workspace_id = this->workspace_id,
12 .layout = this->layout,
13 });
14
15 auto* node = &this->layout->nodes.back();
16+ swapData(*this, *node);
17
18 this->data = layout;
19 this->data.as_group.children.push_back(node);