Browse Source

Fixed some bugs in SDLmain

Alex Szpakowski 12 years ago
parent
commit
f9d687cb65
1 changed files with 14 additions and 2 deletions
  1. 14 2
      platform/macosx/SDLMain.m

+ 14 - 2
platform/macosx/SDLMain.m

@@ -422,17 +422,29 @@ int main (int argc, char **argv)
 		if (arg == NULL)
 			return FALSE;
 
-		newargv = (char **)realloc(gArgv, sizeof(char *) * (gArgc + 2));
+		const char *fusedstr = "--fused";
+		size_t fusedarglen = SDL_strlen(fusedstr) + 1;
+
+		char *fusedarg = (char *) SDL_malloc(fusedarglen);
+		if (fusedarg == NULL)
+		{
+			SDL_free(arg);
+			return FALSE;
+		}
+
+		newargv = (char **) realloc(gArgv, sizeof(char *) * (gArgc + 3));
 		if (newargv == NULL)
 		{
 			SDL_free(arg);
+			SDL_free(fusedarg);
 			return FALSE;
 		}
 
 		gArgv = newargv;
 		SDL_strlcpy(arg, temparg, arglen);
+		SDL_strlcpy(fusedarg, fusedstr, fusedarglen);
 		gArgv[gArgc++] = arg;
-		gArgv[gArgc++] = "--fused"; // run in pseudo-fused mode
+		gArgv[gArgc++] = fusedarg; // run in pseudo-fused mode
 		gArgv[gArgc] = NULL;
 	}