blob: c52868a987a36f855efa226f32667b7c4a3f10df [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 Hughes40ef99e2011-08-11 17:44:34 -070020jint GetVersion(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070021 return JNI_VERSION_1_6;
22}
23
Elliott Hughes40ef99e2011-08-11 17:44:34 -070024jclass DefineClass(JNIEnv *env, const char *name,
25 jobject loader, const jbyte *buf, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070026 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070027 return NULL;
28}
29
Elliott Hughes6b436852011-08-12 10:16:44 -070030// Section 12.3.2 of the JNI spec describes JNI class descriptors. They're
31// separated with slashes but aren't wrapped with "L;" like regular descriptors
32// (i.e. "a/b/C" rather than "La/b/C;"). Arrays of reference types are an
33// exception; there the "L;" must be present ("[La/b/C;"). Historically we've
34// supported names with dots too (such as "a.b.C").
35std::string NormalizeJniClassDescriptor(const char* name) {
36 std::string result;
37 // Add the missing "L;" if necessary.
38 if (name[0] == '[') {
39 result = name;
40 } else {
41 result += 'L';
42 result += name;
43 result += ';';
44 }
45 // Rewrite '.' as '/' for backwards compatibility.
46 for (size_t i = 0; i < result.size(); ++i) {
47 if (result[i] == '.') {
48 result[i] = '/';
49 }
50 }
51 return result;
52}
53
Elliott Hughes40ef99e2011-08-11 17:44:34 -070054jclass FindClass(JNIEnv* env, const char* name) {
55 ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
Elliott Hughes6b436852011-08-12 10:16:44 -070056 std::string descriptor(NormalizeJniClassDescriptor(name));
Elliott Hughes40ef99e2011-08-11 17:44:34 -070057 // TODO: need to get the appropriate ClassLoader.
Elliott Hughes6b436852011-08-12 10:16:44 -070058 Class* c = class_linker->FindClass(descriptor, NULL);
Elliott Hughes40ef99e2011-08-11 17:44:34 -070059 // TODO: local reference.
60 return reinterpret_cast<jclass>(c);
61}
62
63jmethodID FromReflectedMethod(JNIEnv* env, jobject method) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070064 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070065 return NULL;
66}
67
Elliott Hughes40ef99e2011-08-11 17:44:34 -070068jfieldID FromReflectedField(JNIEnv* env, jobject field) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070069 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070070 return NULL;
71}
72
Elliott Hughes40ef99e2011-08-11 17:44:34 -070073jobject ToReflectedMethod(JNIEnv* env, jclass cls,
74 jmethodID methodID, jboolean isStatic) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070075 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070076 return NULL;
77}
78
Elliott Hughes40ef99e2011-08-11 17:44:34 -070079jclass GetSuperclass(JNIEnv* env, jclass sub) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070080 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070081 return NULL;
82}
83
Elliott Hughes40ef99e2011-08-11 17:44:34 -070084jboolean IsAssignableFrom(JNIEnv* env, jclass sub, jclass sup) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070085 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070086 return JNI_FALSE;
87}
88
Elliott Hughes40ef99e2011-08-11 17:44:34 -070089jobject ToReflectedField(JNIEnv* env, jclass cls,
90 jfieldID fieldID, jboolean isStatic) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070091 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070092 return NULL;
93}
94
Elliott Hughes40ef99e2011-08-11 17:44:34 -070095jint Throw(JNIEnv* env, jthrowable obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -070096 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -070097 return 0;
98}
99
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700100jint ThrowNew(JNIEnv* env, jclass clazz, const char* msg) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700101 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700102 return 0;
103}
104
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700105jthrowable ExceptionOccurred(JNIEnv* env) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700106 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700107 return NULL;
108}
109
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700110void ExceptionDescribe(JNIEnv* env) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700111 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700112}
113
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700114void ExceptionClear(JNIEnv* env) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700115 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700116}
117
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700118void FatalError(JNIEnv* env, const char* msg) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700119 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700120}
121
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700122jint PushLocalFrame(JNIEnv* env, jint cap) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700123 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700124 return 0;
125}
126
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700127jobject PopLocalFrame(JNIEnv* env, jobject res) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700128 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700129 return NULL;
130}
131
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700132jobject NewGlobalRef(JNIEnv* env, jobject lobj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700133 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700134 return NULL;
135}
136
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700137void DeleteGlobalRef(JNIEnv* env, jobject gref) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700138 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700139}
140
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700141void DeleteLocalRef(JNIEnv* env, jobject obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700142 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700143}
144
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700145jboolean IsSameObject(JNIEnv* env, jobject obj1, jobject obj2) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700146 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700147 return JNI_FALSE;
148}
149
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700150jobject NewLocalRef(JNIEnv* env, jobject ref) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700151 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700152 return NULL;
153}
154
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700155jint EnsureLocalCapacity(JNIEnv* env, jint) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700156 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700157 return 0;
158}
159
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700160jobject AllocObject(JNIEnv* env, jclass clazz) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700161 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700162 return NULL;
163}
164
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700165jobject NewObject(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700166 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700167 return NULL;
168}
169
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700170jobject NewObjectV(JNIEnv* env,
171 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700172 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700173 return NULL;
174}
175
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700176jobject NewObjectA(JNIEnv* env,
177 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700178 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700179 return NULL;
180}
181
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700182jclass GetObjectClass(JNIEnv* env, jobject obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700183 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700184 return NULL;
185}
186
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700187jboolean IsInstanceOf(JNIEnv* env, jobject obj, jclass clazz) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700188 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700189 return JNI_FALSE;
190}
191
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700192jmethodID GetMethodID(JNIEnv* env,
193 jclass clazz, const char* name, const char* sig) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700194 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700195 return NULL;
196}
197
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700198jobject CallObjectMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700199 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700200 return NULL;
201}
202
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700203jobject CallObjectMethodV(JNIEnv* env,
204 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700205 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700206 return NULL;
207}
208
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700209jobject CallObjectMethodA(JNIEnv* env,
210 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700211 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700212 return NULL;
213}
214
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700215jboolean CallBooleanMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700216 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700217 return JNI_FALSE;
218}
219
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700220jboolean CallBooleanMethodV(JNIEnv* env,
221 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700222 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700223 return JNI_FALSE;
224}
225
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700226jboolean CallBooleanMethodA(JNIEnv* env,
227 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700228 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700229 return JNI_FALSE;
230}
231
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700232jbyte CallByteMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700233 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700234 return 0;
235}
236
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700237jbyte CallByteMethodV(JNIEnv* env,
238 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700239 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700240 return 0;
241}
242
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700243jbyte CallByteMethodA(JNIEnv* env,
244 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700245 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700246 return 0;
247}
248
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700249jchar CallCharMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700250 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700251 return 0;
252}
253
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700254jchar CallCharMethodV(JNIEnv* env,
255 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700256 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700257 return 0;
258}
259
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700260jchar CallCharMethodA(JNIEnv* env,
261 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700262 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700263 return 0;
264}
265
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700266jshort CallShortMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700267 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700268 return 0;
269}
270
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700271jshort CallShortMethodV(JNIEnv* env,
272 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700273 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700274 return 0;
275}
276
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700277jshort CallShortMethodA(JNIEnv* env,
278 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700279 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700280 return 0;
281}
282
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700283jint CallIntMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700284 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700285 return 0;
286}
287
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700288jint CallIntMethodV(JNIEnv* env,
289 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700290 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700291 return 0;
292}
293
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700294jint CallIntMethodA(JNIEnv* env,
295 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700296 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700297 return 0;
298}
299
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700300jlong CallLongMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700301 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700302 return 0;
303}
304
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700305jlong CallLongMethodV(JNIEnv* env,
306 jobject obj, jmethodID methodID, va_list args) {
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 -0700311jlong CallLongMethodA(JNIEnv* env,
312 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700313 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700314 return 0;
315}
316
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700317jfloat CallFloatMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700318 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700319 return 0;
320}
321
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700322jfloat CallFloatMethodV(JNIEnv* env,
323 jobject obj, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700324 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700325 return 0;
326}
327
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700328jfloat CallFloatMethodA(JNIEnv* env,
329 jobject obj, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700330 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700331 return 0;
332}
333
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700334jdouble CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700335 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700336 return 0;
337}
338
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700339jdouble CallDoubleMethodV(JNIEnv* env,
340 jobject obj, jmethodID methodID, va_list args) {
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 -0700345jdouble CallDoubleMethodA(JNIEnv* env,
346 jobject obj, jmethodID methodID, jvalue* args) {
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 -0700351void CallVoidMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700352 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700353}
354
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700355void CallVoidMethodV(JNIEnv* env, jobject obj,
356 jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700357 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700358}
359
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700360void CallVoidMethodA(JNIEnv* env, jobject obj,
361 jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700362 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700363}
364
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700365jobject CallNonvirtualObjectMethod(JNIEnv* env,
366 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700367 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700368 return NULL;
369}
370
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700371jobject CallNonvirtualObjectMethodV(JNIEnv* env,
372 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700373 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700374 return NULL;
375}
376
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700377jobject CallNonvirtualObjectMethodA(JNIEnv* env,
378 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700379 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700380 return NULL;
381}
382
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700383jboolean CallNonvirtualBooleanMethod(JNIEnv* env,
384 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700385 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700386 return JNI_FALSE;
387}
388
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700389jboolean CallNonvirtualBooleanMethodV(JNIEnv* env,
390 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700391 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700392 return JNI_FALSE;
393}
394
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700395jboolean CallNonvirtualBooleanMethodA(JNIEnv* env,
396 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700397 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700398 return JNI_FALSE;
399}
400
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700401jbyte CallNonvirtualByteMethod(JNIEnv* env,
402 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700403 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700404 return 0;
405}
406
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700407jbyte CallNonvirtualByteMethodV(JNIEnv* env,
408 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700409 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700410 return 0;
411}
412
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700413jbyte CallNonvirtualByteMethodA(JNIEnv* env,
414 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700415 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700416 return 0;
417}
418
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700419jchar CallNonvirtualCharMethod(JNIEnv* env,
420 jobject obj, jclass clazz, jmethodID methodID, ...) {
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 -0700425jchar CallNonvirtualCharMethodV(JNIEnv* env,
426 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
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 -0700431jchar CallNonvirtualCharMethodA(JNIEnv* env,
432 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700433 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700434 return 0;
435}
436
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700437jshort CallNonvirtualShortMethod(JNIEnv* env,
438 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700439 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700440 return 0;
441}
442
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700443jshort CallNonvirtualShortMethodV(JNIEnv* env,
444 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700445 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700446 return 0;
447}
448
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700449jshort CallNonvirtualShortMethodA(JNIEnv* env,
450 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700451 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700452 return 0;
453}
454
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700455jint CallNonvirtualIntMethod(JNIEnv* env,
456 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700457 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700458 return 0;
459}
460
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700461jint CallNonvirtualIntMethodV(JNIEnv* env,
462 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700463 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700464 return 0;
465}
466
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700467jint CallNonvirtualIntMethodA(JNIEnv* env,
468 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700469 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700470 return 0;
471}
472
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700473jlong CallNonvirtualLongMethod(JNIEnv* env,
474 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700475 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700476 return 0;
477}
478
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700479jlong CallNonvirtualLongMethodV(JNIEnv* env,
480 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700481 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700482 return 0;
483}
484
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700485jlong CallNonvirtualLongMethodA(JNIEnv* env,
486 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700487 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700488 return 0;
489}
490
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700491jfloat CallNonvirtualFloatMethod(JNIEnv* env,
492 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700493 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700494 return 0;
495}
496
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700497jfloat CallNonvirtualFloatMethodV(JNIEnv* env,
498 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700499 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700500 return 0;
501}
502
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700503jfloat CallNonvirtualFloatMethodA(JNIEnv* env,
504 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700505 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700506 return 0;
507}
508
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700509jdouble CallNonvirtualDoubleMethod(JNIEnv* env,
510 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700511 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700512 return 0;
513}
514
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700515jdouble CallNonvirtualDoubleMethodV(JNIEnv* env,
516 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700517 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700518 return 0;
519}
520
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700521jdouble CallNonvirtualDoubleMethodA(JNIEnv* env,
522 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700523 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700524 return 0;
525}
526
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700527void CallNonvirtualVoidMethod(JNIEnv* env,
528 jobject obj, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700529 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700530}
531
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700532void CallNonvirtualVoidMethodV(JNIEnv* env,
533 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700534 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700535}
536
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700537void CallNonvirtualVoidMethodA(JNIEnv* env,
538 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700539 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700540}
541
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700542jfieldID GetFieldID(JNIEnv* env,
543 jclass clazz, const char* name, const char* sig) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700544 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700545 return NULL;
546}
547
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700548jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700549 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700550 return NULL;
551}
552
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700553jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700554 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700555 return JNI_FALSE;
556}
557
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700558jbyte GetByteField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700559 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700560 return 0;
561}
562
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700563jchar GetCharField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700564 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700565 return 0;
566}
567
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700568jshort GetShortField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700569 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700570 return 0;
571}
572
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700573jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700574 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700575 return 0;
576}
577
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700578jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700579 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700580 return 0;
581}
582
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700583jfloat GetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID) {
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 -0700588jdouble GetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700589 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700590 return 0;
591}
592
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700593void SetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID, jobject val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700594 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700595}
596
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700597void SetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID, jboolean val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700598 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700599}
600
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700601void SetByteField(JNIEnv* env, jobject obj, jfieldID fieldID, jbyte val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700602 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700603}
604
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700605void SetCharField(JNIEnv* env, jobject obj, jfieldID fieldID, jchar val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700606 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700607}
608
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700609void SetShortField(JNIEnv* env, jobject obj, jfieldID fieldID, jshort val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700610 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700611}
612
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700613void SetIntField(JNIEnv* env, jobject obj, jfieldID fieldID, jint val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700614 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700615}
616
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700617void SetLongField(JNIEnv* env, jobject obj, jfieldID fieldID, jlong val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700618 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700619}
620
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700621void SetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID, jfloat val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700622 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700623}
624
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700625void SetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID, jdouble val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700626 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700627}
628
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700629jmethodID GetStaticMethodID(JNIEnv* env,
630 jclass clazz, const char* name, const char* sig) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700631 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700632 return NULL;
633}
634
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700635jobject CallStaticObjectMethod(JNIEnv* env,
636 jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700637 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700638 return NULL;
639}
640
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700641jobject CallStaticObjectMethodV(JNIEnv* env,
642 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700643 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700644 return NULL;
645}
646
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700647jobject CallStaticObjectMethodA(JNIEnv* env,
648 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700649 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700650 return NULL;
651}
652
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700653jboolean CallStaticBooleanMethod(JNIEnv* env,
654 jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700655 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700656 return JNI_FALSE;
657}
658
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700659jboolean CallStaticBooleanMethodV(JNIEnv* env,
660 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700661 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700662 return JNI_FALSE;
663}
664
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700665jboolean CallStaticBooleanMethodA(JNIEnv* env,
666 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700667 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700668 return JNI_FALSE;
669}
670
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700671jbyte CallStaticByteMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700672 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700673 return 0;
674}
675
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700676jbyte CallStaticByteMethodV(JNIEnv* env,
677 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700678 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700679 return 0;
680}
681
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700682jbyte CallStaticByteMethodA(JNIEnv* env,
683 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700684 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700685 return 0;
686}
687
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700688jchar CallStaticCharMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700689 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700690 return 0;
691}
692
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700693jchar CallStaticCharMethodV(JNIEnv* env,
694 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700695 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700696 return 0;
697}
698
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700699jchar CallStaticCharMethodA(JNIEnv* env,
700 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700701 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700702 return 0;
703}
704
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700705jshort CallStaticShortMethod(JNIEnv* env,
706 jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700707 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700708 return 0;
709}
710
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700711jshort CallStaticShortMethodV(JNIEnv* env,
712 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700713 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700714 return 0;
715}
716
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700717jshort CallStaticShortMethodA(JNIEnv* env,
718 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700719 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700720 return 0;
721}
722
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700723jint CallStaticIntMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700724 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700725 return 0;
726}
727
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700728jint CallStaticIntMethodV(JNIEnv* env,
729 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700730 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700731 return 0;
732}
733
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700734jint CallStaticIntMethodA(JNIEnv* env,
735 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700736 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700737 return 0;
738}
739
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700740jlong CallStaticLongMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700741 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700742 return 0;
743}
744
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700745jlong CallStaticLongMethodV(JNIEnv* env,
746 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700747 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700748 return 0;
749}
750
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700751jlong CallStaticLongMethodA(JNIEnv* env,
752 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700753 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700754 return 0;
755}
756
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700757jfloat CallStaticFloatMethod(JNIEnv* env,
758 jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700759 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700760 return 0;
761}
762
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700763jfloat CallStaticFloatMethodV(JNIEnv* env,
764 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700765 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700766 return 0;
767}
768
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700769jfloat CallStaticFloatMethodA(JNIEnv* env,
770 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700771 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700772 return 0;
773}
774
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700775jdouble CallStaticDoubleMethod(JNIEnv* env,
776 jclass clazz, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700777 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700778 return 0;
779}
780
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700781jdouble CallStaticDoubleMethodV(JNIEnv* env,
782 jclass clazz, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700783 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700784 return 0;
785}
786
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700787jdouble CallStaticDoubleMethodA(JNIEnv* env,
788 jclass clazz, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700789 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700790 return 0;
791}
792
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700793void CallStaticVoidMethod(JNIEnv* env, jclass cls, jmethodID methodID, ...) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700794 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700795}
796
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700797void CallStaticVoidMethodV(JNIEnv* env,
798 jclass cls, jmethodID methodID, va_list args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700799 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700800}
801
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700802void CallStaticVoidMethodA(JNIEnv* env,
803 jclass cls, jmethodID methodID, jvalue* args) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700804 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700805}
806
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700807jfieldID GetStaticFieldID(JNIEnv* env,
808 jclass clazz, const char* name, const char* sig) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700809 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700810 return 0;
811}
812
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700813jobject GetStaticObjectField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700814 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700815 return NULL;
816}
817
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700818jboolean GetStaticBooleanField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700819 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700820 return JNI_FALSE;
821}
822
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700823jbyte GetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700824 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700825 return 0;
826}
827
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700828jchar GetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700829 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700830 return 0;
831}
832
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700833jshort GetStaticShortField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700834 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700835 return 0;
836}
837
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700838jint GetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700839 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700840 return 0;
841}
842
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700843jlong GetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700844 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700845 return 0;
846}
847
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700848jfloat GetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700849 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700850 return 0;
851}
852
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700853jdouble GetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700854 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700855 return 0;
856}
857
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700858void SetStaticObjectField(JNIEnv* env,
859 jclass clazz, jfieldID fieldID, jobject value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700860 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700861}
862
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700863void SetStaticBooleanField(JNIEnv* env,
864 jclass clazz, jfieldID fieldID, jboolean value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700865 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700866}
867
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700868void SetStaticByteField(JNIEnv* env,
869 jclass clazz, jfieldID fieldID, jbyte value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700870 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700871}
872
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700873void SetStaticCharField(JNIEnv* env,
874 jclass clazz, jfieldID fieldID, jchar value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700875 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700876}
877
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700878void SetStaticShortField(JNIEnv* env,
879 jclass clazz, jfieldID fieldID, jshort value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700880 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700881}
882
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700883void SetStaticIntField(JNIEnv* env,
884 jclass clazz, jfieldID fieldID, jint value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700885 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700886}
887
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700888void SetStaticLongField(JNIEnv* env,
889 jclass clazz, jfieldID fieldID, jlong value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700890 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700891}
892
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700893void SetStaticFloatField(JNIEnv* env,
894 jclass clazz, jfieldID fieldID, jfloat value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700895 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700896}
897
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700898void SetStaticDoubleField(JNIEnv* env,
899 jclass clazz, jfieldID fieldID, jdouble value) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700900 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700901}
902
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700903jstring NewString(JNIEnv* env, const jchar* unicode, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700904 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700905 return NULL;
906}
907
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700908jsize GetStringLength(JNIEnv* env, jstring str) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700909 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700910 return 0;
911}
912
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700913const jchar* GetStringChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700914 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700915 return NULL;
916}
917
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700918void ReleaseStringChars(JNIEnv* env, jstring str, const jchar* chars) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700919 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700920}
921
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700922jstring NewStringUTF(JNIEnv* env, const char* utf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700923 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700924 return NULL;
925}
926
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700927jsize GetStringUTFLength(JNIEnv* env, jstring str) {
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 -0700932const char* GetStringUTFChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700933 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700934 return NULL;
935}
936
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700937void ReleaseStringUTFChars(JNIEnv* env, jstring str, const char* chars) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700938 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700939}
940
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700941jsize GetArrayLength(JNIEnv* env, jarray array) {
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 -0700946jobjectArray NewObjectArray(JNIEnv* env,
947 jsize len, jclass clazz, jobject init) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700948 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700949 return NULL;
950}
951
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700952jobject GetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700953 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700954 return NULL;
955}
956
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700957void SetObjectArrayElement(JNIEnv* env,
958 jobjectArray array, jsize index, jobject val) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700959 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700960}
961
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700962jbooleanArray NewBooleanArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700963 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700964 return NULL;
965}
966
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700967jbyteArray NewByteArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700968 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700969 return NULL;
970}
971
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700972jcharArray NewCharArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700973 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700974 return NULL;
975}
976
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700977jshortArray NewShortArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700978 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700979 return NULL;
980}
981
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700982jintArray NewIntArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700983 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700984 return NULL;
985}
986
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700987jlongArray NewLongArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700988 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700989 return NULL;
990}
991
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700992jfloatArray NewFloatArray(JNIEnv* env, jsize len) {
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 -0700997jdoubleArray NewDoubleArray(JNIEnv* env, jsize len) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -0700998 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -0700999 return NULL;
1000}
1001
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001002jboolean* GetBooleanArrayElements(JNIEnv* env,
1003 jbooleanArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001004 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001005 return NULL;
1006}
1007
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001008jbyte* GetByteArrayElements(JNIEnv* env, jbyteArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001009 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001010 return NULL;
1011}
1012
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001013jchar* GetCharArrayElements(JNIEnv* env, jcharArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001014 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001015 return NULL;
1016}
1017
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001018jshort* GetShortArrayElements(JNIEnv* env,
1019 jshortArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001020 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001021 return NULL;
1022}
1023
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001024jint* GetIntArrayElements(JNIEnv* env, jintArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001025 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001026 return NULL;
1027}
1028
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001029jlong* GetLongArrayElements(JNIEnv* env, jlongArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001030 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001031 return NULL;
1032}
1033
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001034jfloat* GetFloatArrayElements(JNIEnv* env,
1035 jfloatArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001036 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001037 return NULL;
1038}
1039
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001040jdouble* GetDoubleArrayElements(JNIEnv* env,
1041 jdoubleArray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001042 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001043 return NULL;
1044}
1045
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001046void ReleaseBooleanArrayElements(JNIEnv* env,
1047 jbooleanArray array, jboolean* elems, jint mode) {
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 ReleaseByteArrayElements(JNIEnv* env,
1052 jbyteArray array, jbyte* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001053 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001054}
1055
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001056void ReleaseCharArrayElements(JNIEnv* env,
1057 jcharArray array, jchar* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001058 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001059}
1060
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001061void ReleaseShortArrayElements(JNIEnv* env,
1062 jshortArray array, jshort* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001063 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001064}
1065
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001066void ReleaseIntArrayElements(JNIEnv* env,
1067 jintArray array, jint* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001068 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001069}
1070
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001071void ReleaseLongArrayElements(JNIEnv* env,
1072 jlongArray array, jlong* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001073 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001074}
1075
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001076void ReleaseFloatArrayElements(JNIEnv* env,
1077 jfloatArray array, jfloat* elems, jint mode) {
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 ReleaseDoubleArrayElements(JNIEnv* env,
1082 jdoubleArray array, jdouble* elems, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001083 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001084}
1085
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001086void GetBooleanArrayRegion(JNIEnv* env,
1087 jbooleanArray array, jsize start, jsize l, jboolean* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001088 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001089}
1090
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001091void GetByteArrayRegion(JNIEnv* env,
1092 jbyteArray array, jsize start, jsize len, jbyte* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001093 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001094}
1095
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001096void GetCharArrayRegion(JNIEnv* env,
1097 jcharArray array, jsize start, jsize len, jchar* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001098 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001099}
1100
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001101void GetShortArrayRegion(JNIEnv* env,
1102 jshortArray array, jsize start, jsize len, jshort* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001103 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001104}
1105
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001106void GetIntArrayRegion(JNIEnv* env,
1107 jintArray array, jsize start, jsize len, jint* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001108 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001109}
1110
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001111void GetLongArrayRegion(JNIEnv* env,
1112 jlongArray array, jsize start, jsize len, jlong* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001113 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001114}
1115
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001116void GetFloatArrayRegion(JNIEnv* env,
1117 jfloatArray array, jsize start, jsize len, jfloat* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001118 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001119}
1120
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001121void GetDoubleArrayRegion(JNIEnv* env,
1122 jdoubleArray array, jsize start, jsize len, jdouble* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001123 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001124}
1125
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001126void SetBooleanArrayRegion(JNIEnv* env,
1127 jbooleanArray array, jsize start, jsize l, const jboolean* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001128 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001129}
1130
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001131void SetByteArrayRegion(JNIEnv* env,
1132 jbyteArray array, jsize start, jsize len, const jbyte* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001133 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001134}
1135
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001136void SetCharArrayRegion(JNIEnv* env,
1137 jcharArray array, jsize start, jsize len, const jchar* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001138 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001139}
1140
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001141void SetShortArrayRegion(JNIEnv* env,
1142 jshortArray array, jsize start, jsize len, const jshort* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001143 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001144}
1145
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001146void SetIntArrayRegion(JNIEnv* env,
1147 jintArray array, jsize start, jsize len, const jint* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001148 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001149}
1150
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001151void SetLongArrayRegion(JNIEnv* env,
1152 jlongArray array, jsize start, jsize len, const jlong* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001153 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001154}
1155
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001156void SetFloatArrayRegion(JNIEnv* env,
1157 jfloatArray array, jsize start, jsize len, const jfloat* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001158 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001159}
1160
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001161void SetDoubleArrayRegion(JNIEnv* env,
1162 jdoubleArray array, jsize start, jsize len, const jdouble* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001163 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001164}
1165
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001166jint RegisterNatives(JNIEnv* env,
1167 jclass clazz, const JNINativeMethod* methods, jint nMethods) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001168 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001169 return 0;
1170}
1171
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001172jint UnregisterNatives(JNIEnv* env, jclass clazz) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001173 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001174 return 0;
1175}
1176
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001177jint MonitorEnter(JNIEnv* env, jobject obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001178 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001179 return 0;
1180}
1181
1182jint MonitorExit(JNIEnv* env, jobject obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001183 UNIMPLEMENTED(WARNING);
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001184 return 0;
1185}
1186
1187jint GetJavaVM(JNIEnv* env, JavaVM* *vm) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001188 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001189 return 0;
1190}
1191
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001192void GetStringRegion(JNIEnv* env,
1193 jstring str, jsize start, jsize len, jchar* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001194 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001195}
1196
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001197void GetStringUTFRegion(JNIEnv* env,
1198 jstring str, jsize start, jsize len, char* buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001199 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001200}
1201
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001202void* GetPrimitiveArrayCritical(JNIEnv* env,
1203 jarray array, jboolean* isCopy) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001204 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001205 return NULL;
1206}
1207
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001208void ReleasePrimitiveArrayCritical(JNIEnv* env,
1209 jarray array, void* carray, jint mode) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001210 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001211}
1212
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001213const jchar* GetStringCritical(JNIEnv* env, jstring s, jboolean* isCopy) {
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 -07001218void ReleaseStringCritical(JNIEnv* env, jstring s, const jchar* cstr) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001219 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001220}
1221
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001222jweak NewWeakGlobalRef(JNIEnv* env, jobject obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001223 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001224 return NULL;
1225}
1226
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001227void DeleteWeakGlobalRef(JNIEnv* env, jweak obj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001228 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001229}
1230
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001231jboolean ExceptionCheck(JNIEnv* env) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001232 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001233 return JNI_FALSE;
1234}
1235
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001236jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001237 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001238 return NULL;
1239}
1240
1241
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001242void* GetDirectBufferAddress(JNIEnv* env, jobject buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001243 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001244 return NULL;
1245}
1246
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001247jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001248 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001249 return 0;
1250}
1251
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001252jobjectRefType GetObjectRefType(JNIEnv* env, jobject jobj) {
Elliott Hughesc7ac37f2011-08-12 12:21:58 -07001253 UNIMPLEMENTED(FATAL);
Carl Shapiroea4dca82011-08-01 13:45:38 -07001254 return JNIInvalidRefType;
1255}
1256
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001257static const struct JNINativeInterface gNativeInterface = {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001258 NULL, // reserved0.
1259 NULL, // reserved1.
1260 NULL, // reserved2.
1261 NULL, // reserved3.
1262 GetVersion,
1263 DefineClass,
1264 FindClass,
1265 FromReflectedMethod,
1266 FromReflectedField,
1267 ToReflectedMethod,
1268 GetSuperclass,
1269 IsAssignableFrom,
1270 ToReflectedField,
1271 Throw,
1272 ThrowNew,
1273 ExceptionOccurred,
1274 ExceptionDescribe,
1275 ExceptionClear,
1276 FatalError,
1277 PushLocalFrame,
1278 PopLocalFrame,
1279 NewGlobalRef,
1280 DeleteGlobalRef,
1281 DeleteLocalRef,
1282 IsSameObject,
1283 NewLocalRef,
1284 EnsureLocalCapacity,
1285 AllocObject,
1286 NewObject,
1287 NewObjectV,
1288 NewObjectA,
1289 GetObjectClass,
1290 IsInstanceOf,
1291 GetMethodID,
1292 CallObjectMethod,
1293 CallObjectMethodV,
1294 CallObjectMethodA,
1295 CallBooleanMethod,
1296 CallBooleanMethodV,
1297 CallBooleanMethodA,
1298 CallByteMethod,
1299 CallByteMethodV,
1300 CallByteMethodA,
1301 CallCharMethod,
1302 CallCharMethodV,
1303 CallCharMethodA,
1304 CallShortMethod,
1305 CallShortMethodV,
1306 CallShortMethodA,
1307 CallIntMethod,
1308 CallIntMethodV,
1309 CallIntMethodA,
1310 CallLongMethod,
1311 CallLongMethodV,
1312 CallLongMethodA,
1313 CallFloatMethod,
1314 CallFloatMethodV,
1315 CallFloatMethodA,
1316 CallDoubleMethod,
1317 CallDoubleMethodV,
1318 CallDoubleMethodA,
1319 CallVoidMethod,
1320 CallVoidMethodV,
1321 CallVoidMethodA,
1322 CallNonvirtualObjectMethod,
1323 CallNonvirtualObjectMethodV,
1324 CallNonvirtualObjectMethodA,
1325 CallNonvirtualBooleanMethod,
1326 CallNonvirtualBooleanMethodV,
1327 CallNonvirtualBooleanMethodA,
1328 CallNonvirtualByteMethod,
1329 CallNonvirtualByteMethodV,
1330 CallNonvirtualByteMethodA,
1331 CallNonvirtualCharMethod,
1332 CallNonvirtualCharMethodV,
1333 CallNonvirtualCharMethodA,
1334 CallNonvirtualShortMethod,
1335 CallNonvirtualShortMethodV,
1336 CallNonvirtualShortMethodA,
1337 CallNonvirtualIntMethod,
1338 CallNonvirtualIntMethodV,
1339 CallNonvirtualIntMethodA,
1340 CallNonvirtualLongMethod,
1341 CallNonvirtualLongMethodV,
1342 CallNonvirtualLongMethodA,
1343 CallNonvirtualFloatMethod,
1344 CallNonvirtualFloatMethodV,
1345 CallNonvirtualFloatMethodA,
1346 CallNonvirtualDoubleMethod,
1347 CallNonvirtualDoubleMethodV,
1348 CallNonvirtualDoubleMethodA,
1349 CallNonvirtualVoidMethod,
1350 CallNonvirtualVoidMethodV,
1351 CallNonvirtualVoidMethodA,
1352 GetFieldID,
1353 GetObjectField,
1354 GetBooleanField,
1355 GetByteField,
1356 GetCharField,
1357 GetShortField,
1358 GetIntField,
1359 GetLongField,
1360 GetFloatField,
1361 GetDoubleField,
1362 SetObjectField,
1363 SetBooleanField,
1364 SetByteField,
1365 SetCharField,
1366 SetShortField,
1367 SetIntField,
1368 SetLongField,
1369 SetFloatField,
1370 SetDoubleField,
1371 GetStaticMethodID,
1372 CallStaticObjectMethod,
1373 CallStaticObjectMethodV,
1374 CallStaticObjectMethodA,
1375 CallStaticBooleanMethod,
1376 CallStaticBooleanMethodV,
1377 CallStaticBooleanMethodA,
1378 CallStaticByteMethod,
1379 CallStaticByteMethodV,
1380 CallStaticByteMethodA,
1381 CallStaticCharMethod,
1382 CallStaticCharMethodV,
1383 CallStaticCharMethodA,
1384 CallStaticShortMethod,
1385 CallStaticShortMethodV,
1386 CallStaticShortMethodA,
1387 CallStaticIntMethod,
1388 CallStaticIntMethodV,
1389 CallStaticIntMethodA,
1390 CallStaticLongMethod,
1391 CallStaticLongMethodV,
1392 CallStaticLongMethodA,
1393 CallStaticFloatMethod,
1394 CallStaticFloatMethodV,
1395 CallStaticFloatMethodA,
1396 CallStaticDoubleMethod,
1397 CallStaticDoubleMethodV,
1398 CallStaticDoubleMethodA,
1399 CallStaticVoidMethod,
1400 CallStaticVoidMethodV,
1401 CallStaticVoidMethodA,
1402 GetStaticFieldID,
1403 GetStaticObjectField,
1404 GetStaticBooleanField,
1405 GetStaticByteField,
1406 GetStaticCharField,
1407 GetStaticShortField,
1408 GetStaticIntField,
1409 GetStaticLongField,
1410 GetStaticFloatField,
1411 GetStaticDoubleField,
1412 SetStaticObjectField,
1413 SetStaticBooleanField,
1414 SetStaticByteField,
1415 SetStaticCharField,
1416 SetStaticShortField,
1417 SetStaticIntField,
1418 SetStaticLongField,
1419 SetStaticFloatField,
1420 SetStaticDoubleField,
1421 NewString,
1422 GetStringLength,
1423 GetStringChars,
1424 ReleaseStringChars,
1425 NewStringUTF,
1426 GetStringUTFLength,
1427 GetStringUTFChars,
1428 ReleaseStringUTFChars,
1429 GetArrayLength,
1430 NewObjectArray,
1431 GetObjectArrayElement,
1432 SetObjectArrayElement,
1433 NewBooleanArray,
1434 NewByteArray,
1435 NewCharArray,
1436 NewShortArray,
1437 NewIntArray,
1438 NewLongArray,
1439 NewFloatArray,
1440 NewDoubleArray,
1441 GetBooleanArrayElements,
1442 GetByteArrayElements,
1443 GetCharArrayElements,
1444 GetShortArrayElements,
1445 GetIntArrayElements,
1446 GetLongArrayElements,
1447 GetFloatArrayElements,
1448 GetDoubleArrayElements,
1449 ReleaseBooleanArrayElements,
1450 ReleaseByteArrayElements,
1451 ReleaseCharArrayElements,
1452 ReleaseShortArrayElements,
1453 ReleaseIntArrayElements,
1454 ReleaseLongArrayElements,
1455 ReleaseFloatArrayElements,
1456 ReleaseDoubleArrayElements,
1457 GetBooleanArrayRegion,
1458 GetByteArrayRegion,
1459 GetCharArrayRegion,
1460 GetShortArrayRegion,
1461 GetIntArrayRegion,
1462 GetLongArrayRegion,
1463 GetFloatArrayRegion,
1464 GetDoubleArrayRegion,
1465 SetBooleanArrayRegion,
1466 SetByteArrayRegion,
1467 SetCharArrayRegion,
1468 SetShortArrayRegion,
1469 SetIntArrayRegion,
1470 SetLongArrayRegion,
1471 SetFloatArrayRegion,
1472 SetDoubleArrayRegion,
1473 RegisterNatives,
1474 UnregisterNatives,
1475 MonitorEnter,
1476 MonitorExit,
1477 GetJavaVM,
1478 GetStringRegion,
1479 GetStringUTFRegion,
1480 GetPrimitiveArrayCritical,
1481 ReleasePrimitiveArrayCritical,
1482 GetStringCritical,
1483 ReleaseStringCritical,
1484 NewWeakGlobalRef,
1485 DeleteWeakGlobalRef,
1486 ExceptionCheck,
1487 NewDirectByteBuffer,
1488 GetDirectBufferAddress,
1489 GetDirectBufferCapacity,
1490 GetObjectRefType,
1491};
1492
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001493void MonitorEnterHelper(JNIEnv* env, jobject obj) {
1494 MonitorEnter(env, obj); // Ignore the result.
1495}
1496
1497void MonitorExitHelper(JNIEnv* env, jobject obj) {
1498 MonitorExit(env, obj); // Ignore the result.
1499}
1500
1501JNIEnv* CreateJNIEnv() {
1502 JNIEnvExt* result = (JNIEnvExt*) calloc(1, sizeof(JNIEnvExt));
1503 result->fns = &gNativeInterface;
1504 result->self = Thread::Current();
1505 result->MonitorEnterHelper = &MonitorEnterHelper;
1506 result->MonitorExitHelper = &MonitorExitHelper;
1507 return reinterpret_cast<JNIEnv*>(result);
1508}
1509
Carl Shapiroea4dca82011-08-01 13:45:38 -07001510// JNI Invocation interface.
1511
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001512extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, void** p_env, void* vm_args) {
1513 const JavaVMInitArgs* args = static_cast<JavaVMInitArgs*>(vm_args);
1514 if (args->version < JNI_VERSION_1_2) {
1515 return JNI_EVERSION;
1516 }
1517 Runtime::Options options;
1518 for (int i = 0; i < args->nOptions; ++i) {
1519 JavaVMOption* option = &args->options[i];
Carl Shapirofc322c72011-07-27 00:20:01 -07001520 options.push_back(std::make_pair(StringPiece(option->optionString),
1521 option->extraInfo));
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001522 }
1523 bool ignore_unrecognized = args->ignoreUnrecognized;
1524 scoped_ptr<Runtime> runtime(Runtime::Create(options, ignore_unrecognized));
1525 if (runtime == NULL) {
1526 return JNI_ERR;
1527 } else {
1528 *p_env = reinterpret_cast<JNIEnv*>(Thread::Current()->GetJniEnv());
1529 *p_vm = reinterpret_cast<JavaVM*>(runtime.release());
1530 return JNI_OK;
1531 }
1532}
1533
1534extern "C" jint JNI_GetCreatedJavaVMs(JavaVM** vmBuf, jsize bufLen,
1535 jsize* nVMs) {
1536 Runtime* runtime = Runtime::Current();
1537 if (runtime == NULL) {
1538 *nVMs = 0;
1539 } else {
1540 *nVMs = 1;
1541 vmBuf[0] = reinterpret_cast<JavaVM*>(runtime);
1542 }
1543 return JNI_OK;
1544}
1545
1546// Historically unsupported.
1547extern "C" jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) {
1548 return JNI_ERR;
1549}
1550
Carl Shapiroea4dca82011-08-01 13:45:38 -07001551jint JniInvokeInterface::DestroyJavaVM(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001552 if (vm == NULL) {
1553 return JNI_ERR;
1554 } else {
1555 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1556 delete runtime;
1557 return JNI_OK;
1558 }
1559}
1560
Carl Shapiroea4dca82011-08-01 13:45:38 -07001561jint JniInvokeInterface::AttachCurrentThread(JavaVM* vm,
1562 JNIEnv** p_env,
1563 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001564 if (vm == NULL || p_env == NULL) {
1565 return JNI_ERR;
1566 }
1567 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001568 const char* name = NULL;
1569 if (thr_args != NULL) {
1570 // TODO: check version
1571 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1572 // TODO: thread group
1573 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001574 bool success = runtime->AttachCurrentThread(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001575 if (!success) {
1576 return JNI_ERR;
1577 } else {
1578 return JNI_OK;
1579 }
1580}
1581
Carl Shapiroea4dca82011-08-01 13:45:38 -07001582jint JniInvokeInterface::DetachCurrentThread(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001583 if (vm == NULL) {
1584 return JNI_ERR;
1585 } else {
1586 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1587 runtime->DetachCurrentThread();
1588 return JNI_OK;
1589 }
1590}
1591
Carl Shapiroea4dca82011-08-01 13:45:38 -07001592jint JniInvokeInterface::GetEnv(JavaVM *vm, void **env, jint version) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001593 if (version < JNI_VERSION_1_1 || version > JNI_VERSION_1_6) {
1594 return JNI_EVERSION;
1595 }
1596 if (vm == NULL || env == NULL) {
1597 return JNI_ERR;
1598 }
1599 Thread* thread = Thread::Current();
1600 if (thread == NULL) {
1601 *env = NULL;
1602 return JNI_EDETACHED;
1603 }
1604 *env = thread->GetJniEnv();
1605 return JNI_OK;
1606}
1607
Carl Shapiroea4dca82011-08-01 13:45:38 -07001608jint JniInvokeInterface::AttachCurrentThreadAsDaemon(JavaVM* vm,
1609 JNIEnv** p_env,
1610 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001611 if (vm == NULL || p_env == NULL) {
1612 return JNI_ERR;
1613 }
1614 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001615 const char* name = NULL;
1616 if (thr_args != NULL) {
1617 // TODO: check version
1618 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1619 // TODO: thread group
1620 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001621 bool success = runtime->AttachCurrentThreadAsDaemon(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001622 if (!success) {
1623 return JNI_ERR;
1624 } else {
1625 return JNI_OK;
1626 }
1627}
1628
Carl Shapiroea4dca82011-08-01 13:45:38 -07001629struct JNIInvokeInterface JniInvokeInterface::invoke_interface_ = {
1630 NULL, // reserved0
1631 NULL, // reserved1
1632 NULL, // reserved2
1633 DestroyJavaVM,
1634 AttachCurrentThread,
1635 DetachCurrentThread,
1636 GetEnv,
1637 AttachCurrentThreadAsDaemon
1638};
1639
Ian Rogersdf20fe02011-07-20 20:34:16 -07001640} // namespace art