Fixes leak in Animation Track editor
This commit is contained in:
parent
8a7a216be5
commit
0ca102d568
|
@ -4839,21 +4839,24 @@ struct _AnimMoveRestore {
|
|||
void AnimationTrackEditor::_clear_key_edit() {
|
||||
if (key_edit) {
|
||||
//if key edit is the object being inspected, remove it first
|
||||
if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit ||
|
||||
EditorNode::get_singleton()->get_inspector()->get_edited_object() == multi_key_edit) {
|
||||
if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit) {
|
||||
EditorNode::get_singleton()->push_item(NULL);
|
||||
}
|
||||
|
||||
//then actually delete it
|
||||
if (key_edit) {
|
||||
memdelete(key_edit);
|
||||
key_edit = NULL;
|
||||
} else if (multi_key_edit) {
|
||||
}
|
||||
|
||||
if (multi_key_edit) {
|
||||
if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == multi_key_edit) {
|
||||
EditorNode::get_singleton()->push_item(NULL);
|
||||
}
|
||||
|
||||
memdelete(multi_key_edit);
|
||||
multi_key_edit = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AnimationTrackEditor::_clear_selection(bool p_update) {
|
||||
|
||||
|
@ -4907,7 +4910,7 @@ void AnimationTrackEditor::_update_key_edit() {
|
|||
|
||||
if (!key_ofs_map.has(track)) {
|
||||
key_ofs_map[track] = List<float>();
|
||||
base_map[track] = *memnew(NodePath);
|
||||
base_map[track] = NodePath();
|
||||
}
|
||||
|
||||
key_ofs_map[track].push_back(animation->track_get_key_time(track, E->key().key));
|
||||
|
@ -5974,6 +5977,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
|
|||
keying = false;
|
||||
moving_selection = 0;
|
||||
key_edit = NULL;
|
||||
multi_key_edit = NULL;
|
||||
|
||||
box_selection = memnew(Control);
|
||||
add_child(box_selection);
|
||||
|
@ -6085,4 +6089,7 @@ AnimationTrackEditor::~AnimationTrackEditor() {
|
|||
if (key_edit) {
|
||||
memdelete(key_edit);
|
||||
}
|
||||
if (multi_key_edit) {
|
||||
memdelete(multi_key_edit);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue