Bladeren bron

Use the correct return type for SDL_GetAndroidJNIEnv()

This prevents application code from having to cast to JNIEnv everywhere.
Sam Lantinga 6 maanden geleden
bovenliggende
commit
2d3fa03d53
4 gewijzigde bestanden met toevoegingen van 12 en 5 verwijderingen
  1. 8 1
      include/SDL3/SDL_system.h
  2. 2 2
      src/core/SDL_core_unsupported.c
  3. 1 1
      src/core/android/SDL_android.c
  4. 1 1
      src/dynapi/SDL_dynapi_procs.h

+ 8 - 1
include/SDL3/SDL_system.h

@@ -261,6 +261,13 @@ extern SDL_DECLSPEC void SDLCALL SDL_SetiOSEventPump(bool enabled);
 /*
  * Platform specific functions for Android
  */
+
+#if defined(__cplusplus)
+typedef struct _JNIEnv JNIEnv;
+#else
+typedef const struct JNINativeInterface* JNIEnv;
+#endif
+
 #ifdef SDL_PLATFORM_ANDROID
 
 /**
@@ -283,7 +290,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_SetiOSEventPump(bool enabled);
  *
  * \sa SDL_GetAndroidActivity
  */
-extern SDL_DECLSPEC void * SDLCALL SDL_GetAndroidJNIEnv(void);
+extern SDL_DECLSPEC JNIEnv * SDLCALL SDL_GetAndroidJNIEnv(void);
 
 /**
  * Retrieve the Java instance of the Android activity class.

+ 2 - 2
src/core/SDL_core_unsupported.c

@@ -146,8 +146,8 @@ const char *SDL_GetAndroidInternalStoragePath(void)
     return NULL;
 }
 
-SDL_DECLSPEC void *SDLCALL SDL_GetAndroidJNIEnv(void);
-void *SDL_GetAndroidJNIEnv(void)
+SDL_DECLSPEC JNIEnv *SDLCALL SDL_GetAndroidJNIEnv(void);
+JNIEnv *SDL_GetAndroidJNIEnv(void)
 {
     SDL_Unsupported();
     return NULL;

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

@@ -2177,7 +2177,7 @@ bool Android_JNI_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *b
 //////////////////////////////////////////////////////////////////////////////
 */
 
-void *SDL_GetAndroidJNIEnv(void)
+JNIEnv *SDL_GetAndroidJNIEnv(void)
 {
     return Android_JNI_GetEnv();
 }

+ 1 - 1
src/dynapi/SDL_dynapi_procs.h

@@ -255,7 +255,7 @@ SDL_DYNAPI_PROC(const char*,SDL_GetAndroidCachePath,(void),(),return)
 SDL_DYNAPI_PROC(const char*,SDL_GetAndroidExternalStoragePath,(void),(),return)
 SDL_DYNAPI_PROC(Uint32,SDL_GetAndroidExternalStorageState,(void),(),return)
 SDL_DYNAPI_PROC(const char*,SDL_GetAndroidInternalStoragePath,(void),(),return)
-SDL_DYNAPI_PROC(void*,SDL_GetAndroidJNIEnv,(void),(),return)
+SDL_DYNAPI_PROC(JNIEnv*,SDL_GetAndroidJNIEnv,(void),(),return)
 SDL_DYNAPI_PROC(int,SDL_GetAndroidSDKVersion,(void),(),return)
 SDL_DYNAPI_PROC(const char*,SDL_GetAppMetadataProperty,(const char *a),(a),return)
 SDL_DYNAPI_PROC(SDL_AssertionHandler,SDL_GetAssertionHandler,(void **a),(a),return)