Browse Source

Better fix for initializing Android environment variables

Sam Lantinga 7 months ago
parent
commit
ea2e2e451d
2 changed files with 3 additions and 7 deletions
  1. 2 1
      src/core/android/SDL_android.c
  2. 1 6
      src/stdlib/SDL_getenv.c

+ 2 - 1
src/core/android/SDL_android.c

@@ -1525,7 +1525,8 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSetenv)(
     const char *utfvalue = (*env)->GetStringUTFChars(env, value, NULL);
 
     // This is only called at startup, to initialize the environment
-    SDL_setenv_unsafe(utfname, utfvalue, 1);
+    // Note that we call setenv() directly to avoid affecting SDL environments
+    setenv(utfname, utfvalue, 1);
 
     (*env)->ReleaseStringUTFChars(env, name, utfname);
     (*env)->ReleaseStringUTFChars(env, value, utfvalue);

+ 1 - 6
src/stdlib/SDL_getenv.c

@@ -122,12 +122,7 @@ SDL_Environment *SDL_CreateEnvironment(bool populated)
 #else
 #ifdef SDL_PLATFORM_ANDROID
         // Make sure variables from the application manifest are available
-        static bool initializing;
-        if (!initializing) {
-            initializing = true;
-            Android_JNI_GetManifestEnvironmentVariables();
-            initializing = false;
-        }
+        Android_JNI_GetManifestEnvironmentVariables();
 #endif
         char **strings = environ;
         if (strings) {