fix minor memory leak from cards being removed instead of freed

This commit is contained in:
betalars 2026-06-03 14:40:20 +02:00
parent ba9d59721d
commit 259e466f26
2 changed files with 44 additions and 57 deletions

View File

@ -67,7 +67,7 @@ func fill_card_slots(id: int):
var new_cards : Array[Card] = CardLibrary.get_cards_by_scene_id(id) var new_cards : Array[Card] = CardLibrary.get_cards_by_scene_id(id)
for i in range(new_cards.size()): for i in range(new_cards.size()):
$cards.get_child(i).remove_child($cards.get_child(i).get_child(1)) $cards.get_child(i).get_child(1).free()
var new_card:Card = new_cards[i] var new_card:Card = new_cards[i]
$cards.get_child(i).add_child(new_card) $cards.get_child(i).add_child(new_card)
#new_card.owner = self #new_card.owner = self
@ -76,6 +76,7 @@ func fill_card_slots(id: int):
options.append(new_card) options.append(new_card)
anim_players.append($cards.get_child(i).get_child(0)) anim_players.append($cards.get_child(i).get_child(0))
func fill_post_slots(): func fill_post_slots():
var sticky_notes: Array[StickyNote] = [] var sticky_notes: Array[StickyNote] = []
for card: Card in output: for card: Card in output:
@ -87,7 +88,7 @@ func fill_post_slots():
sticky_notes.shuffle() sticky_notes.shuffle()
options = [] options = []
for ancor in $sticky_notes.get_children(): for ancor in $sticky_notes.get_children():
ancor.remove_child(ancor.get_child(1)) ancor.get_child(1).queue_free()
for i in range(sticky_notes.size()): for i in range(sticky_notes.size()):
options.append(sticky_notes[i]) options.append(sticky_notes[i])

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=73 format=3 uid="uid://brk4hjdf2x81a"] [gd_scene format=3 uid="uid://brk4hjdf2x81a"]
[ext_resource type="Script" uid="uid://bdb6n10apk1en" path="res://logic-scenes/card_picker/card_picker.gd" id="1_pjntm"] [ext_resource type="Script" uid="uid://bdb6n10apk1en" path="res://logic-scenes/card_picker/card_picker.gd" id="1_pjntm"]
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_t7byf"] [ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_t7byf"]
@ -1735,7 +1735,7 @@ _data = {
&"unshuffle": SubResource("Animation_hh1hx") &"unshuffle": SubResource("Animation_hh1hx")
} }
[node name="picker" type="CenterContainer"] [node name="picker" type="CenterContainer" unique_id=862619462]
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -1743,10 +1743,10 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_pjntm") script = ExtResource("1_pjntm")
[node name="Control" type="Control" parent="."] [node name="Control" type="Control" parent="." unique_id=2037101189]
layout_mode = 2 layout_mode = 2
[node name="label" type="Label" parent="Control"] [node name="label" type="Label" parent="Control" unique_id=85052670]
layout_mode = 0 layout_mode = 0
offset_left = -359.0 offset_left = -359.0
offset_top = -256.0 offset_top = -256.0
@ -1755,11 +1755,11 @@ offset_bottom = -218.0
text = "Pick a Card to take with you, a second one will be randomly assigned." text = "Pick a Card to take with you, a second one will be randomly assigned."
horizontal_alignment = 1 horizontal_alignment = 1
[node name="cards" type="Panel" parent="."] [node name="cards" type="Panel" parent="." unique_id=1391420795]
layout_mode = 2 layout_mode = 2
mouse_filter = 2 mouse_filter = 2
[node name="card_1" type="Control" parent="cards"] [node name="card_1" type="Control" parent="cards" unique_id=1760536334]
anchors_preset = 0 anchors_preset = 0
offset_left = -317.0 offset_left = -317.0
offset_top = 25.0 offset_top = 25.0
@ -1768,25 +1768,21 @@ offset_bottom = 25.0
rotation = -0.109599 rotation = -0.109599
mouse_filter = 1 mouse_filter = 1
[node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_1"] [node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_1" unique_id=11133187]
libraries = { libraries/ = SubResource("AnimationLibrary_gdxmh")
&"": SubResource("AnimationLibrary_gdxmh")
}
[node name="Card" parent="cards/card_1" instance=ExtResource("2_t7byf")] [node name="Card" parent="cards/card_1" unique_id=634126263 instance=ExtResource("2_t7byf")]
[node name="card_2" type="Control" parent="cards"] [node name="card_2" type="Control" parent="cards" unique_id=2133380151]
anchors_preset = 0 anchors_preset = 0
mouse_filter = 2 mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_2"] [node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_2" unique_id=884409750]
libraries = { libraries/ = SubResource("AnimationLibrary_oxheu")
&"": SubResource("AnimationLibrary_oxheu")
}
[node name="Card" parent="cards/card_2" instance=ExtResource("2_t7byf")] [node name="Card" parent="cards/card_2" unique_id=544537009 instance=ExtResource("2_t7byf")]
[node name="card_3" type="Control" parent="cards"] [node name="card_3" type="Control" parent="cards" unique_id=1904350726]
anchors_preset = 0 anchors_preset = 0
offset_left = 315.0 offset_left = 315.0
offset_top = 22.0 offset_top = 22.0
@ -1794,82 +1790,72 @@ offset_right = 315.0
offset_bottom = 22.0 offset_bottom = 22.0
rotation = 0.10472 rotation = 0.10472
[node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_3"] [node name="AnimationPlayer" type="AnimationPlayer" parent="cards/card_3" unique_id=524877968]
libraries = { libraries/ = SubResource("AnimationLibrary_8blxm")
&"": SubResource("AnimationLibrary_8blxm")
}
[node name="Card" parent="cards/card_3" instance=ExtResource("2_t7byf")] [node name="Card" parent="cards/card_3" unique_id=2060626063 instance=ExtResource("2_t7byf")]
[node name="sticky_notes" type="Panel" parent="."] [node name="sticky_notes" type="Panel" parent="." unique_id=1381586432]
layout_mode = 2 layout_mode = 2
mouse_filter = 2 mouse_filter = 2
[node name="sticky_note_1" type="Control" parent="sticky_notes"] [node name="sticky_note_1" type="Control" parent="sticky_notes" unique_id=588979489]
anchors_preset = 0 anchors_preset = 0
offset_top = -150.0 offset_top = -150.0
offset_bottom = -150.0 offset_bottom = -150.0
mouse_filter = 2 mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_1"] [node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_1" unique_id=309801820]
root_node = NodePath(".") root_node = NodePath(".")
libraries = { libraries/ = SubResource("AnimationLibrary_ga4dm")
&"": SubResource("AnimationLibrary_ga4dm") autoplay = &"ini"
}
autoplay = "ini"
[node name="sticky-note" parent="sticky_notes/sticky_note_1" instance=ExtResource("3_et74x")] [node name="sticky-note" parent="sticky_notes/sticky_note_1" unique_id=1215632612 instance=ExtResource("3_et74x")]
[node name="sticky_note_2" type="Control" parent="sticky_notes"] [node name="sticky_note_2" type="Control" parent="sticky_notes" unique_id=539498438]
anchors_preset = 0 anchors_preset = 0
offset_top = -50.0 offset_top = -50.0
offset_bottom = -50.0 offset_bottom = -50.0
mouse_filter = 2 mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_2"] [node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_2" unique_id=394265426]
root_node = NodePath(".") root_node = NodePath(".")
libraries = { libraries/ = SubResource("AnimationLibrary_sxnmi")
&"": SubResource("AnimationLibrary_sxnmi") autoplay = &"ini"
}
autoplay = "ini"
[node name="sticky-note" parent="sticky_notes/sticky_note_2" instance=ExtResource("3_et74x")] [node name="sticky-note" parent="sticky_notes/sticky_note_2" unique_id=1393845997 instance=ExtResource("3_et74x")]
[node name="sticky_note_3" type="Control" parent="sticky_notes"] [node name="sticky_note_3" type="Control" parent="sticky_notes" unique_id=1794056835]
anchors_preset = 0 anchors_preset = 0
offset_top = 50.0 offset_top = 50.0
offset_bottom = 50.0 offset_bottom = 50.0
mouse_filter = 2 mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_3"] [node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_3" unique_id=273237816]
root_node = NodePath(".") root_node = NodePath(".")
libraries = { libraries/ = SubResource("AnimationLibrary_xs06v")
&"": SubResource("AnimationLibrary_xs06v") autoplay = &"ini"
}
autoplay = "ini"
[node name="sticky-note" parent="sticky_notes/sticky_note_3" instance=ExtResource("3_et74x")] [node name="sticky-note" parent="sticky_notes/sticky_note_3" unique_id=1878643316 instance=ExtResource("3_et74x")]
[node name="sticky_note_4" type="Control" parent="sticky_notes"] [node name="sticky_note_4" type="Control" parent="sticky_notes" unique_id=400909666]
anchors_preset = 0 anchors_preset = 0
offset_top = 150.0 offset_top = 150.0
offset_bottom = 150.0 offset_bottom = 150.0
mouse_filter = 2 mouse_filter = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_4"] [node name="AnimationPlayer" type="AnimationPlayer" parent="sticky_notes/sticky_note_4" unique_id=864955044]
root_node = NodePath(".") root_node = NodePath(".")
libraries = { libraries/ = SubResource("AnimationLibrary_tdl1s")
&"": SubResource("AnimationLibrary_tdl1s") autoplay = &"ini"
}
autoplay = "ini"
[node name="sticky-note" parent="sticky_notes/sticky_note_4" instance=ExtResource("3_et74x")] [node name="sticky-note" parent="sticky_notes/sticky_note_4" unique_id=608976287 instance=ExtResource("3_et74x")]
[node name="thought_prompt" type="Control" parent="."] [node name="thought_prompt" type="Control" parent="." unique_id=309795113]
layout_mode = 2 layout_mode = 2
mouse_filter = 2 mouse_filter = 2
[node name="Label" type="Label" parent="thought_prompt"] [node name="Label" type="Label" parent="thought_prompt" unique_id=2122400212]
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5
@ -1886,7 +1872,7 @@ theme_type_variation = &"HeaderMedium"
text = "Why does that story mean so much to me?" text = "Why does that story mean so much to me?"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="Meaning" type="AudioStreamPlayer" parent="."] [node name="Meaning" type="AudioStreamPlayer" parent="." unique_id=289900091]
stream = ExtResource("4_ujc5a") stream = ExtResource("4_ujc5a")
mix_target = 2 mix_target = 2
bus = &"text" bus = &"text"