summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Stolk <b.stolk@gmail.com>2023-05-10 13:23:55 -0700
committerRĂ©mi Verschelde <rverschelde@gmail.com>2023-05-12 12:31:23 +0200
commitce0c61b6e33807bd9868ff3fe18ffac737a1c55d (patch)
treecc2c74f2e9021a08d524dfabc29244fc93a3c2be
parentefbb28d09a2a4aaa53875edd827e08137f9f19f4 (diff)
Add missing initializations for Node3DEditor.
Do not try to format fields with garbage values in _snap_update() Initialize grid_enable[] before use. Initialize previewing_camera before use. These are all cases found live, with valgrind. Fixes #76925 (cherry picked from commit 4bc513edbcd49d1067e0cd70326f50f149660b89)
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/node_3d_editor_plugin.h8
2 files changed, 5 insertions, 7 deletions
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 897234544e..ed9c1ef47b 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -8340,8 +8340,6 @@ Node3DEditor::Node3DEditor() {
snap_scale->set_select_all_on_focus(true);
snap_dialog_vbc->add_margin_child(TTR("Scale Snap (%):"), snap_scale);
- _snap_update();
-
/* SETTINGS DIALOG */
settings_dialog = memnew(ConfirmationDialog);
@@ -8659,7 +8657,7 @@ void fragment() {
_load_default_preview_settings();
_preview_settings_changed();
}
- clear(); // Make sure values are initialized.
+ clear(); // Make sure values are initialized. Will call _snap_update() for us.
}
Node3DEditor::~Node3DEditor() {
memdelete(preview_node);
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index c4193f0420..2e898ff326 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -402,8 +402,8 @@ private:
Camera3D *previewing = nullptr;
Camera3D *preview = nullptr;
- bool previewing_camera;
- bool previewing_cinema;
+ bool previewing_camera = false;
+ bool previewing_cinema = false;
bool _is_node_locked(const Node *p_node);
void _preview_exited_scene();
void _toggle_camera_preview(bool);
@@ -580,8 +580,8 @@ private:
bool origin_enabled = false;
RID grid[3];
RID grid_instance[3];
- bool grid_visible[3]; //currently visible
- bool grid_enable[3]; //should be always visible if true
+ bool grid_visible[3] = { false, false, false }; //currently visible
+ bool grid_enable[3] = { false, false, false }; //should be always visible if true
bool grid_enabled = false;
bool grid_init_draw = false;
Camera3D::ProjectionType grid_camera_last_update_perspective = Camera3D::PROJECTION_PERSPECTIVE;