• Home
  • Raw
  • Download

Lines Matching refs:env

102 [[maybe_unused]] static jmethodID FindMethod(JNIEnv* env, const char* className,  in FindMethod()  argument
106 jclass clazz = env->FindClass(className); in FindMethod()
107 jmethodID methodId = env->GetMethodID(clazz, methodName, descriptor); in FindMethod()
108 env->DeleteLocalRef(clazz); in FindMethod()
112 [[maybe_unused]] static bool AppendJString(JNIEnv* env, jstring text, in AppendJString() argument
114 const char* utfText = env->GetStringUTFChars(text, NULL); in AppendJString()
119 env->ReleaseStringUTFChars(text, utfText); in AppendJString()
128 [[maybe_unused]] static bool GetExceptionSummary(JNIEnv* env, jthrowable thrown, in GetExceptionSummary() argument
131 jclass exceptionClass = env->GetObjectClass(thrown); // Always succeeds in GetExceptionSummary()
132 jmethodID getName = FindMethod(env, "java/lang/Class", "getName", "()Ljava/lang/String;"); in GetExceptionSummary()
133 jstring className = (jstring)env->CallObjectMethod(exceptionClass, getName); in GetExceptionSummary()
136 env->ExceptionClear(); in GetExceptionSummary()
137 env->DeleteLocalRef(exceptionClass); in GetExceptionSummary()
140 env->DeleteLocalRef(exceptionClass); in GetExceptionSummary()
143 if (!AppendJString(env, className, dst)) { in GetExceptionSummary()
145 env->ExceptionClear(); in GetExceptionSummary()
146 env->DeleteLocalRef(className); in GetExceptionSummary()
149 env->DeleteLocalRef(className); in GetExceptionSummary()
153 FindMethod(env, "java/lang/Throwable", "getMessage", "()Ljava/lang/String;"); in GetExceptionSummary()
154 jstring message = (jstring)env->CallObjectMethod(thrown, getMessage); in GetExceptionSummary()
159 bool success = (ExpandableStringAppend(dst, ": ") && AppendJString(env, message, dst)); in GetExceptionSummary()
170 env->ExceptionClear(); in GetExceptionSummary()
172 env->DeleteLocalRef(message); in GetExceptionSummary()
177 [[maybe_unused]] static jobject NewStringWriter(JNIEnv* env) { in NewStringWriter() argument
178 jclass clazz = env->FindClass("java/io/StringWriter"); in NewStringWriter()
179 jmethodID init = env->GetMethodID(clazz, "<init>", "()V"); in NewStringWriter()
180 jobject instance = env->NewObject(clazz, init); in NewStringWriter()
181 env->DeleteLocalRef(clazz); in NewStringWriter()
185 [[maybe_unused]] static jstring StringWriterToString(JNIEnv* env, jobject stringWriter) { in StringWriterToString() argument
187 FindMethod(env, "java/io/StringWriter", "toString", "()Ljava/lang/String;"); in StringWriterToString()
188 return (jstring)env->CallObjectMethod(stringWriter, toString); in StringWriterToString()
191 [[maybe_unused]] static jobject NewPrintWriter(JNIEnv* env, jobject writer) { in NewPrintWriter() argument
192 jclass clazz = env->FindClass("java/io/PrintWriter"); in NewPrintWriter()
193 jmethodID init = env->GetMethodID(clazz, "<init>", "(Ljava/io/Writer;)V"); in NewPrintWriter()
194 jobject instance = env->NewObject(clazz, init, writer); in NewPrintWriter()
195 env->DeleteLocalRef(clazz); in NewPrintWriter()
199 [[maybe_unused]] static bool GetStackTrace(JNIEnv* env, jthrowable thrown, in GetStackTrace() argument
207 jobject sw = NewStringWriter(env); in GetStackTrace()
212 jobject pw = NewPrintWriter(env, sw); in GetStackTrace()
214 env->DeleteLocalRef(sw); in GetStackTrace()
219 FindMethod(env, "java/lang/Throwable", "printStackTrace", "(Ljava/io/PrintWriter;)V"); in GetStackTrace()
220 env->CallVoidMethod(thrown, printStackTrace, pw); in GetStackTrace()
222 jstring trace = StringWriterToString(env, sw); in GetStackTrace()
224 env->DeleteLocalRef(pw); in GetStackTrace()
226 env->DeleteLocalRef(sw); in GetStackTrace()
233 bool success = AppendJString(env, trace, dst); in GetStackTrace()
234 env->DeleteLocalRef(trace); in GetStackTrace()
238 [[maybe_unused]] static void GetStackTraceOrSummary(JNIEnv* env, jthrowable thrown, in GetStackTraceOrSummary() argument
246 jthrowable pendingException = env->ExceptionOccurred(); in GetStackTraceOrSummary()
248 env->ExceptionClear(); in GetStackTraceOrSummary()
259 if (!GetStackTrace(env, thrown, dst)) { in GetStackTraceOrSummary()
261 env->ExceptionClear(); in GetStackTraceOrSummary()
262 GetExceptionSummary(env, thrown, dst); in GetStackTraceOrSummary()
267 env->Throw(pendingException); in GetStackTraceOrSummary()
268 env->DeleteLocalRef(pendingException); in GetStackTraceOrSummary()
272 [[maybe_unused]] static void DiscardPendingException(JNIEnv* env, const char* className) { in DiscardPendingException() argument
273 jthrowable exception = env->ExceptionOccurred(); in DiscardPendingException()
274 env->ExceptionClear(); in DiscardPendingException()
281 GetExceptionSummary(env, exception, &summary); in DiscardPendingException()
286 env->DeleteLocalRef(exception); in DiscardPendingException()
289 [[maybe_unused]] static int ThrowException(JNIEnv* env, const char* className, const char* ctorSig, in ThrowException() argument
297 DiscardPendingException(env, className); in ThrowException()
303 exceptionClass = env->FindClass(className); in ThrowException()
311 jmethodID init = env->GetMethodID(exceptionClass, "<init>", ctorSig); in ThrowException()
318 jobject instance = env->NewObjectV(exceptionClass, init, args); in ThrowException()
325 if (env->Throw((jthrowable)instance) != JNI_OK) { in ThrowException()
338 env->DeleteLocalRef(exceptionClass); in ThrowException()
343 [[maybe_unused]] static jstring CreateExceptionMsg(JNIEnv* env, const char* msg) { in CreateExceptionMsg() argument
344 jstring detailMessage = env->NewStringUTF(msg); in CreateExceptionMsg()
348 env->ExceptionClear(); in CreateExceptionMsg()
358 [[maybe_unused]] static int jniRegisterNativeMethods(JNIEnv* env, const char* className, in jniRegisterNativeMethods() argument
362 jclass clazz = env->FindClass(className); in jniRegisterNativeMethods()
368 int result = env->RegisterNatives(clazz, methods, numMethods); in jniRegisterNativeMethods()
369 env->DeleteLocalRef(clazz); in jniRegisterNativeMethods()
376 jthrowable thrown = env->ExceptionOccurred(); in jniRegisterNativeMethods()
380 if (GetExceptionSummary(env, thrown, &summary)) { in jniRegisterNativeMethods()
384 env->DeleteLocalRef(thrown); in jniRegisterNativeMethods()
405 [[maybe_unused]] static int jniThrowException(JNIEnv* env, const char* className, const char* msg) { in jniThrowException() argument
407 jstring _detailMessage = CreateExceptionMsg(env, msg); in jniThrowException()
408 int _status = ThrowException(env, className, "(Ljava/lang/String;)V", _detailMessage); in jniThrowException()
410 env->DeleteLocalRef(_detailMessage); in jniThrowException()
418 [[maybe_unused]] static int jniThrowErrnoException(JNIEnv* env, const char* functionName, in jniThrowErrnoException() argument
421 jstring _detailMessage = CreateExceptionMsg(env, functionName); in jniThrowErrnoException()
422 int _status = ThrowException(env, "android/system/ErrnoException", "(Ljava/lang/String;I)V", in jniThrowErrnoException()
425 env->DeleteLocalRef(_detailMessage); in jniThrowErrnoException()
444 [[maybe_unused]] static int jniThrowExceptionFmt(JNIEnv* env, const char* className, in jniThrowExceptionFmt() argument
451 return jniThrowException(env, className, msgBuf); in jniThrowExceptionFmt()
454 [[maybe_unused]] static int jniThrowNullPointerException(JNIEnv* env, const char* msg) { in jniThrowNullPointerException() argument
455 return jniThrowException(env, "java/lang/NullPointerException", msg); in jniThrowNullPointerException()
458 [[maybe_unused]] static int jniThrowRuntimeException(JNIEnv* env, const char* msg) { in jniThrowRuntimeException() argument
459 return jniThrowException(env, "java/lang/RuntimeException", msg); in jniThrowRuntimeException()
462 [[maybe_unused]] static int jniThrowIOException(JNIEnv* env, int errno_value) { in jniThrowIOException() argument
466 return jniThrowException(env, "java/io/IOException", message); in jniThrowIOException()
473 [[maybe_unused]] static inline jstring jniCreateString(JNIEnv* env, const jchar* unicodeChars, in jniCreateString() argument
475 return env->NewString(unicodeChars, len); in jniCreateString()
478 [[maybe_unused]] static inline jstring jniCreateString(JNIEnv* env, const char16_t* unicodeChars, in jniCreateString() argument
480 return jniCreateString(env, reinterpret_cast<const jchar*>(unicodeChars), len); in jniCreateString()
487 [[maybe_unused]] static void jniLogException(JNIEnv* env, int priority, const char* tag,
492 GetStackTraceOrSummary(env, exception, &summary);
502 int jniRegisterNativeMethods(JNIEnv* env, const char* className, const JNINativeMethod* gMethods,
505 void jniLogException(JNIEnv* env, int priority, const char* tag, jthrowable thrown);
507 int jniThrowException(JNIEnv* env, const char* className, const char* msg);
509 int jniThrowNullPointerException(JNIEnv* env, const char* msg);