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 4bc513edbc)
This commit is contained in:
Bram Stolk 2023-05-10 13:23:55 -07:00 committed by Rémi Verschelde
parent efbb28d09a
commit ce0c61b6e3
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 5 additions and 7 deletions

View File

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

View File

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