Browse Source

Free memory when Main::setup returns an error

(cherry picked from commit bd257153dc9748bd9ab3f580437c3a28cc5348ab)
Wilson E. Alvarez 8 years ago
parent
commit
48b85347c6
2 changed files with 9 additions and 2 deletions
  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

@@ -42,8 +42,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