blob: f77e4d08236258f871a0d49a39ba4e4755c586c8 [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) {
28 self_ = threadForEnv(env);
29 self_->SetState(Thread::kRunnable);
30 }
31
32 ~ScopedJniThreadState() {
33 self_->SetState(Thread::kNative);
34 }
35
36 Thread* self() {
37 return self_;
38 }
39
40 static Thread* threadForEnv(JNIEnv* env) {
41 // TODO: need replacement for gDvmJni.
42 bool workAroundAppJniBugs = true;
43 Thread* env_self = reinterpret_cast<JNIEnvExt*>(env)->self;
44 Thread* self = workAroundAppJniBugs ? Thread::Current() : env_self;
45 if (self != env_self) {
Elliott Hughes330304d2011-08-12 14:28:05 -070046 LOG(ERROR) << "JNI ERROR: JNIEnv for " << *env_self
47 << " used on " << *self;
48 // TODO: dump stack
Elliott Hughes22f40932011-08-12 13:06:37 -070049 }
50 return self;
51 }
52
53 private:
54 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 Hughes40ef99e2011-08-11 17:44:34 -070063jclass DefineClass(JNIEnv *env, const char *name,
64 jobject loader, const jbyte *buf, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -070065 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070066 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070067 return NULL;
68}
69
Elliott Hughes6b436852011-08-12 10:16:44 -070070// Section 12.3.2 of the JNI spec describes JNI class descriptors. They're
71// separated with slashes but aren't wrapped with "L;" like regular descriptors
72// (i.e. "a/b/C" rather than "La/b/C;"). Arrays of reference types are an
73// exception; there the "L;" must be present ("[La/b/C;"). Historically we've
74// supported names with dots too (such as "a.b.C").
75std::string NormalizeJniClassDescriptor(const char* name) {
76 std::string result;
77 // Add the missing "L;" if necessary.
78 if (name[0] == '[') {
79 result = name;
80 } else {
81 result += 'L';
82 result += name;
83 result += ';';
84 }
85 // Rewrite '.' as '/' for backwards compatibility.
86 for (size_t i = 0; i < result.size(); ++i) {
87 if (result[i] == '.') {
88 result[i] = '/';
89 }
90 }
91 return result;
92}
93
Elliott Hughes40ef99e2011-08-11 17:44:34 -070094jclass FindClass(JNIEnv* env, const char* name) {
Elliott Hughes22f40932011-08-12 13:06:37 -070095 ScopedJniThreadState ts(env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -070096 ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
Elliott Hughes6b436852011-08-12 10:16:44 -070097 std::string descriptor(NormalizeJniClassDescriptor(name));
Elliott Hughes40ef99e2011-08-11 17:44:34 -070098 // TODO: need to get the appropriate ClassLoader.
Elliott Hughes6b436852011-08-12 10:16:44 -070099 Class* c = class_linker->FindClass(descriptor, NULL);
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700100 // TODO: local reference.
101 return reinterpret_cast<jclass>(c);
102}
103
104jmethodID FromReflectedMethod(JNIEnv* env, jobject method) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700105 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700106 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700107 return NULL;
108}
109
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700110jfieldID FromReflectedField(JNIEnv* env, jobject field) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700111 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700112 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700113 return NULL;
114}
115
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700116jobject ToReflectedMethod(JNIEnv* env, jclass cls,
117 jmethodID methodID, jboolean isStatic) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700118 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700119 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700120 return NULL;
121}
122
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700123jclass GetSuperclass(JNIEnv* env, jclass sub) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700124 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700125 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700126 return NULL;
127}
128
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700129jboolean IsAssignableFrom(JNIEnv* env, jclass sub, jclass sup) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700130 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700131 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700132 return JNI_FALSE;
133}
134
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700135jobject ToReflectedField(JNIEnv* env, jclass cls,
136 jfieldID fieldID, jboolean isStatic) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700137 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700138 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700139 return NULL;
140}
141
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700142jint Throw(JNIEnv* env, jthrowable obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700143 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700144 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700145 return 0;
146}
147
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700148jint ThrowNew(JNIEnv* env, jclass clazz, const char* msg) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700149 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700150 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700151 return 0;
152}
153
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700154jthrowable ExceptionOccurred(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700155 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700156 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700157 return NULL;
158}
159
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700160void ExceptionDescribe(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700161 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700162 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700163}
164
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700165void ExceptionClear(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700166 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700167 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700168}
169
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700170void FatalError(JNIEnv* env, const char* msg) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700171 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700172 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700173}
174
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700175jint PushLocalFrame(JNIEnv* env, jint cap) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700176 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700177 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700178 return 0;
179}
180
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700181jobject PopLocalFrame(JNIEnv* env, jobject res) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700182 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700183 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700184 return NULL;
185}
186
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700187jobject NewGlobalRef(JNIEnv* env, jobject lobj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700188 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700189 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700190 return NULL;
191}
192
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700193void DeleteGlobalRef(JNIEnv* env, jobject gref) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700194 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700195 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700196}
197
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700198void DeleteLocalRef(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700199 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700200 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700201}
202
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700203jboolean IsSameObject(JNIEnv* env, jobject obj1, jobject obj2) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700204 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700205 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700206 return JNI_FALSE;
207}
208
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700209jobject NewLocalRef(JNIEnv* env, jobject ref) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700210 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700211 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700212 return NULL;
213}
214
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700215jint EnsureLocalCapacity(JNIEnv* env, jint) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700216 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700217 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700218 return 0;
219}
220
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700221jobject AllocObject(JNIEnv* env, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700222 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700223 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700224 return NULL;
225}
226
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700227jobject NewObject(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700228 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700229 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700230 return NULL;
231}
232
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700233jobject NewObjectV(JNIEnv* env,
234 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700235 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700236 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700237 return NULL;
238}
239
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700240jobject NewObjectA(JNIEnv* env,
241 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700242 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700243 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700244 return NULL;
245}
246
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700247jclass GetObjectClass(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700248 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700249 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700250 return NULL;
251}
252
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700253jboolean IsInstanceOf(JNIEnv* env, jobject obj, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700254 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700255 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700256 return JNI_FALSE;
257}
258
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700259jmethodID GetMethodID(JNIEnv* env,
260 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700261 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700262 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700263 return NULL;
264}
265
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700266jobject CallObjectMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700267 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700268 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700269 return NULL;
270}
271
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700272jobject CallObjectMethodV(JNIEnv* env,
273 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700274 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700275 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700276 return NULL;
277}
278
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700279jobject CallObjectMethodA(JNIEnv* env,
280 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700281 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700282 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700283 return NULL;
284}
285
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700286jboolean CallBooleanMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700287 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700288 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700289 return JNI_FALSE;
290}
291
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700292jboolean CallBooleanMethodV(JNIEnv* env,
293 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700294 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700295 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700296 return JNI_FALSE;
297}
298
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700299jboolean CallBooleanMethodA(JNIEnv* env,
300 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700301 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700302 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700303 return JNI_FALSE;
304}
305
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700306jbyte CallByteMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700307 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700308 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700309 return 0;
310}
311
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700312jbyte CallByteMethodV(JNIEnv* env,
313 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700314 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700315 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700316 return 0;
317}
318
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700319jbyte CallByteMethodA(JNIEnv* env,
320 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700321 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700322 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700323 return 0;
324}
325
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700326jchar CallCharMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700327 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700328 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700329 return 0;
330}
331
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700332jchar CallCharMethodV(JNIEnv* env,
333 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700334 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700335 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700336 return 0;
337}
338
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700339jchar CallCharMethodA(JNIEnv* env,
340 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700341 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700342 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700343 return 0;
344}
345
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700346jshort CallShortMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700347 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700348 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700349 return 0;
350}
351
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700352jshort CallShortMethodV(JNIEnv* env,
353 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700354 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700355 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700356 return 0;
357}
358
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700359jshort CallShortMethodA(JNIEnv* env,
360 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700361 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700362 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700363 return 0;
364}
365
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700366jint CallIntMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700367 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700368 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700369 return 0;
370}
371
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700372jint CallIntMethodV(JNIEnv* env,
373 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700374 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700375 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700376 return 0;
377}
378
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700379jint CallIntMethodA(JNIEnv* env,
380 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700381 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700382 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700383 return 0;
384}
385
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700386jlong CallLongMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700387 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700388 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700389 return 0;
390}
391
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700392jlong CallLongMethodV(JNIEnv* env,
393 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700394 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700395 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700396 return 0;
397}
398
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700399jlong CallLongMethodA(JNIEnv* env,
400 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700401 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700402 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700403 return 0;
404}
405
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700406jfloat CallFloatMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700407 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700408 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700409 return 0;
410}
411
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700412jfloat CallFloatMethodV(JNIEnv* env,
413 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700414 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700415 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700416 return 0;
417}
418
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700419jfloat CallFloatMethodA(JNIEnv* env,
420 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700421 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700422 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700423 return 0;
424}
425
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700426jdouble CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700427 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700428 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700429 return 0;
430}
431
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700432jdouble CallDoubleMethodV(JNIEnv* env,
433 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700434 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700435 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700436 return 0;
437}
438
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700439jdouble CallDoubleMethodA(JNIEnv* env,
440 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700441 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700442 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700443 return 0;
444}
445
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700446void CallVoidMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700447 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700448 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700449}
450
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700451void CallVoidMethodV(JNIEnv* env, jobject obj,
452 jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700453 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700454 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700455}
456
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700457void CallVoidMethodA(JNIEnv* env, jobject obj,
458 jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700459 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700460 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700461}
462
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700463jobject CallNonvirtualObjectMethod(JNIEnv* env,
464 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700465 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700466 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700467 return NULL;
468}
469
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700470jobject CallNonvirtualObjectMethodV(JNIEnv* env,
471 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700472 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700473 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700474 return NULL;
475}
476
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700477jobject CallNonvirtualObjectMethodA(JNIEnv* env,
478 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700479 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700480 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700481 return NULL;
482}
483
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700484jboolean CallNonvirtualBooleanMethod(JNIEnv* env,
485 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700486 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700487 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700488 return JNI_FALSE;
489}
490
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700491jboolean CallNonvirtualBooleanMethodV(JNIEnv* env,
492 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700493 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700494 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700495 return JNI_FALSE;
496}
497
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700498jboolean CallNonvirtualBooleanMethodA(JNIEnv* env,
499 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700500 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700501 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700502 return JNI_FALSE;
503}
504
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700505jbyte CallNonvirtualByteMethod(JNIEnv* env,
506 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700507 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700508 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700509 return 0;
510}
511
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700512jbyte CallNonvirtualByteMethodV(JNIEnv* env,
513 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700514 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700515 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700516 return 0;
517}
518
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700519jbyte CallNonvirtualByteMethodA(JNIEnv* env,
520 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700521 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700522 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700523 return 0;
524}
525
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700526jchar CallNonvirtualCharMethod(JNIEnv* env,
527 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700528 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700529 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700530 return 0;
531}
532
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700533jchar CallNonvirtualCharMethodV(JNIEnv* env,
534 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700535 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700536 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700537 return 0;
538}
539
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700540jchar CallNonvirtualCharMethodA(JNIEnv* env,
541 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700542 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700543 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700544 return 0;
545}
546
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700547jshort CallNonvirtualShortMethod(JNIEnv* env,
548 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700549 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700550 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700551 return 0;
552}
553
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700554jshort CallNonvirtualShortMethodV(JNIEnv* env,
555 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700556 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700557 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700558 return 0;
559}
560
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700561jshort CallNonvirtualShortMethodA(JNIEnv* env,
562 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700563 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700564 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700565 return 0;
566}
567
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700568jint CallNonvirtualIntMethod(JNIEnv* env,
569 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700570 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700571 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700572 return 0;
573}
574
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700575jint CallNonvirtualIntMethodV(JNIEnv* env,
576 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700577 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700578 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700579 return 0;
580}
581
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700582jint CallNonvirtualIntMethodA(JNIEnv* env,
583 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700584 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700585 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700586 return 0;
587}
588
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700589jlong CallNonvirtualLongMethod(JNIEnv* env,
590 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700591 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700592 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700593 return 0;
594}
595
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700596jlong CallNonvirtualLongMethodV(JNIEnv* env,
597 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700598 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700599 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700600 return 0;
601}
602
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700603jlong CallNonvirtualLongMethodA(JNIEnv* env,
604 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700605 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700606 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700607 return 0;
608}
609
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700610jfloat CallNonvirtualFloatMethod(JNIEnv* env,
611 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700612 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700613 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700614 return 0;
615}
616
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700617jfloat CallNonvirtualFloatMethodV(JNIEnv* env,
618 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700619 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700620 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700621 return 0;
622}
623
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700624jfloat CallNonvirtualFloatMethodA(JNIEnv* env,
625 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700626 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700627 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700628 return 0;
629}
630
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700631jdouble CallNonvirtualDoubleMethod(JNIEnv* env,
632 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700633 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700634 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700635 return 0;
636}
637
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700638jdouble CallNonvirtualDoubleMethodV(JNIEnv* env,
639 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700640 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700641 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700642 return 0;
643}
644
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700645jdouble CallNonvirtualDoubleMethodA(JNIEnv* env,
646 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700647 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700648 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700649 return 0;
650}
651
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700652void CallNonvirtualVoidMethod(JNIEnv* env,
653 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700654 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700655 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700656}
657
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700658void CallNonvirtualVoidMethodV(JNIEnv* env,
659 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700660 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700661 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700662}
663
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700664void CallNonvirtualVoidMethodA(JNIEnv* env,
665 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700666 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700667 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700668}
669
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700670jfieldID GetFieldID(JNIEnv* env,
671 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700672 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700673 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700674 return NULL;
675}
676
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700677jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700678 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700679 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700680 return NULL;
681}
682
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700683jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700684 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700685 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700686 return JNI_FALSE;
687}
688
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700689jbyte GetByteField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700690 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700691 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700692 return 0;
693}
694
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700695jchar GetCharField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700696 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700697 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700698 return 0;
699}
700
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700701jshort GetShortField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700702 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700703 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700704 return 0;
705}
706
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700707jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700708 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700709 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700710 return 0;
711}
712
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700713jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700714 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700715 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700716 return 0;
717}
718
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700719jfloat GetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700720 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700721 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700722 return 0;
723}
724
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700725jdouble GetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700726 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700727 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700728 return 0;
729}
730
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700731void SetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID, jobject val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700732 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700733 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700734}
735
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700736void SetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID, jboolean val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700737 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700738 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700739}
740
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700741void SetByteField(JNIEnv* env, jobject obj, jfieldID fieldID, jbyte val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700742 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700743 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700744}
745
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700746void SetCharField(JNIEnv* env, jobject obj, jfieldID fieldID, jchar val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700747 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700748 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700749}
750
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700751void SetShortField(JNIEnv* env, jobject obj, jfieldID fieldID, jshort val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700752 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700753 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700754}
755
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700756void SetIntField(JNIEnv* env, jobject obj, jfieldID fieldID, jint val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700757 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700758 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700759}
760
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700761void SetLongField(JNIEnv* env, jobject obj, jfieldID fieldID, jlong val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700762 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700763 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700764}
765
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700766void SetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID, jfloat val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700767 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700768 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700769}
770
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700771void SetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID, jdouble val) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700772 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700773 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700774}
775
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700776jmethodID GetStaticMethodID(JNIEnv* env,
777 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700778 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700779 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700780 return NULL;
781}
782
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700783jobject CallStaticObjectMethod(JNIEnv* env,
784 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700785 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700786 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700787 return NULL;
788}
789
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700790jobject CallStaticObjectMethodV(JNIEnv* env,
791 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700792 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700793 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700794 return NULL;
795}
796
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700797jobject CallStaticObjectMethodA(JNIEnv* env,
798 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700799 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700800 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700801 return NULL;
802}
803
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700804jboolean CallStaticBooleanMethod(JNIEnv* env,
805 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700806 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700807 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700808 return JNI_FALSE;
809}
810
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700811jboolean CallStaticBooleanMethodV(JNIEnv* env,
812 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700813 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700814 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700815 return JNI_FALSE;
816}
817
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700818jboolean CallStaticBooleanMethodA(JNIEnv* env,
819 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700820 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700821 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700822 return JNI_FALSE;
823}
824
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700825jbyte CallStaticByteMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700826 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700827 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700828 return 0;
829}
830
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700831jbyte CallStaticByteMethodV(JNIEnv* env,
832 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700833 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700834 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700835 return 0;
836}
837
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700838jbyte CallStaticByteMethodA(JNIEnv* env,
839 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700840 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700841 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700842 return 0;
843}
844
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700845jchar CallStaticCharMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700846 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700847 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700848 return 0;
849}
850
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700851jchar CallStaticCharMethodV(JNIEnv* env,
852 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700853 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700854 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700855 return 0;
856}
857
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700858jchar CallStaticCharMethodA(JNIEnv* env,
859 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700860 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700861 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700862 return 0;
863}
864
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700865jshort CallStaticShortMethod(JNIEnv* env,
866 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700867 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700868 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700869 return 0;
870}
871
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700872jshort CallStaticShortMethodV(JNIEnv* env,
873 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700874 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700875 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700876 return 0;
877}
878
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700879jshort CallStaticShortMethodA(JNIEnv* env,
880 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700881 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700882 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700883 return 0;
884}
885
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700886jint CallStaticIntMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700887 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700888 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700889 return 0;
890}
891
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700892jint CallStaticIntMethodV(JNIEnv* env,
893 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700894 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700895 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700896 return 0;
897}
898
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700899jint CallStaticIntMethodA(JNIEnv* env,
900 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700901 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700902 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700903 return 0;
904}
905
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700906jlong CallStaticLongMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700907 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700908 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700909 return 0;
910}
911
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700912jlong CallStaticLongMethodV(JNIEnv* env,
913 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700914 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700915 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700916 return 0;
917}
918
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700919jlong CallStaticLongMethodA(JNIEnv* env,
920 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700921 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700922 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700923 return 0;
924}
925
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700926jfloat CallStaticFloatMethod(JNIEnv* env,
927 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700928 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700929 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700930 return 0;
931}
932
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700933jfloat CallStaticFloatMethodV(JNIEnv* env,
934 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700935 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700936 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700937 return 0;
938}
939
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700940jfloat CallStaticFloatMethodA(JNIEnv* env,
941 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700942 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700943 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700944 return 0;
945}
946
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700947jdouble CallStaticDoubleMethod(JNIEnv* env,
948 jclass clazz, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700949 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700950 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700951 return 0;
952}
953
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700954jdouble CallStaticDoubleMethodV(JNIEnv* env,
955 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700956 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700957 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700958 return 0;
959}
960
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700961jdouble CallStaticDoubleMethodA(JNIEnv* env,
962 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700963 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700964 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700965 return 0;
966}
967
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700968void CallStaticVoidMethod(JNIEnv* env, jclass cls, jmethodID methodID, ...) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700969 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700970 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700971}
972
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700973void CallStaticVoidMethodV(JNIEnv* env,
974 jclass cls, jmethodID methodID, va_list args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700975 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700976 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700977}
978
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700979void CallStaticVoidMethodA(JNIEnv* env,
980 jclass cls, jmethodID methodID, jvalue* args) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700981 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700982 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700983}
984
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700985jfieldID GetStaticFieldID(JNIEnv* env,
986 jclass clazz, const char* name, const char* sig) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700987 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700988 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700989 return 0;
990}
991
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700992jobject GetStaticObjectField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700993 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700994 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700995 return NULL;
996}
997
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700998jboolean GetStaticBooleanField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -0700999 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001000 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001001 return JNI_FALSE;
1002}
1003
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001004jbyte GetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001005 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001006 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001007 return 0;
1008}
1009
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001010jchar GetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001011 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001012 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001013 return 0;
1014}
1015
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001016jshort GetStaticShortField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001017 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001018 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001019 return 0;
1020}
1021
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001022jint GetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001023 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001024 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001025 return 0;
1026}
1027
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001028jlong GetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001029 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001030 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001031 return 0;
1032}
1033
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001034jfloat GetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001035 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001036 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001037 return 0;
1038}
1039
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001040jdouble GetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001041 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001042 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001043 return 0;
1044}
1045
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001046void SetStaticObjectField(JNIEnv* env,
1047 jclass clazz, jfieldID fieldID, jobject value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001048 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001049 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001050}
1051
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001052void SetStaticBooleanField(JNIEnv* env,
1053 jclass clazz, jfieldID fieldID, jboolean value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001054 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001055 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001056}
1057
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001058void SetStaticByteField(JNIEnv* env,
1059 jclass clazz, jfieldID fieldID, jbyte value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001060 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001061 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001062}
1063
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001064void SetStaticCharField(JNIEnv* env,
1065 jclass clazz, jfieldID fieldID, jchar value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001066 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001067 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001068}
1069
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001070void SetStaticShortField(JNIEnv* env,
1071 jclass clazz, jfieldID fieldID, jshort value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001072 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001073 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001074}
1075
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001076void SetStaticIntField(JNIEnv* env,
1077 jclass clazz, jfieldID fieldID, jint value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001078 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001079 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001080}
1081
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001082void SetStaticLongField(JNIEnv* env,
1083 jclass clazz, jfieldID fieldID, jlong value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001084 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001085 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001086}
1087
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001088void SetStaticFloatField(JNIEnv* env,
1089 jclass clazz, jfieldID fieldID, jfloat value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001090 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001091 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001092}
1093
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001094void SetStaticDoubleField(JNIEnv* env,
1095 jclass clazz, jfieldID fieldID, jdouble value) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001096 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001097 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001098}
1099
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001100jstring NewString(JNIEnv* env, const jchar* unicode, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001101 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001102 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001103 return NULL;
1104}
1105
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001106jsize GetStringLength(JNIEnv* env, jstring str) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001107 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001108 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001109 return 0;
1110}
1111
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001112const jchar* GetStringChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001113 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001114 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001115 return NULL;
1116}
1117
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001118void ReleaseStringChars(JNIEnv* env, jstring str, const jchar* chars) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001119 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001120 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001121}
1122
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001123jstring NewStringUTF(JNIEnv* env, const char* utf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001124 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001125 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001126 return NULL;
1127}
1128
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001129jsize GetStringUTFLength(JNIEnv* env, jstring str) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001130 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001131 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001132 return 0;
1133}
1134
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001135const char* GetStringUTFChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001136 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001137 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001138 return NULL;
1139}
1140
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001141void ReleaseStringUTFChars(JNIEnv* env, jstring str, const char* chars) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001142 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001143 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001144}
1145
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001146jsize GetArrayLength(JNIEnv* env, jarray array) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001147 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001148 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001149 return 0;
1150}
1151
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001152jobjectArray NewObjectArray(JNIEnv* env,
1153 jsize len, jclass clazz, jobject init) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001154 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001155 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001156 return NULL;
1157}
1158
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001159jobject GetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001160 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001161 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001162 return NULL;
1163}
1164
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001165void SetObjectArrayElement(JNIEnv* env,
1166 jobjectArray array, jsize index, jobject val) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001167 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001168 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001169}
1170
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001171jbooleanArray NewBooleanArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001172 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001173 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001174 return NULL;
1175}
1176
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001177jbyteArray NewByteArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001178 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001179 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001180 return NULL;
1181}
1182
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001183jcharArray NewCharArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001184 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001185 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001186 return NULL;
1187}
1188
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001189jshortArray NewShortArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001190 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001191 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001192 return NULL;
1193}
1194
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001195jintArray NewIntArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001196 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001197 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001198 return NULL;
1199}
1200
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001201jlongArray NewLongArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001202 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001203 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001204 return NULL;
1205}
1206
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001207jfloatArray NewFloatArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001208 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001209 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001210 return NULL;
1211}
1212
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001213jdoubleArray NewDoubleArray(JNIEnv* env, jsize len) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001214 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001215 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001216 return NULL;
1217}
1218
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001219jboolean* GetBooleanArrayElements(JNIEnv* env,
1220 jbooleanArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001221 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001222 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001223 return NULL;
1224}
1225
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001226jbyte* GetByteArrayElements(JNIEnv* env, jbyteArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001227 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001228 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001229 return NULL;
1230}
1231
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001232jchar* GetCharArrayElements(JNIEnv* env, jcharArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001233 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001234 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001235 return NULL;
1236}
1237
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001238jshort* GetShortArrayElements(JNIEnv* env,
1239 jshortArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001240 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001241 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001242 return NULL;
1243}
1244
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001245jint* GetIntArrayElements(JNIEnv* env, jintArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001246 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001247 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001248 return NULL;
1249}
1250
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001251jlong* GetLongArrayElements(JNIEnv* env, jlongArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001252 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001253 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001254 return NULL;
1255}
1256
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001257jfloat* GetFloatArrayElements(JNIEnv* env,
1258 jfloatArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001259 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001260 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001261 return NULL;
1262}
1263
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001264jdouble* GetDoubleArrayElements(JNIEnv* env,
1265 jdoubleArray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001266 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001267 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001268 return NULL;
1269}
1270
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001271void ReleaseBooleanArrayElements(JNIEnv* env,
1272 jbooleanArray array, jboolean* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001273 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001274 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001275}
1276
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001277void ReleaseByteArrayElements(JNIEnv* env,
1278 jbyteArray array, jbyte* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001279 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001280 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001281}
1282
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001283void ReleaseCharArrayElements(JNIEnv* env,
1284 jcharArray array, jchar* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001285 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001286 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001287}
1288
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001289void ReleaseShortArrayElements(JNIEnv* env,
1290 jshortArray array, jshort* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001291 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001292 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001293}
1294
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001295void ReleaseIntArrayElements(JNIEnv* env,
1296 jintArray array, jint* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001297 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001298 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001299}
1300
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001301void ReleaseLongArrayElements(JNIEnv* env,
1302 jlongArray array, jlong* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001303 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001304 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001305}
1306
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001307void ReleaseFloatArrayElements(JNIEnv* env,
1308 jfloatArray array, jfloat* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001309 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001310 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001311}
1312
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001313void ReleaseDoubleArrayElements(JNIEnv* env,
1314 jdoubleArray array, jdouble* elems, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001315 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001316 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001317}
1318
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001319void GetBooleanArrayRegion(JNIEnv* env,
1320 jbooleanArray array, jsize start, jsize l, jboolean* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001321 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001322 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001323}
1324
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001325void GetByteArrayRegion(JNIEnv* env,
1326 jbyteArray array, jsize start, jsize len, jbyte* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001327 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001328 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001329}
1330
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001331void GetCharArrayRegion(JNIEnv* env,
1332 jcharArray array, jsize start, jsize len, jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001333 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001334 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001335}
1336
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001337void GetShortArrayRegion(JNIEnv* env,
1338 jshortArray array, jsize start, jsize len, jshort* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001339 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001340 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001341}
1342
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001343void GetIntArrayRegion(JNIEnv* env,
1344 jintArray array, jsize start, jsize len, jint* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001345 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001346 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001347}
1348
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001349void GetLongArrayRegion(JNIEnv* env,
1350 jlongArray array, jsize start, jsize len, jlong* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001351 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001352 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001353}
1354
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001355void GetFloatArrayRegion(JNIEnv* env,
1356 jfloatArray array, jsize start, jsize len, jfloat* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001357 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001358 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001359}
1360
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001361void GetDoubleArrayRegion(JNIEnv* env,
1362 jdoubleArray array, jsize start, jsize len, jdouble* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001363 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001364 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001365}
1366
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001367void SetBooleanArrayRegion(JNIEnv* env,
1368 jbooleanArray array, jsize start, jsize l, const jboolean* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001369 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001370 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001371}
1372
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001373void SetByteArrayRegion(JNIEnv* env,
1374 jbyteArray array, jsize start, jsize len, const jbyte* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001375 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001376 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001377}
1378
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001379void SetCharArrayRegion(JNIEnv* env,
1380 jcharArray array, jsize start, jsize len, const jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001381 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001382 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001383}
1384
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001385void SetShortArrayRegion(JNIEnv* env,
1386 jshortArray array, jsize start, jsize len, const jshort* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001387 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001388 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001389}
1390
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001391void SetIntArrayRegion(JNIEnv* env,
1392 jintArray array, jsize start, jsize len, const jint* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001393 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001394 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001395}
1396
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001397void SetLongArrayRegion(JNIEnv* env,
1398 jlongArray array, jsize start, jsize len, const jlong* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001399 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001400 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001401}
1402
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001403void SetFloatArrayRegion(JNIEnv* env,
1404 jfloatArray array, jsize start, jsize len, const jfloat* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001405 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001406 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001407}
1408
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001409void SetDoubleArrayRegion(JNIEnv* env,
1410 jdoubleArray array, jsize start, jsize len, const jdouble* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001411 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001412 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001413}
1414
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001415jint RegisterNatives(JNIEnv* env,
1416 jclass clazz, const JNINativeMethod* methods, jint nMethods) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001417 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001418 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001419 return 0;
1420}
1421
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001422jint UnregisterNatives(JNIEnv* env, jclass clazz) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001423 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001424 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001425 return 0;
1426}
1427
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001428jint MonitorEnter(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001429 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001430 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001431 return 0;
1432}
1433
1434jint MonitorExit(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001435 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001436 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001437 return 0;
1438}
1439
1440jint GetJavaVM(JNIEnv* env, JavaVM* *vm) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001441 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001442 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001443 return 0;
1444}
1445
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001446void GetStringRegion(JNIEnv* env,
1447 jstring str, jsize start, jsize len, jchar* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001448 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001449 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001450}
1451
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001452void GetStringUTFRegion(JNIEnv* env,
1453 jstring str, jsize start, jsize len, char* buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001454 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001455 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001456}
1457
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001458void* GetPrimitiveArrayCritical(JNIEnv* env,
1459 jarray array, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001460 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001461 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001462 return NULL;
1463}
1464
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001465void ReleasePrimitiveArrayCritical(JNIEnv* env,
1466 jarray array, void* carray, jint mode) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001467 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001468 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001469}
1470
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001471const jchar* GetStringCritical(JNIEnv* env, jstring s, jboolean* isCopy) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001472 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001473 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001474 return NULL;
1475}
1476
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001477void ReleaseStringCritical(JNIEnv* env, jstring s, const jchar* cstr) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001478 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001479 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001480}
1481
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001482jweak NewWeakGlobalRef(JNIEnv* env, jobject obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001483 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001484 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001485 return NULL;
1486}
1487
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001488void DeleteWeakGlobalRef(JNIEnv* env, jweak obj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001489 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001490 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001491}
1492
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001493jboolean ExceptionCheck(JNIEnv* env) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001494 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001495 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001496 return JNI_FALSE;
1497}
1498
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001499jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001500 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001501 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001502 return NULL;
1503}
1504
1505
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001506void* GetDirectBufferAddress(JNIEnv* env, jobject buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001507 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001508 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001509 return NULL;
1510}
1511
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001512jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001513 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001514 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001515 return 0;
1516}
1517
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001518jobjectRefType GetObjectRefType(JNIEnv* env, jobject jobj) {
Elliott Hughes22f40932011-08-12 13:06:37 -07001519 ScopedJniThreadState ts(env);
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001520 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001521 return JNIInvalidRefType;
1522}
1523
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001524static const struct JNINativeInterface gNativeInterface = {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001525 NULL, // reserved0.
1526 NULL, // reserved1.
1527 NULL, // reserved2.
1528 NULL, // reserved3.
1529 GetVersion,
1530 DefineClass,
1531 FindClass,
1532 FromReflectedMethod,
1533 FromReflectedField,
1534 ToReflectedMethod,
1535 GetSuperclass,
1536 IsAssignableFrom,
1537 ToReflectedField,
1538 Throw,
1539 ThrowNew,
1540 ExceptionOccurred,
1541 ExceptionDescribe,
1542 ExceptionClear,
1543 FatalError,
1544 PushLocalFrame,
1545 PopLocalFrame,
1546 NewGlobalRef,
1547 DeleteGlobalRef,
1548 DeleteLocalRef,
1549 IsSameObject,
1550 NewLocalRef,
1551 EnsureLocalCapacity,
1552 AllocObject,
1553 NewObject,
1554 NewObjectV,
1555 NewObjectA,
1556 GetObjectClass,
1557 IsInstanceOf,
1558 GetMethodID,
1559 CallObjectMethod,
1560 CallObjectMethodV,
1561 CallObjectMethodA,
1562 CallBooleanMethod,
1563 CallBooleanMethodV,
1564 CallBooleanMethodA,
1565 CallByteMethod,
1566 CallByteMethodV,
1567 CallByteMethodA,
1568 CallCharMethod,
1569 CallCharMethodV,
1570 CallCharMethodA,
1571 CallShortMethod,
1572 CallShortMethodV,
1573 CallShortMethodA,
1574 CallIntMethod,
1575 CallIntMethodV,
1576 CallIntMethodA,
1577 CallLongMethod,
1578 CallLongMethodV,
1579 CallLongMethodA,
1580 CallFloatMethod,
1581 CallFloatMethodV,
1582 CallFloatMethodA,
1583 CallDoubleMethod,
1584 CallDoubleMethodV,
1585 CallDoubleMethodA,
1586 CallVoidMethod,
1587 CallVoidMethodV,
1588 CallVoidMethodA,
1589 CallNonvirtualObjectMethod,
1590 CallNonvirtualObjectMethodV,
1591 CallNonvirtualObjectMethodA,
1592 CallNonvirtualBooleanMethod,
1593 CallNonvirtualBooleanMethodV,
1594 CallNonvirtualBooleanMethodA,
1595 CallNonvirtualByteMethod,
1596 CallNonvirtualByteMethodV,
1597 CallNonvirtualByteMethodA,
1598 CallNonvirtualCharMethod,
1599 CallNonvirtualCharMethodV,
1600 CallNonvirtualCharMethodA,
1601 CallNonvirtualShortMethod,
1602 CallNonvirtualShortMethodV,
1603 CallNonvirtualShortMethodA,
1604 CallNonvirtualIntMethod,
1605 CallNonvirtualIntMethodV,
1606 CallNonvirtualIntMethodA,
1607 CallNonvirtualLongMethod,
1608 CallNonvirtualLongMethodV,
1609 CallNonvirtualLongMethodA,
1610 CallNonvirtualFloatMethod,
1611 CallNonvirtualFloatMethodV,
1612 CallNonvirtualFloatMethodA,
1613 CallNonvirtualDoubleMethod,
1614 CallNonvirtualDoubleMethodV,
1615 CallNonvirtualDoubleMethodA,
1616 CallNonvirtualVoidMethod,
1617 CallNonvirtualVoidMethodV,
1618 CallNonvirtualVoidMethodA,
1619 GetFieldID,
1620 GetObjectField,
1621 GetBooleanField,
1622 GetByteField,
1623 GetCharField,
1624 GetShortField,
1625 GetIntField,
1626 GetLongField,
1627 GetFloatField,
1628 GetDoubleField,
1629 SetObjectField,
1630 SetBooleanField,
1631 SetByteField,
1632 SetCharField,
1633 SetShortField,
1634 SetIntField,
1635 SetLongField,
1636 SetFloatField,
1637 SetDoubleField,
1638 GetStaticMethodID,
1639 CallStaticObjectMethod,
1640 CallStaticObjectMethodV,
1641 CallStaticObjectMethodA,
1642 CallStaticBooleanMethod,
1643 CallStaticBooleanMethodV,
1644 CallStaticBooleanMethodA,
1645 CallStaticByteMethod,
1646 CallStaticByteMethodV,
1647 CallStaticByteMethodA,
1648 CallStaticCharMethod,
1649 CallStaticCharMethodV,
1650 CallStaticCharMethodA,
1651 CallStaticShortMethod,
1652 CallStaticShortMethodV,
1653 CallStaticShortMethodA,
1654 CallStaticIntMethod,
1655 CallStaticIntMethodV,
1656 CallStaticIntMethodA,
1657 CallStaticLongMethod,
1658 CallStaticLongMethodV,
1659 CallStaticLongMethodA,
1660 CallStaticFloatMethod,
1661 CallStaticFloatMethodV,
1662 CallStaticFloatMethodA,
1663 CallStaticDoubleMethod,
1664 CallStaticDoubleMethodV,
1665 CallStaticDoubleMethodA,
1666 CallStaticVoidMethod,
1667 CallStaticVoidMethodV,
1668 CallStaticVoidMethodA,
1669 GetStaticFieldID,
1670 GetStaticObjectField,
1671 GetStaticBooleanField,
1672 GetStaticByteField,
1673 GetStaticCharField,
1674 GetStaticShortField,
1675 GetStaticIntField,
1676 GetStaticLongField,
1677 GetStaticFloatField,
1678 GetStaticDoubleField,
1679 SetStaticObjectField,
1680 SetStaticBooleanField,
1681 SetStaticByteField,
1682 SetStaticCharField,
1683 SetStaticShortField,
1684 SetStaticIntField,
1685 SetStaticLongField,
1686 SetStaticFloatField,
1687 SetStaticDoubleField,
1688 NewString,
1689 GetStringLength,
1690 GetStringChars,
1691 ReleaseStringChars,
1692 NewStringUTF,
1693 GetStringUTFLength,
1694 GetStringUTFChars,
1695 ReleaseStringUTFChars,
1696 GetArrayLength,
1697 NewObjectArray,
1698 GetObjectArrayElement,
1699 SetObjectArrayElement,
1700 NewBooleanArray,
1701 NewByteArray,
1702 NewCharArray,
1703 NewShortArray,
1704 NewIntArray,
1705 NewLongArray,
1706 NewFloatArray,
1707 NewDoubleArray,
1708 GetBooleanArrayElements,
1709 GetByteArrayElements,
1710 GetCharArrayElements,
1711 GetShortArrayElements,
1712 GetIntArrayElements,
1713 GetLongArrayElements,
1714 GetFloatArrayElements,
1715 GetDoubleArrayElements,
1716 ReleaseBooleanArrayElements,
1717 ReleaseByteArrayElements,
1718 ReleaseCharArrayElements,
1719 ReleaseShortArrayElements,
1720 ReleaseIntArrayElements,
1721 ReleaseLongArrayElements,
1722 ReleaseFloatArrayElements,
1723 ReleaseDoubleArrayElements,
1724 GetBooleanArrayRegion,
1725 GetByteArrayRegion,
1726 GetCharArrayRegion,
1727 GetShortArrayRegion,
1728 GetIntArrayRegion,
1729 GetLongArrayRegion,
1730 GetFloatArrayRegion,
1731 GetDoubleArrayRegion,
1732 SetBooleanArrayRegion,
1733 SetByteArrayRegion,
1734 SetCharArrayRegion,
1735 SetShortArrayRegion,
1736 SetIntArrayRegion,
1737 SetLongArrayRegion,
1738 SetFloatArrayRegion,
1739 SetDoubleArrayRegion,
1740 RegisterNatives,
1741 UnregisterNatives,
1742 MonitorEnter,
1743 MonitorExit,
1744 GetJavaVM,
1745 GetStringRegion,
1746 GetStringUTFRegion,
1747 GetPrimitiveArrayCritical,
1748 ReleasePrimitiveArrayCritical,
1749 GetStringCritical,
1750 ReleaseStringCritical,
1751 NewWeakGlobalRef,
1752 DeleteWeakGlobalRef,
1753 ExceptionCheck,
1754 NewDirectByteBuffer,
1755 GetDirectBufferAddress,
1756 GetDirectBufferCapacity,
1757 GetObjectRefType,
1758};
1759
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001760void MonitorEnterHelper(JNIEnv* env, jobject obj) {
Elliott Hughes330304d2011-08-12 14:28:05 -07001761 CHECK_EQ(Thread::Current()->GetJniEnv(), env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001762 MonitorEnter(env, obj); // Ignore the result.
1763}
1764
1765void MonitorExitHelper(JNIEnv* env, jobject obj) {
Elliott Hughes330304d2011-08-12 14:28:05 -07001766 CHECK_EQ(Thread::Current()->GetJniEnv(), env);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001767 MonitorExit(env, obj); // Ignore the result.
1768}
1769
1770JNIEnv* CreateJNIEnv() {
Elliott Hughes330304d2011-08-12 14:28:05 -07001771 Thread* self = Thread::Current();
1772 CHECK(self != NULL);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001773 JNIEnvExt* result = (JNIEnvExt*) calloc(1, sizeof(JNIEnvExt));
1774 result->fns = &gNativeInterface;
Elliott Hughes330304d2011-08-12 14:28:05 -07001775 result->self = self;
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001776 result->MonitorEnterHelper = &MonitorEnterHelper;
1777 result->MonitorExitHelper = &MonitorExitHelper;
1778 return reinterpret_cast<JNIEnv*>(result);
1779}
1780
Carl Shapiroea4dca82011-08-01 13:45:38 -07001781// JNI Invocation interface.
1782
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001783extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, void** p_env, void* vm_args) {
1784 const JavaVMInitArgs* args = static_cast<JavaVMInitArgs*>(vm_args);
1785 if (args->version < JNI_VERSION_1_2) {
1786 return JNI_EVERSION;
1787 }
1788 Runtime::Options options;
1789 for (int i = 0; i < args->nOptions; ++i) {
1790 JavaVMOption* option = &args->options[i];
Carl Shapirofc322c72011-07-27 00:20:01 -07001791 options.push_back(std::make_pair(StringPiece(option->optionString),
1792 option->extraInfo));
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001793 }
1794 bool ignore_unrecognized = args->ignoreUnrecognized;
1795 scoped_ptr<Runtime> runtime(Runtime::Create(options, ignore_unrecognized));
1796 if (runtime == NULL) {
1797 return JNI_ERR;
1798 } else {
1799 *p_env = reinterpret_cast<JNIEnv*>(Thread::Current()->GetJniEnv());
1800 *p_vm = reinterpret_cast<JavaVM*>(runtime.release());
1801 return JNI_OK;
1802 }
1803}
1804
1805extern "C" jint JNI_GetCreatedJavaVMs(JavaVM** vmBuf, jsize bufLen,
1806 jsize* nVMs) {
1807 Runtime* runtime = Runtime::Current();
1808 if (runtime == NULL) {
1809 *nVMs = 0;
1810 } else {
1811 *nVMs = 1;
1812 vmBuf[0] = reinterpret_cast<JavaVM*>(runtime);
1813 }
1814 return JNI_OK;
1815}
1816
1817// Historically unsupported.
1818extern "C" jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) {
1819 return JNI_ERR;
1820}
1821
Carl Shapiroea4dca82011-08-01 13:45:38 -07001822jint JniInvokeInterface::DestroyJavaVM(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001823 if (vm == NULL) {
1824 return JNI_ERR;
1825 } else {
1826 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1827 delete runtime;
1828 return JNI_OK;
1829 }
1830}
1831
Carl Shapiroea4dca82011-08-01 13:45:38 -07001832jint JniInvokeInterface::AttachCurrentThread(JavaVM* vm,
1833 JNIEnv** p_env,
1834 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001835 if (vm == NULL || p_env == NULL) {
1836 return JNI_ERR;
1837 }
1838 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001839 const char* name = NULL;
1840 if (thr_args != NULL) {
1841 // TODO: check version
1842 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1843 // TODO: thread group
1844 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001845 bool success = runtime->AttachCurrentThread(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001846 if (!success) {
1847 return JNI_ERR;
1848 } else {
1849 return JNI_OK;
1850 }
1851}
1852
Carl Shapiroea4dca82011-08-01 13:45:38 -07001853jint JniInvokeInterface::DetachCurrentThread(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001854 if (vm == NULL) {
1855 return JNI_ERR;
1856 } else {
1857 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1858 runtime->DetachCurrentThread();
1859 return JNI_OK;
1860 }
1861}
1862
Carl Shapiroea4dca82011-08-01 13:45:38 -07001863jint JniInvokeInterface::GetEnv(JavaVM *vm, void **env, jint version) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001864 if (version < JNI_VERSION_1_1 || version > JNI_VERSION_1_6) {
1865 return JNI_EVERSION;
1866 }
1867 if (vm == NULL || env == NULL) {
1868 return JNI_ERR;
1869 }
1870 Thread* thread = Thread::Current();
1871 if (thread == NULL) {
1872 *env = NULL;
1873 return JNI_EDETACHED;
1874 }
1875 *env = thread->GetJniEnv();
1876 return JNI_OK;
1877}
1878
Carl Shapiroea4dca82011-08-01 13:45:38 -07001879jint JniInvokeInterface::AttachCurrentThreadAsDaemon(JavaVM* vm,
1880 JNIEnv** p_env,
1881 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001882 if (vm == NULL || p_env == NULL) {
1883 return JNI_ERR;
1884 }
1885 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001886 const char* name = NULL;
1887 if (thr_args != NULL) {
1888 // TODO: check version
1889 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1890 // TODO: thread group
1891 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001892 bool success = runtime->AttachCurrentThreadAsDaemon(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001893 if (!success) {
1894 return JNI_ERR;
1895 } else {
1896 return JNI_OK;
1897 }
1898}
1899
Carl Shapiroea4dca82011-08-01 13:45:38 -07001900struct JNIInvokeInterface JniInvokeInterface::invoke_interface_ = {
1901 NULL, // reserved0
1902 NULL, // reserved1
1903 NULL, // reserved2
1904 DestroyJavaVM,
1905 AttachCurrentThread,
1906 DetachCurrentThread,
1907 GetEnv,
1908 AttachCurrentThreadAsDaemon
1909};
1910
Ian Rogersdf20fe02011-07-20 20:34:16 -07001911} // namespace art