summaryrefslogtreecommitdiff
path: root/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp
diff options
context:
space:
mode:
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.cpp11
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)