@@ -44,12 +44,17 @@ $members; separator="\n\n"$
44
44
>>
45
45
46
46
array_init(type, name) ::= <<
47
- $type$ * jni_$name$ = (*env)->GetPrimitiveArrayCritical(env, $name$, JNI_FALSE);
48
- check_memory(env, jni_$name$);
47
+ $type$ * jni_$name$ = NULL;
48
+ if ($name$ != NULL) {
49
+ jni_$name$ = (*env)->GetPrimitiveArrayCritical(env, $name$, JNI_FALSE);
50
+ check_memory(env, jni_$name$);
51
+ }
49
52
>>
50
53
51
54
array_clean(name) ::= <<
52
- (*env)->ReleasePrimitiveArrayCritical(env, $name$, jni_$name$, 0);
55
+ if ($name$ != NULL) {
56
+ (*env)->ReleasePrimitiveArrayCritical(env, $name$, jni_$name$, 0);
57
+ }
53
58
>>
54
59
55
60
jdoubleArray_init(name, type="jdouble") ::= "$array_init(type, name)$"
@@ -60,16 +65,23 @@ jintArray_init(name, type="jint") ::= "$array_init(type, name)$"
60
65
jintArray_clean(name) ::= "$array_clean(name)$"
61
66
62
67
jbooleanArray_init(name) ::= <<
63
- jboolean * jni_$name$_raw = (*env)->GetPrimitiveArrayCritical(env, $name$, JNI_FALSE);
64
- check_memory(env, jni_$name$_raw);
65
- jint jni_$name$_size = (*env)->GetArrayLength(env, $name$);
66
- int* jni_$name$ = jbooleanArray2intArray(env, jni_$name$_raw, jni_$name$_size);
68
+ jboolean * jni_$name$_raw = NULL;
69
+ jint jni_$name$_size = 0;
70
+ int* jni_$name$ = NULL;
71
+ if ($name$ != NULL) {
72
+ jni_$name$_raw = (*env)->GetPrimitiveArrayCritical(env, $name$, JNI_FALSE);
73
+ check_memory(env, jni_$name$_raw);
74
+ jni_$name$_size = (*env)->GetArrayLength(env, $name$);
75
+ jni_$name$ = jbooleanArray2intArray(env, jni_$name$_raw, jni_$name$_size);
76
+ }
67
77
>>
68
78
69
79
jbooleanArray_clean(name) ::= <<
70
- intArray2jbooleanArray(jni_$name$, jni_$name$_raw, jni_$name$_size);
71
- free(jni_$name$);
72
- (*env)->ReleasePrimitiveArrayCritical(env, $name$, jni_$name$_raw, 0);
80
+ if ($name$ != NULL) {
81
+ intArray2jbooleanArray(jni_$name$, jni_$name$_raw, jni_$name$_size);
82
+ free(jni_$name$);
83
+ (*env)->ReleasePrimitiveArrayCritical(env, $name$, jni_$name$_raw, 0);
84
+ }
73
85
>>
74
86
75
87
jstring_init(name) ::= <<
0 commit comments