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