Browse Source

Fix memory leak in Text Editor and FileSystem Dock

qarmin 6 years ago
parent
commit
392f6f89cd
2 changed files with 10 additions and 8 deletions
  1. 8 8
      editor/code_editor.cpp
  2. 2 0
      editor/filesystem_dock.cpp

+ 8 - 8
editor/code_editor.cpp

@@ -675,14 +675,14 @@ void CodeTextEditor::_line_col_changed() {
 		}
 	}
 
-	StringBuilder *sb = memnew(StringBuilder);
-	sb->append("(");
-	sb->append(itos(text_editor->cursor_get_line() + 1).lpad(3));
-	sb->append(",");
-	sb->append(itos(positional_column + 1).lpad(3));
-	sb->append(")");
-
-	line_and_col_txt->set_text(sb->as_string());
+	StringBuilder sb;
+	sb.append("(");
+	sb.append(itos(text_editor->cursor_get_line() + 1).lpad(3));
+	sb.append(",");
+	sb.append(itos(positional_column + 1).lpad(3));
+	sb.append(")");
+
+	line_and_col_txt->set_text(sb.as_string());
 }
 
 void CodeTextEditor::_text_changed() {

+ 2 - 0
editor/filesystem_dock.cpp

@@ -451,9 +451,11 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa
 		} else if (dirAccess->dir_exists(p_path)) {
 			path = target_path + "/";
 		} else {
+			memdelete(dirAccess);
 			ERR_EXPLAIN(vformat(TTR("Cannot navigate to '%s' as it has not been found in the file system!"), p_path));
 			ERR_FAIL();
 		}
+		memdelete(dirAccess);
 	}
 
 	_set_current_path_text(path);