| 193 | } |
| 194 | |
| 195 | std::string toString() { |
| 196 | if (!throwable) { |
| 197 | return "JNIError"; |
| 198 | } else { |
| 199 | jboolean isCopy = false; |
| 200 | jmethodID toStringM = |
| 201 | env->GetMethodID(env->FindClass("java/lang/Object"), "toString", "()Ljava/lang/String;"); |
| 202 | jstring s = (jstring)env->CallObjectMethod(throwable, toStringM); |
| 203 | const char* utf = env->GetStringUTFChars(s, &isCopy); |
| 204 | std::string res(utf); |
| 205 | env->ReleaseStringUTFChars(s, utf); |
| 206 | return res; |
| 207 | } |
| 208 | } |
| 209 | }; |
| 210 | |
| 211 | struct JVM { |
no outgoing calls