Lines Matching refs:env

44 JNU_ThrowByName(JNIEnv *env, const char *name, const char *msg)
46 jclass cls = (*env)->FindClass(env, name);
49 (*env)->ThrowNew(env, cls, msg);
55 JNU_ThrowNullPointerException(JNIEnv *env, const char *msg)
57 JNU_ThrowByName(env, "java/lang/NullPointerException", msg);
61 JNU_ThrowArrayIndexOutOfBoundsException(JNIEnv *env, const char *msg)
63 JNU_ThrowByName(env, "java/lang/ArrayIndexOutOfBoundsException", msg);
67 JNU_ThrowOutOfMemoryError(JNIEnv *env, const char *msg)
69 JNU_ThrowByName(env, "java/lang/OutOfMemoryError", msg);
73 JNU_ThrowIllegalArgumentException(JNIEnv *env, const char *msg)
75 JNU_ThrowByName(env, "java/lang/IllegalArgumentException", msg);
79 JNU_ThrowIllegalAccessError(JNIEnv *env, const char *msg)
81 JNU_ThrowByName(env, "java/lang/IllegalAccessError", msg);
85 JNU_ThrowIllegalAccessException(JNIEnv *env, const char *msg)
87 JNU_ThrowByName(env, "java/lang/IllegalAccessException", msg);
91 JNU_ThrowInternalError(JNIEnv *env, const char *msg)
93 JNU_ThrowByName(env, "java/lang/InternalError", msg);
97 JNU_ThrowNoSuchFieldException(JNIEnv *env, const char *msg)
99 JNU_ThrowByName(env, "java/lang/NoSuchFieldException", msg);
103 JNU_ThrowNoSuchMethodException(JNIEnv *env, const char *msg)
105 JNU_ThrowByName(env, "java/lang/NoSuchMethodException", msg);
109 JNU_ThrowClassNotFoundException(JNIEnv *env, const char *msg)
111 JNU_ThrowByName(env, "java/lang/ClassNotFoundException", msg);
115 JNU_ThrowNumberFormatException(JNIEnv *env, const char *msg)
117 JNU_ThrowByName(env, "java/lang/NumberFormatException", msg);
121 JNU_ThrowIOException(JNIEnv *env, const char *msg)
123 JNU_ThrowByName(env, "java/io/IOException", msg);
127 JNU_ThrowNoSuchFieldError(JNIEnv *env, const char *msg)
129 JNU_ThrowByName(env, "java/lang/NoSuchFieldError", msg);
133 JNU_ThrowNoSuchMethodError(JNIEnv *env, const char *msg)
135 JNU_ThrowByName(env, "java/lang/NoSuchMethodError", msg);
139 JNU_ThrowStringIndexOutOfBoundsException(JNIEnv *env, const char *msg)
141 JNU_ThrowByName(env, "java/lang/StringIndexOutOfBoundsException", msg);
145 JNU_ThrowInstantiationException(JNIEnv *env, const char *msg)
147 JNU_ThrowByName(env, "java/lang/InstantiationException", msg);
156 JNU_ThrowByNameWithLastError(JNIEnv *env, const char *name,
163 jstring s = JNU_NewStringPlatform(env, buf);
165 jobject x = JNU_NewObjectByName(env, name,
168 (*env)->Throw(env, x);
172 if (!(*env)->ExceptionOccurred(env)) {
173 JNU_ThrowByName(env, name, defaultDetail);
182 JNU_ThrowIOExceptionWithLastError(JNIEnv *env, const char *defaultDetail)
184 JNU_ThrowByNameWithLastError(env, "java/io/IOException", defaultDetail);
189 JNU_CallStaticMethodByName(JNIEnv *env,
209 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
212 clazz = (*env)->FindClass(env, class_name);
215 mid = (*env)->GetStaticMethodID(env, clazz, name, signature);
221 (*env)->CallStaticVoidMethodV(env, clazz, mid, args);
225 result.l = (*env)->CallStaticObjectMethodV(env, clazz, mid, args);
228 result.z = (*env)->CallStaticBooleanMethodV(env, clazz, mid, args);
231 result.b = (*env)->CallStaticByteMethodV(env, clazz, mid, args);
234 result.c = (*env)->CallStaticCharMethodV(env, clazz, mid, args);
237 result.s = (*env)->CallStaticShortMethodV(env, clazz, mid, args);
240 result.i = (*env)->CallStaticIntMethodV(env, clazz, mid, args);
243 result.j = (*env)->CallStaticLongMethodV(env, clazz, mid, args);
246 result.f = (*env)->CallStaticFloatMethodV(env, clazz, mid, args);
249 result.d = (*env)->CallStaticDoubleMethodV(env, clazz, mid, args);
252 (*env)->FatalError(env, "JNU_CallStaticMethodByName: illegal signature");
257 (*env)->DeleteLocalRef(env, clazz);
260 *hasException = (*env)->ExceptionCheck(env);
266 JNU_CallMethodByName(JNIEnv *env,
277 result = JNU_CallMethodByNameV(env, hasException, obj, name, signature,
286 JNU_CallMethodByNameV(JNIEnv *env,
305 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
308 clazz = (*env)->GetObjectClass(env, obj);
309 mid = (*env)->GetMethodID(env, clazz, name, signature);
315 (*env)->CallVoidMethodV(env, obj, mid, args);
319 result.l = (*env)->CallObjectMethodV(env, obj, mid, args);
322 result.z = (*env)->CallBooleanMethodV(env, obj, mid, args);
325 result.b = (*env)->CallByteMethodV(env, obj, mid, args);
328 result.c = (*env)->CallCharMethodV(env, obj, mid, args);
331 result.s = (*env)->CallShortMethodV(env, obj, mid, args);
334 result.i = (*env)->CallIntMethodV(env, obj, mid, args);
337 result.j = (*env)->CallLongMethodV(env, obj, mid, args);
340 result.f = (*env)->CallFloatMethodV(env, obj, mid, args);
343 result.d = (*env)->CallDoubleMethodV(env, obj, mid, args);
346 (*env)->FatalError(env, "JNU_CallMethodByNameV: illegal signature");
349 (*env)->DeleteLocalRef(env, clazz);
352 *hasException = (*env)->ExceptionCheck(env);
358 JNU_NewObjectByName(JNIEnv *env, const char *class_name,
367 if ((*env)->EnsureLocalCapacity(env, 2) < 0)
370 cls = (*env)->FindClass(env, class_name);
374 cls_initMID = (*env)->GetMethodID(env, cls,
380 obj = (*env)->NewObjectV(env, cls, cls_initMID, args);
384 (*env)->DeleteLocalRef(env, cls);
390 newString8859_1(JNIEnv *env, const char *str)
401 JNU_ThrowOutOfMemoryError(env, 0);
409 result = (*env)->NewString(env, str1, len);
416 getString8859_1Chars(JNIEnv *env, jstring jstr)
420 jint len = (*env)->GetStringLength(env, jstr);
421 const jchar *str = (*env)->GetStringCritical(env, jstr, 0);
428 (*env)->ReleaseStringCritical(env, jstr, str);
429 JNU_ThrowOutOfMemoryError(env, 0);
442 (*env)->ReleaseStringCritical(env, jstr, str);
449 newString646_US(JNIEnv *env, const char *str)
460 JNU_ThrowOutOfMemoryError(env, 0);
474 result = (*env)->NewString(env, str1, len);
481 getString646_USChars(JNIEnv *env, jstring jstr)
485 jint len = (*env)->GetStringLength(env, jstr);
486 const jchar *str = (*env)->GetStringCritical(env, jstr, 0);
493 (*env)->ReleaseStringCritical(env, jstr, str);
494 JNU_ThrowOutOfMemoryError(env, 0);
507 (*env)->ReleaseStringCritical(env, jstr, str);
521 newStringCp1252(JNIEnv *env, const char *str)
531 JNU_ThrowOutOfMemoryError(env, 0);
545 result = (*env)->NewString(env, str1, len);
552 getStringCp1252Chars(JNIEnv *env, jstring jstr)
556 jint len = (*env)->GetStringLength(env, jstr);
557 const jchar *str = (*env)->GetStringCritical(env, jstr, 0);
564 (*env)->ReleaseStringCritical(env, jstr, str);
565 JNU_ThrowOutOfMemoryError(env, 0);
606 (*env)->ReleaseStringCritical(env, jstr, str);
625 initializeEncoding(JNIEnv *env)
630 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
633 propname = (*env)->NewStringUTF(env, "sun.jnu.encoding");
637 (env,
645 const char* encname = (*env)->GetStringUTFChars(env, enc, 0);
671 jnuEncoding = (jstring)(*env)->NewGlobalRef(env, enc);
673 (*env)->ReleaseStringUTFChars(env, enc, encname);
677 (*env)->ExceptionClear(env);
680 (*env)->ExceptionClear(env);
682 (*env)->DeleteLocalRef(env, propname);
683 (*env)->DeleteLocalRef(env, enc);
686 String_getBytes_ID = (*env)->GetMethodID(env, JNU_ClassString(env),
688 String_init_ID = (*env)->GetMethodID(env, JNU_ClassString(env),
693 static jboolean jnuEncodingSupported(JNIEnv *env) {
699 env, &exe,
709 NewStringPlatform(JNIEnv *env, const char *str)
711 return JNU_NewStringPlatform(env, str);
715 JNU_NewStringPlatform(JNIEnv *env, const char *str)
718 result = nativeNewStringPlatform(env, str);
724 initializeEncoding(env);
727 return newString8859_1(env, str);
729 return newString646_US(env, str);
731 return newStringCp1252(env, str);
733 if ((*env)->EnsureLocalCapacity(env, 2) < 0)
737 hab = (*env)->NewByteArray(env, len);
739 (*env)->SetByteArrayRegion(env, hab, 0, len, (jbyte *)str);
740 if (jnuEncodingSupported(env)) {
741 result = (*env)->NewObject(env, JNU_ClassString(env),
750 jmethodID mid = (*env)->GetMethodID(env, JNU_ClassString(env),
752 result = (*env)->NewObject(env, JNU_ClassString(env), mid, hab);
754 (*env)->DeleteLocalRef(env, hab);
762 GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy)
764 return JNU_GetStringPlatformChars(env, jstr, isCopy);
768 JNU_GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy)
770 char *result = nativeGetStringPlatformChars(env, jstr, isCopy);
779 initializeEncoding(env);
782 return getString8859_1Chars(env, jstr);
784 return getString646_USChars(env, jstr);
786 return getStringCp1252Chars(env, jstr);
788 if ((*env)->EnsureLocalCapacity(env, 2) < 0)
791 if (jnuEncodingSupported(env)) {
792 hab = (*env)->CallObjectMethod(env, jstr, String_getBytes_ID, jnuEncoding);
794 jmethodID mid = (*env)->GetMethodID(env, JNU_ClassString(env),
796 hab = (*env)->CallObjectMethod(env, jstr, mid);
799 if (!(*env)->ExceptionCheck(env)) {
800 jint len = (*env)->GetArrayLength(env, hab);
803 JNU_ThrowOutOfMemoryError(env, 0);
804 (*env)->DeleteLocalRef(env, hab);
807 (*env)->GetByteArrayRegion(env, hab, 0, len, (jbyte *)result);
811 (*env)->DeleteLocalRef(env, hab);
817 JNU_ReleaseStringPlatformChars(JNIEnv *env, jstring jstr, const char *str)
830 Canonicalize(JNIEnv *env, char *orig, char *out, int len)
837 JNU_ClassString(JNIEnv *env)
842 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
844 c = (*env)->FindClass(env, "java/lang/String");
845 cls = (*env)->NewGlobalRef(env, c);
846 (*env)->DeleteLocalRef(env, c);
852 JNU_ClassClass(JNIEnv *env)
857 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
859 c = (*env)->FindClass(env, "java/lang/Class");
860 cls = (*env)->NewGlobalRef(env, c);
861 (*env)->DeleteLocalRef(env, c);
867 JNU_ClassObject(JNIEnv *env)
872 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
874 c = (*env)->FindClass(env, "java/lang/Object");
875 cls = (*env)->NewGlobalRef(env, c);
876 (*env)->DeleteLocalRef(env, c);
882 JNU_ClassThrowable(JNIEnv *env)
887 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
889 c = (*env)->FindClass(env, "java/lang/Throwable");
890 cls = (*env)->NewGlobalRef(env, c);
891 (*env)->DeleteLocalRef(env, c);
897 JNU_CopyObjectArray(JNIEnv *env, jobjectArray dst, jobjectArray src,
901 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
904 jstring p = (*env)->GetObjectArrayElement(env, src, i);
905 (*env)->SetObjectArrayElement(env, dst, i, p);
906 (*env)->DeleteLocalRef(env, p);
914 void *env;
915 (*vm)->GetEnv(vm, &env, version);
916 return env;
920 JNU_IsInstanceOfByName(JNIEnv *env, jobject object, char* classname)
923 if ((*env)->EnsureLocalCapacity(env, 1) < 0)
925 cls = (*env)->FindClass(env, classname);
927 jint result = (*env)->IsInstanceOf(env, object, cls);
928 (*env)->DeleteLocalRef(env, cls);
935 JNU_Equals(JNIEnv *env, jobject object1, jobject object2)
939 mid = (*env)->GetMethodID(env, JNU_ClassObject(env), "equals",
942 return (*env)->CallBooleanMethod(env, object1, mid, object2);
955 JNU_MonitorWait(JNIEnv *env, jobject object, jlong timeout)
958 JNU_ThrowNullPointerException(env, "JNU_MonitorWait argument");
962 jclass cls = JNU_ClassObject(env);
966 Object_waitMID = (*env)->GetMethodID(env, cls, "wait", "(J)V");
971 (*env)->CallVoidMethod(env, object, Object_waitMID, timeout);
975 JNU_Notify(JNIEnv *env, jobject object)
978 JNU_ThrowNullPointerException(env, "JNU_Notify argument");
982 jclass cls = JNU_ClassObject(env);
986 Object_notifyMID = (*env)->GetMethodID(env, cls, "notify", "()V");
991 (*env)->CallVoidMethod(env, object, Object_notifyMID);
995 JNU_NotifyAll(JNIEnv *env, jobject object)
998 JNU_ThrowNullPointerException(env, "JNU_NotifyAll argument");
1002 jclass cls = JNU_ClassObject(env);
1006 Object_notifyAllMID = (*env)->GetMethodID(env, cls,"notifyAll", "()V");
1011 (*env)->CallVoidMethod(env, object, Object_notifyAllMID);
1020 JNU_PrintString(JNIEnv *env, char *hdr, jstring string)
1025 const char *stringPtr = JNU_GetStringPlatformChars(env, string, 0);
1029 JNU_ReleaseStringPlatformChars(env, string, stringPtr);
1034 JNU_PrintClass(JNIEnv *env, char* hdr, jobject object)
1040 jclass cls = (*env)->GetObjectClass(env, object);
1041 jstring clsName = JNU_ToString(env, cls);
1042 JNU_PrintString(env, hdr, clsName);
1043 (*env)->DeleteLocalRef(env, cls);
1044 (*env)->DeleteLocalRef(env, clsName);
1049 JNU_ToString(JNIEnv *env, jobject object)
1052 return (*env)->NewStringUTF(env, "NULL");
1054 return (jstring)JNU_CallMethodByName(env,
1063 JNU_GetFieldByName(JNIEnv *env,
1075 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
1078 cls = (*env)->GetObjectClass(env, obj);
1079 fid = (*env)->GetFieldID(env, cls, name, signature);
1086 result.l = (*env)->GetObjectField(env, obj, fid);
1089 result.z = (*env)->GetBooleanField(env, obj, fid);
1092 result.b = (*env)->GetByteField(env, obj, fid);
1095 result.c = (*env)->GetCharField(env, obj, fid);
1098 result.s = (*env)->GetShortField(env, obj, fid);
1101 result.i = (*env)->GetIntField(env, obj, fid);
1104 result.j = (*env)->GetLongField(env, obj, fid);
1107 result.f = (*env)->GetFloatField(env, obj, fid);
1110 result.d = (*env)->GetDoubleField(env, obj, fid);
1114 (*env)->FatalError(env, "JNU_GetFieldByName: illegal signature");
1118 (*env)->DeleteLocalRef(env, cls);
1121 *hasException = (*env)->ExceptionCheck(env);
1127 JNU_SetFieldByName(JNIEnv *env,
1138 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
1141 cls = (*env)->GetObjectClass(env, obj);
1142 fid = (*env)->GetFieldID(env, cls, name, signature);
1150 (*env)->SetObjectField(env, obj, fid, va_arg(args, jobject));
1153 (*env)->SetBooleanField(env, obj, fid, (jboolean)va_arg(args, int));
1156 (*env)->SetByteField(env, obj, fid, (jbyte)va_arg(args, int));
1159 (*env)->SetCharField(env, obj, fid, (jchar)va_arg(args, int));
1162 (*env)->SetShortField(env, obj, fid, (jshort)va_arg(args, int));
1165 (*env)->SetIntField(env, obj, fid, va_arg(args, jint));
1168 (*env)->SetLongField(env, obj, fid, va_arg(args, jlong));
1171 (*env)->SetFloatField(env, obj, fid, (jfloat)va_arg(args, jdouble));
1174 (*env)->SetDoubleField(env, obj, fid, va_arg(args, jdouble));
1178 (*env)->FatalError(env, "JNU_SetFieldByName: illegal signature");
1183 (*env)->DeleteLocalRef(env, cls);
1186 *hasException = (*env)->ExceptionCheck(env);
1191 JNU_GetStaticFieldByName(JNIEnv *env,
1203 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
1206 cls = (*env)->FindClass(env, classname);
1210 fid = (*env)->GetStaticFieldID(env, cls, name, signature);
1217 result.l = (*env)->GetStaticObjectField(env, cls, fid);
1220 result.z = (*env)->GetStaticBooleanField(env, cls, fid);
1223 result.b = (*env)->GetStaticByteField(env, cls, fid);
1226 result.c = (*env)->GetStaticCharField(env, cls, fid);
1229 result.s = (*env)->GetStaticShortField(env, cls, fid);
1232 result.i = (*env)->GetStaticIntField(env, cls, fid);
1235 result.j = (*env)->GetStaticLongField(env, cls, fid);
1238 result.f = (*env)->GetStaticFloatField(env, cls, fid);
1241 result.d = (*env)->GetStaticDoubleField(env, cls, fid);
1245 (*env)->FatalError(env, "JNU_GetStaticFieldByName: illegal signature");
1249 (*env)->DeleteLocalRef(env, cls);
1252 *hasException = (*env)->ExceptionCheck(env);
1258 JNU_SetStaticFieldByName(JNIEnv *env,
1269 if ((*env)->EnsureLocalCapacity(env, 3) < 0)
1272 cls = (*env)->FindClass(env, classname);
1276 fid = (*env)->GetStaticFieldID(env, cls, name, signature);
1284 (*env)->SetStaticObjectField(env, cls, fid, va_arg(args, jobject));
1287 (*env)->SetStaticBooleanField(env, cls, fid, (jboolean)va_arg(args, int));
1290 (*env)->SetStaticByteField(env, cls, fid, (jbyte)va_arg(args, int));
1293 (*env)->SetStaticCharField(env, cls, fid, (jchar)va_arg(args, int));
1296 (*env)->SetStaticShortField(env, cls, fid, (jshort)va_arg(args, int));
1299 (*env)->SetStaticIntField(env, cls, fid, va_arg(args, jint));
1302 (*env)->SetStaticLongField(env, cls, fid, va_arg(args, jlong));
1305 (*env)->SetStaticFloatField(env, cls, fid, (jfloat)va_arg(args, jdouble));
1308 (*env)->SetStaticDoubleField(env, cls, fid, va_arg(args, jdouble));
1312 (*env)->FatalError(env, "JNU_SetStaticFieldByName: illegal signature");
1317 (*env)->DeleteLocalRef(env, cls);
1320 *hasException = (*env)->ExceptionCheck(env);