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);