summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilson E. Alvarez <wilson.e.alvarez1@gmail.com>2017-08-23 20:54:02 -0400
committerWilson E. Alvarez <wilson.e.alvarez1@gmail.com>2017-08-25 21:12:19 -0400
commitbd257153dc9748bd9ab3f580437c3a28cc5348ab (patch)
tree8fb8c8f601bbae139876c2a6c3cd891b30de6d3a
parentd9e94fa0c308f8f157e71fb03bab5834308b56ee (diff)
Free memory when Main::setup returns an error
-rw-r--r--platform/windows/godot_win.cpp7
-rw-r--r--platform/x11/godot_x11.cpp4
2 files changed, 9 insertions, 2 deletions
diff --git a/platform/windows/godot_win.cpp b/platform/windows/godot_win.cpp
index df2d96e516..6f1fb04706 100644
--- a/platform/windows/godot_win.cpp
+++ b/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();
diff --git a/platform/x11/godot_x11.cpp b/platform/x11/godot_x11.cpp
index 6f418b213f..f02f3cb881 100644
--- a/platform/x11/godot_x11.cpp
+++ b/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