diff options
author | Bram Stolk <b.stolk@gmail.com> | 2023-05-10 13:23:55 -0700 |
---|---|---|
committer | RĂ©mi Verschelde <rverschelde@gmail.com> | 2023-05-12 12:31:23 +0200 |
commit | ce0c61b6e33807bd9868ff3fe18ffac737a1c55d (patch) | |
tree | cc2c74f2e9021a08d524dfabc29244fc93a3c2be | |
parent | efbb28d09a2a4aaa53875edd827e08137f9f19f4 (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.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/node_3d_editor_plugin.h | 8 |
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; |