diff options
Diffstat (limited to 'demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp')
-rw-r--r-- | demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp b/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp index e6ce9f1d7..500f540a5 100644 --- a/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp +++ b/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp @@ -246,12 +246,16 @@ JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1init_1with_1args return throwNullPointerException(env, "argv"); char **cargv = jbyteArray2DToCharArray(env, argv); + callbacks::setJNIEnv(idata, env); int code = gsapi_init_with_args((void *)instance, argc, cargv); delete2DByteArray(argc, cargv); - idata->hasinit = true; - storeDispalyHandle(idata); + if (code == 0) + { + idata->hasinit = true; + storeDispalyHandle(idata); + } return code; } @@ -670,6 +674,9 @@ void storeDispalyHandle(GSInstanceData *idata) { static const char PARAM_NAME[] = "DisplayHandle"; + assert(idata); + assert(idata->instance); + char *param = NULL; int bytes = gsapi_get_param(idata->instance, PARAM_NAME, NULL, gs_spt_string); if (bytes == com_artifex_gsjava_GSAPI_GS_ERROR_UNDEFINED) |