blob: 55a9d7104d3661162141336210d8a49eef7c4434 [file] [log] [blame]
Ian Rogersdf20fe02011-07-20 20:34:16 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
Brian Carlstrom578bbdc2011-07-21 14:07:47 -07003#include "jni_internal.h"
Carl Shapiro2ed144c2011-07-26 16:52:08 -07004
5#include <vector>
6#include <utility>
7
Elliott Hughes40ef99e2011-08-11 17:44:34 -07008#include "class_linker.h"
Carl Shapiroea4dca82011-08-01 13:45:38 -07009#include "jni.h"
Brian Carlstrom578bbdc2011-07-21 14:07:47 -070010#include "logging.h"
Carl Shapiro2ed144c2011-07-26 16:52:08 -070011#include "runtime.h"
Carl Shapirofc322c72011-07-27 00:20:01 -070012#include "scoped_ptr.h"
13#include "stringpiece.h"
Carl Shapiro2ed144c2011-07-26 16:52:08 -070014#include "thread.h"
Ian Rogersdf20fe02011-07-20 20:34:16 -070015
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070016#define UNIMPLEMENTED(LEVEL) LOG(LEVEL) << __FUNCTION__ << " unimplemented"
17
Ian Rogersdf20fe02011-07-20 20:34:16 -070018namespace art {
19
Elliott Hughes22f40932011-08-12 13:06:37 -070020// Entry/exit processing for all JNI calls.
21//
22// This performs the necessary thread state switching, lets us amortize the
23// cost of working out the current thread, and lets us check (and repair) apps
24// that are using a JNIEnv on the wrong thread.
25class ScopedJniThreadState {
26 public:
27 explicit ScopedJniThreadState(JNIEnv* env) {
Elliott Hughesb20a5542011-08-12 18:03:12 -070028 self_ = ThreadForEnv(env);
Elliott Hughes22f40932011-08-12 13:06:37 -070029 self_->SetState(Thread::kRunnable);
30 }
31
32 ~ScopedJniThreadState() {
33 self_->SetState(Thread::kNative);
34 }
35
Elliott Hughesb20a5542011-08-12 18:03:12 -070036 Thread* Self() {
Elliott Hughes22f40932011-08-12 13:06:37 -070037 return self_;
38 }
39
Elliott Hughesb20a5542011-08-12 18:03:12 -070040 private:
41 static Thread* ThreadForEnv(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -070042 // TODO: need replacement for gDvmJni.
43 bool workAroundAppJniBugs = true;
44 Thread* env_self = reinterpret_cast<JNIEnvExt*>(env)->self;
45 Thread* self = workAroundAppJniBugs ? Thread::Current() : env_self;
46 if (self != env_self) {
Elliott Hughes330304d2011-08-12 14:28:05 -070047 LOG(ERROR) << "JNI ERROR: JNIEnv for " << *env_self
48 << " used on " << *self;
49 // TODO: dump stack
Elliott Hughes22f40932011-08-12 13:06:37 -070050 }
51 return self;
52 }
53
Elliott Hughes22f40932011-08-12 13:06:37 -070054 Thread* self_;
55 DISALLOW_COPY_AND_ASSIGN(ScopedJniThreadState);
56};
57
Elliott Hughes40ef99e2011-08-11 17:44:34 -070058jint GetVersion(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -070059 ScopedJniThreadState ts(env);
Carl Shapiroea4dca82011-08-01 13:45:38 -070060 return JNI_VERSION_1_6;
61}
62
Elliott Hughesb20a5542011-08-12 18:03:12 -070063jclass DefineClass(JNIEnv* env, const char*, jobject, const jbyte*, jsize) {
Elliott Hughes22f40932011-08-12 13:06:37 -070064 ScopedJniThreadState ts(env);
Elliott Hughesb20a5542011-08-12 18:03:12 -070065 LOG(WARNING) << "JNI DefineClass is not supported";
Carl Shapiroea4dca82011-08-01 13:45:38 -070066 return NULL;
67}
68
Elliott Hughes6b436852011-08-12 10:16:44 -070069// Section 12.3.2 of the JNI spec describes JNI class descriptors. They're
70// separated with slashes but aren't wrapped with "L;" like regular descriptors
71// (i.e. "a/b/C" rather than "La/b/C;"). Arrays of reference types are an
72// exception; there the "L;" must be present ("[La/b/C;"). Historically we've
73// supported names with dots too (such as "a.b.C").
74std::string NormalizeJniClassDescriptor(const char* name) {
75 std::string result;
76 // Add the missing "L;" if necessary.
77 if (name[0] == '[') {
78 result = name;
79 } else {
80 result += 'L';
81 result += name;
82 result += ';';
83 }
84 // Rewrite '.' as '/' for backwards compatibility.
85 for (size_t i = 0; i < result.size(); ++i) {
86 if (result[i] == '.') {
87 result[i] = '/';
88 }
89 }
90 return result;
91}
92
Elliott Hughes40ef99e2011-08-11 17:44:34 -070093jclass FindClass(JNIEnv* env, const char* name) {
Elliott Hughes22f40932011-08-12 13:06:37 -070094 ScopedJniThreadState ts(env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -070095 ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
Elliott Hughes6b436852011-08-12 10:16:44 -070096 std::string descriptor(NormalizeJniClassDescriptor(name));
Elliott Hughes40ef99e2011-08-11 17:44:34 -070097 // TODO: need to get the appropriate ClassLoader.
Elliott Hughes6b436852011-08-12 10:16:44 -070098 Class* c = class_linker->FindClass(descriptor, NULL);
Elliott Hughes40ef99e2011-08-11 17:44:34 -070099 // TODO: local reference.
100 return reinterpret_cast<jclass>(c);
101}
102
103jmethodID FromReflectedMethod(JNIEnv* env, jobject method) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700104 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700105 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700106 return NULL;
107}
108
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700109jfieldID FromReflectedField(JNIEnv* env, jobject field) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700110 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700111 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700112 return NULL;
113}
114
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700115jobject ToReflectedMethod(JNIEnv* env, jclass cls,
116 jmethodID methodID, jboolean isStatic) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700117 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700118 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700119 return NULL;
120}
121
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700122jclass GetSuperclass(JNIEnv* env, jclass sub) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700123 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700124 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700125 return NULL;
126}
127
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700128jboolean IsAssignableFrom(JNIEnv* env, jclass sub, jclass sup) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700129 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700130 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700131 return JNI_FALSE;
132}
133
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700134jobject ToReflectedField(JNIEnv* env, jclass cls,
135 jfieldID fieldID, jboolean isStatic) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700136 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700137 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700138 return NULL;
139}
140
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700141jint Throw(JNIEnv* env, jthrowable obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700142 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700143 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700144 return 0;
145}
146
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700147jint ThrowNew(JNIEnv* env, jclass clazz, const char* msg) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700148 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700149 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700150 return 0;
151}
152
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700153jthrowable ExceptionOccurred(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700154 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700155 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700156 return NULL;
157}
158
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700159void ExceptionDescribe(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700160 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700161 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700162}
163
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700164void ExceptionClear(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700165 ScopedJniThreadState ts(env);
Elliott Hughesb20a5542011-08-12 18:03:12 -0700166 ts.Self()->ClearException();
Carl Shapiroea4dca82011-08-01 13:45:38 -0700167}
168
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700169void FatalError(JNIEnv* env, const char* msg) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700170 ScopedJniThreadState ts(env);
Elliott Hughesb20a5542011-08-12 18:03:12 -0700171 LOG(FATAL) << "JNI FatalError called: " << msg;
Carl Shapiroea4dca82011-08-01 13:45:38 -0700172}
173
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700174jint PushLocalFrame(JNIEnv* env, jint cap) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700175 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700176 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700177 return 0;
178}
179
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700180jobject PopLocalFrame(JNIEnv* env, jobject res) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700181 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700182 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700183 return NULL;
184}
185
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700186jobject NewGlobalRef(JNIEnv* env, jobject lobj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700187 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700188 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700189 return NULL;
190}
191
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700192void DeleteGlobalRef(JNIEnv* env, jobject gref) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700193 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700194 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700195}
196
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700197void DeleteLocalRef(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700198 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700199 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700200}
201
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700202jboolean IsSameObject(JNIEnv* env, jobject obj1, jobject obj2) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700203 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700204 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700205 return JNI_FALSE;
206}
207
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700208jobject NewLocalRef(JNIEnv* env, jobject ref) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700209 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700210 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700211 return NULL;
212}
213
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700214jint EnsureLocalCapacity(JNIEnv* env, jint) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700215 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700216 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700217 return 0;
218}
219
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700220jobject AllocObject(JNIEnv* env, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700221 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700222 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700223 return NULL;
224}
225
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700226jobject NewObject(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700227 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700228 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700229 return NULL;
230}
231
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700232jobject NewObjectV(JNIEnv* env,
233 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700234 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700235 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700236 return NULL;
237}
238
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700239jobject NewObjectA(JNIEnv* env,
240 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700241 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700242 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700243 return NULL;
244}
245
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700246jclass GetObjectClass(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700247 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700248 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700249 return NULL;
250}
251
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700252jboolean IsInstanceOf(JNIEnv* env, jobject obj, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700253 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700254 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700255 return JNI_FALSE;
256}
257
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700258jmethodID GetMethodID(JNIEnv* env,
259 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700260 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700261 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700262 return NULL;
263}
264
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700265jobject CallObjectMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700266 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700267 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700268 return NULL;
269}
270
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700271jobject CallObjectMethodV(JNIEnv* env,
272 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700273 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700274 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700275 return NULL;
276}
277
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700278jobject CallObjectMethodA(JNIEnv* env,
279 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700280 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700281 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700282 return NULL;
283}
284
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700285jboolean CallBooleanMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700286 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700287 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700288 return JNI_FALSE;
289}
290
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700291jboolean CallBooleanMethodV(JNIEnv* env,
292 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700293 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700294 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700295 return JNI_FALSE;
296}
297
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700298jboolean CallBooleanMethodA(JNIEnv* env,
299 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700300 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700301 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700302 return JNI_FALSE;
303}
304
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700305jbyte CallByteMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700306 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700307 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700308 return 0;
309}
310
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700311jbyte CallByteMethodV(JNIEnv* env,
312 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700313 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700314 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700315 return 0;
316}
317
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700318jbyte CallByteMethodA(JNIEnv* env,
319 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700320 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700321 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700322 return 0;
323}
324
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700325jchar CallCharMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700326 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700327 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700328 return 0;
329}
330
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700331jchar CallCharMethodV(JNIEnv* env,
332 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700333 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700334 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700335 return 0;
336}
337
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700338jchar CallCharMethodA(JNIEnv* env,
339 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700340 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700341 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700342 return 0;
343}
344
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700345jshort CallShortMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700346 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700347 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700348 return 0;
349}
350
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700351jshort CallShortMethodV(JNIEnv* env,
352 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700353 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700354 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700355 return 0;
356}
357
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700358jshort CallShortMethodA(JNIEnv* env,
359 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700360 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700361 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700362 return 0;
363}
364
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700365jint CallIntMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700366 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700367 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700368 return 0;
369}
370
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700371jint CallIntMethodV(JNIEnv* env,
372 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700373 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700374 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700375 return 0;
376}
377
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700378jint CallIntMethodA(JNIEnv* env,
379 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700380 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700381 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700382 return 0;
383}
384
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700385jlong CallLongMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700386 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700387 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700388 return 0;
389}
390
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700391jlong CallLongMethodV(JNIEnv* env,
392 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700393 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700394 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700395 return 0;
396}
397
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700398jlong CallLongMethodA(JNIEnv* env,
399 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700400 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700401 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700402 return 0;
403}
404
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700405jfloat CallFloatMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700406 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700407 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700408 return 0;
409}
410
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700411jfloat CallFloatMethodV(JNIEnv* env,
412 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700413 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700414 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700415 return 0;
416}
417
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700418jfloat CallFloatMethodA(JNIEnv* env,
419 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700420 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700421 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700422 return 0;
423}
424
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700425jdouble CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700426 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700427 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700428 return 0;
429}
430
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700431jdouble CallDoubleMethodV(JNIEnv* env,
432 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700433 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700434 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700435 return 0;
436}
437
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700438jdouble CallDoubleMethodA(JNIEnv* env,
439 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700440 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700441 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700442 return 0;
443}
444
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700445void CallVoidMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700446 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700447 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700448}
449
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700450void CallVoidMethodV(JNIEnv* env, jobject obj,
451 jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700452 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700453 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700454}
455
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700456void CallVoidMethodA(JNIEnv* env, jobject obj,
457 jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700458 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700459 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700460}
461
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700462jobject CallNonvirtualObjectMethod(JNIEnv* env,
463 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700464 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700465 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700466 return NULL;
467}
468
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700469jobject CallNonvirtualObjectMethodV(JNIEnv* env,
470 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700471 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700472 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700473 return NULL;
474}
475
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700476jobject CallNonvirtualObjectMethodA(JNIEnv* env,
477 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700478 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700479 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700480 return NULL;
481}
482
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700483jboolean CallNonvirtualBooleanMethod(JNIEnv* env,
484 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700485 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700486 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700487 return JNI_FALSE;
488}
489
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700490jboolean CallNonvirtualBooleanMethodV(JNIEnv* env,
491 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700492 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700493 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700494 return JNI_FALSE;
495}
496
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700497jboolean CallNonvirtualBooleanMethodA(JNIEnv* env,
498 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700499 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700500 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700501 return JNI_FALSE;
502}
503
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700504jbyte CallNonvirtualByteMethod(JNIEnv* env,
505 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700506 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700507 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700508 return 0;
509}
510
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700511jbyte CallNonvirtualByteMethodV(JNIEnv* env,
512 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700513 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700514 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700515 return 0;
516}
517
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700518jbyte CallNonvirtualByteMethodA(JNIEnv* env,
519 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700520 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700521 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700522 return 0;
523}
524
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700525jchar CallNonvirtualCharMethod(JNIEnv* env,
526 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700527 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700528 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700529 return 0;
530}
531
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700532jchar CallNonvirtualCharMethodV(JNIEnv* env,
533 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700534 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700535 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700536 return 0;
537}
538
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700539jchar CallNonvirtualCharMethodA(JNIEnv* env,
540 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700541 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700542 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700543 return 0;
544}
545
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700546jshort CallNonvirtualShortMethod(JNIEnv* env,
547 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700548 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700549 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700550 return 0;
551}
552
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700553jshort CallNonvirtualShortMethodV(JNIEnv* env,
554 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700555 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700556 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700557 return 0;
558}
559
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700560jshort CallNonvirtualShortMethodA(JNIEnv* env,
561 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700562 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700563 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700564 return 0;
565}
566
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700567jint CallNonvirtualIntMethod(JNIEnv* env,
568 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700569 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700570 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700571 return 0;
572}
573
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700574jint CallNonvirtualIntMethodV(JNIEnv* env,
575 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700576 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700577 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700578 return 0;
579}
580
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700581jint CallNonvirtualIntMethodA(JNIEnv* env,
582 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700583 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700584 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700585 return 0;
586}
587
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700588jlong CallNonvirtualLongMethod(JNIEnv* env,
589 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700590 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700591 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700592 return 0;
593}
594
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700595jlong CallNonvirtualLongMethodV(JNIEnv* env,
596 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700597 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700598 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700599 return 0;
600}
601
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700602jlong CallNonvirtualLongMethodA(JNIEnv* env,
603 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700604 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700605 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700606 return 0;
607}
608
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700609jfloat CallNonvirtualFloatMethod(JNIEnv* env,
610 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700611 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700612 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700613 return 0;
614}
615
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700616jfloat CallNonvirtualFloatMethodV(JNIEnv* env,
617 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700618 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700619 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700620 return 0;
621}
622
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700623jfloat CallNonvirtualFloatMethodA(JNIEnv* env,
624 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700625 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700626 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700627 return 0;
628}
629
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700630jdouble CallNonvirtualDoubleMethod(JNIEnv* env,
631 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700632 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700633 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700634 return 0;
635}
636
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700637jdouble CallNonvirtualDoubleMethodV(JNIEnv* env,
638 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700639 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700640 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700641 return 0;
642}
643
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700644jdouble CallNonvirtualDoubleMethodA(JNIEnv* env,
645 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700646 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700647 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700648 return 0;
649}
650
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700651void CallNonvirtualVoidMethod(JNIEnv* env,
652 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700653 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700654 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700655}
656
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700657void CallNonvirtualVoidMethodV(JNIEnv* env,
658 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700659 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700660 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700661}
662
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700663void CallNonvirtualVoidMethodA(JNIEnv* env,
664 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700665 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700666 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700667}
668
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700669jfieldID GetFieldID(JNIEnv* env,
670 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700671 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700672 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700673 return NULL;
674}
675
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700676jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700677 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700678 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700679 return NULL;
680}
681
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700682jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700683 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700684 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700685 return JNI_FALSE;
686}
687
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700688jbyte GetByteField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700689 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700690 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700691 return 0;
692}
693
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700694jchar GetCharField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700695 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700696 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700697 return 0;
698}
699
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700700jshort GetShortField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700701 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700702 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700703 return 0;
704}
705
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700706jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700707 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700708 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700709 return 0;
710}
711
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700712jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700713 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700714 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700715 return 0;
716}
717
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700718jfloat GetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700719 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700720 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700721 return 0;
722}
723
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700724jdouble GetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700725 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700726 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700727 return 0;
728}
729
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700730void SetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID, jobject val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700731 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700732 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700733}
734
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700735void SetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID, jboolean val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700736 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700737 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700738}
739
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700740void SetByteField(JNIEnv* env, jobject obj, jfieldID fieldID, jbyte val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700741 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700742 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700743}
744
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700745void SetCharField(JNIEnv* env, jobject obj, jfieldID fieldID, jchar val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700746 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700747 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700748}
749
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700750void SetShortField(JNIEnv* env, jobject obj, jfieldID fieldID, jshort val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700751 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700752 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700753}
754
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700755void SetIntField(JNIEnv* env, jobject obj, jfieldID fieldID, jint val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700756 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700757 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700758}
759
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700760void SetLongField(JNIEnv* env, jobject obj, jfieldID fieldID, jlong val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700761 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700762 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700763}
764
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700765void SetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID, jfloat val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700766 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700767 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700768}
769
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700770void SetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID, jdouble val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700771 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700772 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700773}
774
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700775jmethodID GetStaticMethodID(JNIEnv* env,
776 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700777 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700778 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700779 return NULL;
780}
781
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700782jobject CallStaticObjectMethod(JNIEnv* env,
783 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700784 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700785 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700786 return NULL;
787}
788
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700789jobject CallStaticObjectMethodV(JNIEnv* env,
790 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700791 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700792 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700793 return NULL;
794}
795
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700796jobject CallStaticObjectMethodA(JNIEnv* env,
797 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700798 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700799 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700800 return NULL;
801}
802
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700803jboolean CallStaticBooleanMethod(JNIEnv* env,
804 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700805 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700806 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700807 return JNI_FALSE;
808}
809
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700810jboolean CallStaticBooleanMethodV(JNIEnv* env,
811 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700812 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700813 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700814 return JNI_FALSE;
815}
816
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700817jboolean CallStaticBooleanMethodA(JNIEnv* env,
818 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700819 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700820 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700821 return JNI_FALSE;
822}
823
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700824jbyte CallStaticByteMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700825 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700826 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700827 return 0;
828}
829
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700830jbyte CallStaticByteMethodV(JNIEnv* env,
831 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700832 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700833 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700834 return 0;
835}
836
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700837jbyte CallStaticByteMethodA(JNIEnv* env,
838 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700839 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700840 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700841 return 0;
842}
843
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700844jchar CallStaticCharMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700845 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700846 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700847 return 0;
848}
849
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700850jchar CallStaticCharMethodV(JNIEnv* env,
851 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700852 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700853 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700854 return 0;
855}
856
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700857jchar CallStaticCharMethodA(JNIEnv* env,
858 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700859 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700860 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700861 return 0;
862}
863
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700864jshort CallStaticShortMethod(JNIEnv* env,
865 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700866 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700867 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700868 return 0;
869}
870
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700871jshort CallStaticShortMethodV(JNIEnv* env,
872 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700873 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700874 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700875 return 0;
876}
877
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700878jshort CallStaticShortMethodA(JNIEnv* env,
879 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700880 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700881 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700882 return 0;
883}
884
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700885jint CallStaticIntMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700886 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700887 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700888 return 0;
889}
890
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700891jint CallStaticIntMethodV(JNIEnv* env,
892 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700893 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700894 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700895 return 0;
896}
897
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700898jint CallStaticIntMethodA(JNIEnv* env,
899 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700900 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700901 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700902 return 0;
903}
904
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700905jlong CallStaticLongMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700906 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700907 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700908 return 0;
909}
910
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700911jlong CallStaticLongMethodV(JNIEnv* env,
912 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700913 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700914 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700915 return 0;
916}
917
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700918jlong CallStaticLongMethodA(JNIEnv* env,
919 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700920 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700921 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700922 return 0;
923}
924
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700925jfloat CallStaticFloatMethod(JNIEnv* env,
926 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700927 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700928 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700929 return 0;
930}
931
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700932jfloat CallStaticFloatMethodV(JNIEnv* env,
933 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700934 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700935 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700936 return 0;
937}
938
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700939jfloat CallStaticFloatMethodA(JNIEnv* env,
940 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700941 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700942 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700943 return 0;
944}
945
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700946jdouble CallStaticDoubleMethod(JNIEnv* env,
947 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700948 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700949 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700950 return 0;
951}
952
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700953jdouble CallStaticDoubleMethodV(JNIEnv* env,
954 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700955 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700956 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700957 return 0;
958}
959
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700960jdouble CallStaticDoubleMethodA(JNIEnv* env,
961 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700962 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700963 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700964 return 0;
965}
966
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700967void CallStaticVoidMethod(JNIEnv* env, jclass cls, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700968 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700969 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700970}
971
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700972void CallStaticVoidMethodV(JNIEnv* env,
973 jclass cls, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700974 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700975 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700976}
977
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700978void CallStaticVoidMethodA(JNIEnv* env,
979 jclass cls, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700980 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700981 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700982}
983
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700984jfieldID GetStaticFieldID(JNIEnv* env,
985 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700986 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700987 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700988 return 0;
989}
990
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700991jobject GetStaticObjectField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700992 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700993 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700994 return NULL;
995}
996
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700997jboolean GetStaticBooleanField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700998 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700999 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001000 return JNI_FALSE;
1001}
1002
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001003jbyte GetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001004 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001005 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001006 return 0;
1007}
1008
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001009jchar GetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001010 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001011 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001012 return 0;
1013}
1014
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001015jshort GetStaticShortField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001016 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001017 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001018 return 0;
1019}
1020
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001021jint GetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001022 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001023 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001024 return 0;
1025}
1026
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001027jlong GetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001028 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001029 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001030 return 0;
1031}
1032
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001033jfloat GetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001034 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001035 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001036 return 0;
1037}
1038
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001039jdouble GetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001040 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001041 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001042 return 0;
1043}
1044
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001045void SetStaticObjectField(JNIEnv* env,
1046 jclass clazz, jfieldID fieldID, jobject value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001047 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001048 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001049}
1050
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001051void SetStaticBooleanField(JNIEnv* env,
1052 jclass clazz, jfieldID fieldID, jboolean value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001053 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001054 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001055}
1056
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001057void SetStaticByteField(JNIEnv* env,
1058 jclass clazz, jfieldID fieldID, jbyte value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001059 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001060 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001061}
1062
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001063void SetStaticCharField(JNIEnv* env,
1064 jclass clazz, jfieldID fieldID, jchar value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001065 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001066 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001067}
1068
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001069void SetStaticShortField(JNIEnv* env,
1070 jclass clazz, jfieldID fieldID, jshort value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001071 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001072 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001073}
1074
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001075void SetStaticIntField(JNIEnv* env,
1076 jclass clazz, jfieldID fieldID, jint value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001077 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001078 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001079}
1080
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001081void SetStaticLongField(JNIEnv* env,
1082 jclass clazz, jfieldID fieldID, jlong value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001083 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001084 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001085}
1086
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001087void SetStaticFloatField(JNIEnv* env,
1088 jclass clazz, jfieldID fieldID, jfloat value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001089 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001090 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001091}
1092
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001093void SetStaticDoubleField(JNIEnv* env,
1094 jclass clazz, jfieldID fieldID, jdouble value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001095 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001096 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001097}
1098
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001099jstring NewString(JNIEnv* env, const jchar* unicode, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001100 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001101 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001102 return NULL;
1103}
1104
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001105jsize GetStringLength(JNIEnv* env, jstring str) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001106 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001107 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001108 return 0;
1109}
1110
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001111const jchar* GetStringChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001112 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001113 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001114 return NULL;
1115}
1116
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001117void ReleaseStringChars(JNIEnv* env, jstring str, const jchar* chars) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001118 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001119 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001120}
1121
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001122jstring NewStringUTF(JNIEnv* env, const char* utf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001123 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001124 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001125 return NULL;
1126}
1127
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001128jsize GetStringUTFLength(JNIEnv* env, jstring str) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001129 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001130 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001131 return 0;
1132}
1133
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001134const char* GetStringUTFChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001135 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001136 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001137 return NULL;
1138}
1139
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001140void ReleaseStringUTFChars(JNIEnv* env, jstring str, const char* chars) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001141 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001142 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001143}
1144
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001145jsize GetArrayLength(JNIEnv* env, jarray array) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001146 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001147 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001148 return 0;
1149}
1150
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001151jobjectArray NewObjectArray(JNIEnv* env,
1152 jsize len, jclass clazz, jobject init) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001153 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001154 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001155 return NULL;
1156}
1157
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001158jobject GetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001159 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001160 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001161 return NULL;
1162}
1163
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001164void SetObjectArrayElement(JNIEnv* env,
1165 jobjectArray array, jsize index, jobject val) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001166 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001167 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001168}
1169
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001170jbooleanArray NewBooleanArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001171 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001172 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001173 return NULL;
1174}
1175
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001176jbyteArray NewByteArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001177 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001178 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001179 return NULL;
1180}
1181
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001182jcharArray NewCharArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001183 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001184 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001185 return NULL;
1186}
1187
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001188jshortArray NewShortArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001189 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001190 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001191 return NULL;
1192}
1193
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001194jintArray NewIntArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001195 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001196 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001197 return NULL;
1198}
1199
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001200jlongArray NewLongArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001201 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001202 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001203 return NULL;
1204}
1205
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001206jfloatArray NewFloatArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001207 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001208 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001209 return NULL;
1210}
1211
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001212jdoubleArray NewDoubleArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001213 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001214 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001215 return NULL;
1216}
1217
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001218jboolean* GetBooleanArrayElements(JNIEnv* env,
1219 jbooleanArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001220 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001221 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001222 return NULL;
1223}
1224
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001225jbyte* GetByteArrayElements(JNIEnv* env, jbyteArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001226 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001227 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001228 return NULL;
1229}
1230
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001231jchar* GetCharArrayElements(JNIEnv* env, jcharArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001232 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001233 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001234 return NULL;
1235}
1236
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001237jshort* GetShortArrayElements(JNIEnv* env,
1238 jshortArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001239 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001240 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001241 return NULL;
1242}
1243
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001244jint* GetIntArrayElements(JNIEnv* env, jintArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001245 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001246 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001247 return NULL;
1248}
1249
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001250jlong* GetLongArrayElements(JNIEnv* env, jlongArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001251 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001252 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001253 return NULL;
1254}
1255
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001256jfloat* GetFloatArrayElements(JNIEnv* env,
1257 jfloatArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001258 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001259 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001260 return NULL;
1261}
1262
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001263jdouble* GetDoubleArrayElements(JNIEnv* env,
1264 jdoubleArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001265 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001266 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001267 return NULL;
1268}
1269
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001270void ReleaseBooleanArrayElements(JNIEnv* env,
1271 jbooleanArray array, jboolean* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001272 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001273 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001274}
1275
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001276void ReleaseByteArrayElements(JNIEnv* env,
1277 jbyteArray array, jbyte* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001278 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001279 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001280}
1281
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001282void ReleaseCharArrayElements(JNIEnv* env,
1283 jcharArray array, jchar* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001284 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001285 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001286}
1287
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001288void ReleaseShortArrayElements(JNIEnv* env,
1289 jshortArray array, jshort* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001290 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001291 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001292}
1293
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001294void ReleaseIntArrayElements(JNIEnv* env,
1295 jintArray array, jint* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001296 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001297 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001298}
1299
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001300void ReleaseLongArrayElements(JNIEnv* env,
1301 jlongArray array, jlong* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001302 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001303 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001304}
1305
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001306void ReleaseFloatArrayElements(JNIEnv* env,
1307 jfloatArray array, jfloat* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001308 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001309 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001310}
1311
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001312void ReleaseDoubleArrayElements(JNIEnv* env,
1313 jdoubleArray array, jdouble* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001314 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001315 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001316}
1317
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001318void GetBooleanArrayRegion(JNIEnv* env,
1319 jbooleanArray array, jsize start, jsize l, jboolean* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001320 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001321 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001322}
1323
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001324void GetByteArrayRegion(JNIEnv* env,
1325 jbyteArray array, jsize start, jsize len, jbyte* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001326 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001327 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001328}
1329
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001330void GetCharArrayRegion(JNIEnv* env,
1331 jcharArray array, jsize start, jsize len, jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001332 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001333 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001334}
1335
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001336void GetShortArrayRegion(JNIEnv* env,
1337 jshortArray array, jsize start, jsize len, jshort* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001338 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001339 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001340}
1341
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001342void GetIntArrayRegion(JNIEnv* env,
1343 jintArray array, jsize start, jsize len, jint* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001344 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001345 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001346}
1347
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001348void GetLongArrayRegion(JNIEnv* env,
1349 jlongArray array, jsize start, jsize len, jlong* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001350 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001351 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001352}
1353
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001354void GetFloatArrayRegion(JNIEnv* env,
1355 jfloatArray array, jsize start, jsize len, jfloat* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001356 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001357 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001358}
1359
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001360void GetDoubleArrayRegion(JNIEnv* env,
1361 jdoubleArray array, jsize start, jsize len, jdouble* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001362 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001363 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001364}
1365
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001366void SetBooleanArrayRegion(JNIEnv* env,
1367 jbooleanArray array, jsize start, jsize l, const jboolean* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001368 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001369 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001370}
1371
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001372void SetByteArrayRegion(JNIEnv* env,
1373 jbyteArray array, jsize start, jsize len, const jbyte* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001374 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001375 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001376}
1377
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001378void SetCharArrayRegion(JNIEnv* env,
1379 jcharArray array, jsize start, jsize len, const jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001380 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001381 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001382}
1383
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001384void SetShortArrayRegion(JNIEnv* env,
1385 jshortArray array, jsize start, jsize len, const jshort* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001386 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001387 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001388}
1389
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001390void SetIntArrayRegion(JNIEnv* env,
1391 jintArray array, jsize start, jsize len, const jint* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001392 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001393 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001394}
1395
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001396void SetLongArrayRegion(JNIEnv* env,
1397 jlongArray array, jsize start, jsize len, const jlong* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001398 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001399 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001400}
1401
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001402void SetFloatArrayRegion(JNIEnv* env,
1403 jfloatArray array, jsize start, jsize len, const jfloat* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001404 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001405 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001406}
1407
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001408void SetDoubleArrayRegion(JNIEnv* env,
1409 jdoubleArray array, jsize start, jsize len, const jdouble* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001410 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001411 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001412}
1413
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001414jint RegisterNatives(JNIEnv* env,
1415 jclass clazz, const JNINativeMethod* methods, jint nMethods) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001416 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001417 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001418 return 0;
1419}
1420
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001421jint UnregisterNatives(JNIEnv* env, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001422 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001423 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001424 return 0;
1425}
1426
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001427jint MonitorEnter(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001428 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001429 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001430 return 0;
1431}
1432
1433jint MonitorExit(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001434 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001435 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001436 return 0;
1437}
1438
Elliott Hughesb20a5542011-08-12 18:03:12 -07001439jint GetJavaVM(JNIEnv* env, JavaVM** vm) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001440 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001441 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001442 return 0;
1443}
1444
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001445void GetStringRegion(JNIEnv* env,
1446 jstring str, jsize start, jsize len, jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001447 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001448 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001449}
1450
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001451void GetStringUTFRegion(JNIEnv* env,
1452 jstring str, jsize start, jsize len, char* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001453 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001454 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001455}
1456
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001457void* GetPrimitiveArrayCritical(JNIEnv* env,
1458 jarray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001459 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001460 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001461 return NULL;
1462}
1463
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001464void ReleasePrimitiveArrayCritical(JNIEnv* env,
1465 jarray array, void* carray, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001466 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001467 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001468}
1469
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001470const jchar* GetStringCritical(JNIEnv* env, jstring s, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001471 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001472 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001473 return NULL;
1474}
1475
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001476void ReleaseStringCritical(JNIEnv* env, jstring s, const jchar* cstr) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001477 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001478 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001479}
1480
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001481jweak NewWeakGlobalRef(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001482 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001483 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001484 return NULL;
1485}
1486
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001487void DeleteWeakGlobalRef(JNIEnv* env, jweak obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001488 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001489 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001490}
1491
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001492jboolean ExceptionCheck(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001493 ScopedJniThreadState ts(env);
Elliott Hughesb20a5542011-08-12 18:03:12 -07001494 return ts.Self()->IsExceptionPending() ? JNI_TRUE : JNI_FALSE;
Carl Shapiroea4dca82011-08-01 13:45:38 -07001495}
1496
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001497jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001498 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001499 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001500 return NULL;
1501}
1502
1503
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001504void* GetDirectBufferAddress(JNIEnv* env, jobject buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001505 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001506 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001507 return NULL;
1508}
1509
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001510jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001511 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001512 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001513 return 0;
1514}
1515
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001516jobjectRefType GetObjectRefType(JNIEnv* env, jobject jobj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001517 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001518 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001519 return JNIInvalidRefType;
1520}
1521
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001522static const struct JNINativeInterface gNativeInterface = {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001523 NULL, // reserved0.
1524 NULL, // reserved1.
1525 NULL, // reserved2.
1526 NULL, // reserved3.
1527 GetVersion,
1528 DefineClass,
1529 FindClass,
1530 FromReflectedMethod,
1531 FromReflectedField,
1532 ToReflectedMethod,
1533 GetSuperclass,
1534 IsAssignableFrom,
1535 ToReflectedField,
1536 Throw,
1537 ThrowNew,
1538 ExceptionOccurred,
1539 ExceptionDescribe,
1540 ExceptionClear,
1541 FatalError,
1542 PushLocalFrame,
1543 PopLocalFrame,
1544 NewGlobalRef,
1545 DeleteGlobalRef,
1546 DeleteLocalRef,
1547 IsSameObject,
1548 NewLocalRef,
1549 EnsureLocalCapacity,
1550 AllocObject,
1551 NewObject,
1552 NewObjectV,
1553 NewObjectA,
1554 GetObjectClass,
1555 IsInstanceOf,
1556 GetMethodID,
1557 CallObjectMethod,
1558 CallObjectMethodV,
1559 CallObjectMethodA,
1560 CallBooleanMethod,
1561 CallBooleanMethodV,
1562 CallBooleanMethodA,
1563 CallByteMethod,
1564 CallByteMethodV,
1565 CallByteMethodA,
1566 CallCharMethod,
1567 CallCharMethodV,
1568 CallCharMethodA,
1569 CallShortMethod,
1570 CallShortMethodV,
1571 CallShortMethodA,
1572 CallIntMethod,
1573 CallIntMethodV,
1574 CallIntMethodA,
1575 CallLongMethod,
1576 CallLongMethodV,
1577 CallLongMethodA,
1578 CallFloatMethod,
1579 CallFloatMethodV,
1580 CallFloatMethodA,
1581 CallDoubleMethod,
1582 CallDoubleMethodV,
1583 CallDoubleMethodA,
1584 CallVoidMethod,
1585 CallVoidMethodV,
1586 CallVoidMethodA,
1587 CallNonvirtualObjectMethod,
1588 CallNonvirtualObjectMethodV,
1589 CallNonvirtualObjectMethodA,
1590 CallNonvirtualBooleanMethod,
1591 CallNonvirtualBooleanMethodV,
1592 CallNonvirtualBooleanMethodA,
1593 CallNonvirtualByteMethod,
1594 CallNonvirtualByteMethodV,
1595 CallNonvirtualByteMethodA,
1596 CallNonvirtualCharMethod,
1597 CallNonvirtualCharMethodV,
1598 CallNonvirtualCharMethodA,
1599 CallNonvirtualShortMethod,
1600 CallNonvirtualShortMethodV,
1601 CallNonvirtualShortMethodA,
1602 CallNonvirtualIntMethod,
1603 CallNonvirtualIntMethodV,
1604 CallNonvirtualIntMethodA,
1605 CallNonvirtualLongMethod,
1606 CallNonvirtualLongMethodV,
1607 CallNonvirtualLongMethodA,
1608 CallNonvirtualFloatMethod,
1609 CallNonvirtualFloatMethodV,
1610 CallNonvirtualFloatMethodA,
1611 CallNonvirtualDoubleMethod,
1612 CallNonvirtualDoubleMethodV,
1613 CallNonvirtualDoubleMethodA,
1614 CallNonvirtualVoidMethod,
1615 CallNonvirtualVoidMethodV,
1616 CallNonvirtualVoidMethodA,
1617 GetFieldID,
1618 GetObjectField,
1619 GetBooleanField,
1620 GetByteField,
1621 GetCharField,
1622 GetShortField,
1623 GetIntField,
1624 GetLongField,
1625 GetFloatField,
1626 GetDoubleField,
1627 SetObjectField,
1628 SetBooleanField,
1629 SetByteField,
1630 SetCharField,
1631 SetShortField,
1632 SetIntField,
1633 SetLongField,
1634 SetFloatField,
1635 SetDoubleField,
1636 GetStaticMethodID,
1637 CallStaticObjectMethod,
1638 CallStaticObjectMethodV,
1639 CallStaticObjectMethodA,
1640 CallStaticBooleanMethod,
1641 CallStaticBooleanMethodV,
1642 CallStaticBooleanMethodA,
1643 CallStaticByteMethod,
1644 CallStaticByteMethodV,
1645 CallStaticByteMethodA,
1646 CallStaticCharMethod,
1647 CallStaticCharMethodV,
1648 CallStaticCharMethodA,
1649 CallStaticShortMethod,
1650 CallStaticShortMethodV,
1651 CallStaticShortMethodA,
1652 CallStaticIntMethod,
1653 CallStaticIntMethodV,
1654 CallStaticIntMethodA,
1655 CallStaticLongMethod,
1656 CallStaticLongMethodV,
1657 CallStaticLongMethodA,
1658 CallStaticFloatMethod,
1659 CallStaticFloatMethodV,
1660 CallStaticFloatMethodA,
1661 CallStaticDoubleMethod,
1662 CallStaticDoubleMethodV,
1663 CallStaticDoubleMethodA,
1664 CallStaticVoidMethod,
1665 CallStaticVoidMethodV,
1666 CallStaticVoidMethodA,
1667 GetStaticFieldID,
1668 GetStaticObjectField,
1669 GetStaticBooleanField,
1670 GetStaticByteField,
1671 GetStaticCharField,
1672 GetStaticShortField,
1673 GetStaticIntField,
1674 GetStaticLongField,
1675 GetStaticFloatField,
1676 GetStaticDoubleField,
1677 SetStaticObjectField,
1678 SetStaticBooleanField,
1679 SetStaticByteField,
1680 SetStaticCharField,
1681 SetStaticShortField,
1682 SetStaticIntField,
1683 SetStaticLongField,
1684 SetStaticFloatField,
1685 SetStaticDoubleField,
1686 NewString,
1687 GetStringLength,
1688 GetStringChars,
1689 ReleaseStringChars,
1690 NewStringUTF,
1691 GetStringUTFLength,
1692 GetStringUTFChars,
1693 ReleaseStringUTFChars,
1694 GetArrayLength,
1695 NewObjectArray,
1696 GetObjectArrayElement,
1697 SetObjectArrayElement,
1698 NewBooleanArray,
1699 NewByteArray,
1700 NewCharArray,
1701 NewShortArray,
1702 NewIntArray,
1703 NewLongArray,
1704 NewFloatArray,
1705 NewDoubleArray,
1706 GetBooleanArrayElements,
1707 GetByteArrayElements,
1708 GetCharArrayElements,
1709 GetShortArrayElements,
1710 GetIntArrayElements,
1711 GetLongArrayElements,
1712 GetFloatArrayElements,
1713 GetDoubleArrayElements,
1714 ReleaseBooleanArrayElements,
1715 ReleaseByteArrayElements,
1716 ReleaseCharArrayElements,
1717 ReleaseShortArrayElements,
1718 ReleaseIntArrayElements,
1719 ReleaseLongArrayElements,
1720 ReleaseFloatArrayElements,
1721 ReleaseDoubleArrayElements,
1722 GetBooleanArrayRegion,
1723 GetByteArrayRegion,
1724 GetCharArrayRegion,
1725 GetShortArrayRegion,
1726 GetIntArrayRegion,
1727 GetLongArrayRegion,
1728 GetFloatArrayRegion,
1729 GetDoubleArrayRegion,
1730 SetBooleanArrayRegion,
1731 SetByteArrayRegion,
1732 SetCharArrayRegion,
1733 SetShortArrayRegion,
1734 SetIntArrayRegion,
1735 SetLongArrayRegion,
1736 SetFloatArrayRegion,
1737 SetDoubleArrayRegion,
1738 RegisterNatives,
1739 UnregisterNatives,
1740 MonitorEnter,
1741 MonitorExit,
1742 GetJavaVM,
1743 GetStringRegion,
1744 GetStringUTFRegion,
1745 GetPrimitiveArrayCritical,
1746 ReleasePrimitiveArrayCritical,
1747 GetStringCritical,
1748 ReleaseStringCritical,
1749 NewWeakGlobalRef,
1750 DeleteWeakGlobalRef,
1751 ExceptionCheck,
1752 NewDirectByteBuffer,
1753 GetDirectBufferAddress,
1754 GetDirectBufferCapacity,
1755 GetObjectRefType,
1756};
1757
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001758void MonitorEnterHelper(JNIEnv* env, jobject obj) {
Elliott Hughes330304d2011-08-12 14:28:05 -07001759 CHECK_EQ(Thread::Current()->GetJniEnv(), env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001760 MonitorEnter(env, obj); // Ignore the result.
1761}
1762
1763void MonitorExitHelper(JNIEnv* env, jobject obj) {
Elliott Hughes330304d2011-08-12 14:28:05 -07001764 CHECK_EQ(Thread::Current()->GetJniEnv(), env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001765 MonitorExit(env, obj); // Ignore the result.
1766}
1767
1768JNIEnv* CreateJNIEnv() {
Elliott Hughes330304d2011-08-12 14:28:05 -07001769 Thread* self = Thread::Current();
1770 CHECK(self != NULL);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001771 JNIEnvExt* result = (JNIEnvExt*) calloc(1, sizeof(JNIEnvExt));
1772 result->fns = &gNativeInterface;
Elliott Hughes330304d2011-08-12 14:28:05 -07001773 result->self = self;
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001774 result->MonitorEnterHelper = &MonitorEnterHelper;
1775 result->MonitorExitHelper = &MonitorExitHelper;
1776 return reinterpret_cast<JNIEnv*>(result);
1777}
1778
Carl Shapiroea4dca82011-08-01 13:45:38 -07001779// JNI Invocation interface.
1780
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001781extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, void** p_env, void* vm_args) {
1782 const JavaVMInitArgs* args = static_cast<JavaVMInitArgs*>(vm_args);
1783 if (args->version < JNI_VERSION_1_2) {
1784 return JNI_EVERSION;
1785 }
1786 Runtime::Options options;
1787 for (int i = 0; i < args->nOptions; ++i) {
1788 JavaVMOption* option = &args->options[i];
Carl Shapirofc322c72011-07-27 00:20:01 -07001789 options.push_back(std::make_pair(StringPiece(option->optionString),
1790 option->extraInfo));
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001791 }
1792 bool ignore_unrecognized = args->ignoreUnrecognized;
1793 scoped_ptr<Runtime> runtime(Runtime::Create(options, ignore_unrecognized));
1794 if (runtime == NULL) {
1795 return JNI_ERR;
1796 } else {
1797 *p_env = reinterpret_cast<JNIEnv*>(Thread::Current()->GetJniEnv());
1798 *p_vm = reinterpret_cast<JavaVM*>(runtime.release());
1799 return JNI_OK;
1800 }
1801}
1802
1803extern "C" jint JNI_GetCreatedJavaVMs(JavaVM** vmBuf, jsize bufLen,
1804 jsize* nVMs) {
1805 Runtime* runtime = Runtime::Current();
1806 if (runtime == NULL) {
1807 *nVMs = 0;
1808 } else {
1809 *nVMs = 1;
1810 vmBuf[0] = reinterpret_cast<JavaVM*>(runtime);
1811 }
1812 return JNI_OK;
1813}
1814
1815// Historically unsupported.
1816extern "C" jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) {
1817 return JNI_ERR;
1818}
1819
Carl Shapiroea4dca82011-08-01 13:45:38 -07001820jint JniInvokeInterface::DestroyJavaVM(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001821 if (vm == NULL) {
1822 return JNI_ERR;
1823 } else {
1824 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1825 delete runtime;
1826 return JNI_OK;
1827 }
1828}
1829
Carl Shapiroea4dca82011-08-01 13:45:38 -07001830jint JniInvokeInterface::AttachCurrentThread(JavaVM* vm,
1831 JNIEnv** p_env,
1832 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001833 if (vm == NULL || p_env == NULL) {
1834 return JNI_ERR;
1835 }
1836 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001837 const char* name = NULL;
1838 if (thr_args != NULL) {
1839 // TODO: check version
1840 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1841 // TODO: thread group
1842 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001843 bool success = runtime->AttachCurrentThread(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001844 if (!success) {
1845 return JNI_ERR;
1846 } else {
1847 return JNI_OK;
1848 }
1849}
1850
Carl Shapiroea4dca82011-08-01 13:45:38 -07001851jint JniInvokeInterface::DetachCurrentThread(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001852 if (vm == NULL) {
1853 return JNI_ERR;
1854 } else {
1855 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1856 runtime->DetachCurrentThread();
1857 return JNI_OK;
1858 }
1859}
1860
Elliott Hughesb20a5542011-08-12 18:03:12 -07001861jint JniInvokeInterface::GetEnv(JavaVM* vm, void** env, jint version) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001862 if (version < JNI_VERSION_1_1 || version > JNI_VERSION_1_6) {
1863 return JNI_EVERSION;
1864 }
1865 if (vm == NULL || env == NULL) {
1866 return JNI_ERR;
1867 }
1868 Thread* thread = Thread::Current();
1869 if (thread == NULL) {
1870 *env = NULL;
1871 return JNI_EDETACHED;
1872 }
1873 *env = thread->GetJniEnv();
1874 return JNI_OK;
1875}
1876
Carl Shapiroea4dca82011-08-01 13:45:38 -07001877jint JniInvokeInterface::AttachCurrentThreadAsDaemon(JavaVM* vm,
1878 JNIEnv** p_env,
1879 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001880 if (vm == NULL || p_env == NULL) {
1881 return JNI_ERR;
1882 }
1883 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001884 const char* name = NULL;
1885 if (thr_args != NULL) {
1886 // TODO: check version
1887 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1888 // TODO: thread group
1889 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001890 bool success = runtime->AttachCurrentThreadAsDaemon(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001891 if (!success) {
1892 return JNI_ERR;
1893 } else {
1894 return JNI_OK;
1895 }
1896}
1897
Carl Shapiroea4dca82011-08-01 13:45:38 -07001898struct JNIInvokeInterface JniInvokeInterface::invoke_interface_ = {
1899 NULL, // reserved0
1900 NULL, // reserved1
1901 NULL, // reserved2
1902 DestroyJavaVM,
1903 AttachCurrentThread,
1904 DetachCurrentThread,
1905 GetEnv,
1906 AttachCurrentThreadAsDaemon
1907};
1908
Ian Rogersdf20fe02011-07-20 20:34:16 -07001909} // namespace art