Просмотр исходного кода

Merge pull request #10598 from Rubonnek/free-memory

Free memory when Main::setup returns an error
Rémi Verschelde 8 лет назад
Родитель
Сommit
ea55b400d9
2 измененных файлов с 9 добавлено и 2 удалено
  1. 6 1
      platform/windows/godot_win.cpp
  2. 3 1
      platform/x11/godot_x11.cpp

+ 6 - 1
platform/windows/godot_win.cpp

@@ -136,8 +136,13 @@ int widechar_main(int argc, wchar_t **argv) {
 
 	Error err = Main::setup(argv_utf8[0], argc - 1, &argv_utf8[1]);
 
-	if (err != OK)
+	if (err != OK) {
+		for (int i = 0; i < argc; ++i) {
+			delete[] argv_utf8[i];
+		}
+		delete[] argv_utf8;
 		return 255;
+	}
 
 	if (Main::start())
 		os.run();

+ 3 - 1
platform/x11/godot_x11.cpp

@@ -45,8 +45,10 @@ int main(int argc, char *argv[]) {
 	getcwd(cwd, PATH_MAX);
 
 	Error err = Main::setup(argv[0], argc - 1, &argv[1]);
-	if (err != OK)
+	if (err != OK) {
+		free(cwd);
 		return 255;
+	}
 
 	if (Main::start())
 		os.run(); // it is actually the OS that decides how to run