blob: 839ad0e16cf74191d8f020896e4250e3ad9aa39f [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
16namespace art {
17
Elliott Hughes40ef99e2011-08-11 17:44:34 -070018jint GetVersion(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070019 return JNI_VERSION_1_6;
20}
21
Elliott Hughes40ef99e2011-08-11 17:44:34 -070022jclass DefineClass(JNIEnv *env, const char *name,
23 jobject loader, const jbyte *buf, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070024 LOG(FATAL) << "Unimplemented";
25 return NULL;
26}
27
Elliott Hughes40ef99e2011-08-11 17:44:34 -070028jclass FindClass(JNIEnv* env, const char* name) {
29 ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
30 // TODO: need to get the appropriate ClassLoader.
31 Class* c = class_linker->FindClass(name, NULL);
32 // TODO: local reference.
33 return reinterpret_cast<jclass>(c);
34}
35
36jmethodID FromReflectedMethod(JNIEnv* env, jobject method) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070037 LOG(FATAL) << "Unimplemented";
38 return NULL;
39}
40
Elliott Hughes40ef99e2011-08-11 17:44:34 -070041jfieldID FromReflectedField(JNIEnv* env, jobject field) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070042 LOG(FATAL) << "Unimplemented";
43 return NULL;
44}
45
Elliott Hughes40ef99e2011-08-11 17:44:34 -070046jobject ToReflectedMethod(JNIEnv* env, jclass cls,
47 jmethodID methodID, jboolean isStatic) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070048 LOG(FATAL) << "Unimplemented";
49 return NULL;
50}
51
Elliott Hughes40ef99e2011-08-11 17:44:34 -070052jclass GetSuperclass(JNIEnv* env, jclass sub) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070053 LOG(FATAL) << "Unimplemented";
54 return NULL;
55}
56
Elliott Hughes40ef99e2011-08-11 17:44:34 -070057jboolean IsAssignableFrom(JNIEnv* env, jclass sub, jclass sup) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070058 LOG(FATAL) << "Unimplemented";
59 return JNI_FALSE;
60}
61
Elliott Hughes40ef99e2011-08-11 17:44:34 -070062jobject ToReflectedField(JNIEnv* env, jclass cls,
63 jfieldID fieldID, jboolean isStatic) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070064 LOG(FATAL) << "Unimplemented";
65 return NULL;
66}
67
Elliott Hughes40ef99e2011-08-11 17:44:34 -070068jint Throw(JNIEnv* env, jthrowable obj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070069 LOG(FATAL) << "Unimplemented";
70 return 0;
71}
72
Elliott Hughes40ef99e2011-08-11 17:44:34 -070073jint ThrowNew(JNIEnv* env, jclass clazz, const char* msg) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070074 LOG(FATAL) << "Unimplemented";
75 return 0;
76}
77
Elliott Hughes40ef99e2011-08-11 17:44:34 -070078jthrowable ExceptionOccurred(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070079 LOG(FATAL) << "Unimplemented";
80 return NULL;
81}
82
Elliott Hughes40ef99e2011-08-11 17:44:34 -070083void ExceptionDescribe(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070084 LOG(FATAL) << "Unimplemented";
85}
86
Elliott Hughes40ef99e2011-08-11 17:44:34 -070087void ExceptionClear(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070088 LOG(FATAL) << "Unimplemented";
89}
90
Elliott Hughes40ef99e2011-08-11 17:44:34 -070091void FatalError(JNIEnv* env, const char* msg) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070092 LOG(FATAL) << "Unimplemented";
93}
94
Elliott Hughes40ef99e2011-08-11 17:44:34 -070095jint PushLocalFrame(JNIEnv* env, jint cap) {
Carl Shapiroea4dca82011-08-01 13:45:38 -070096 LOG(FATAL) << "Unimplemented";
97 return 0;
98}
99
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700100jobject PopLocalFrame(JNIEnv* env, jobject res) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700101 LOG(FATAL) << "Unimplemented";
102 return NULL;
103}
104
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700105jobject NewGlobalRef(JNIEnv* env, jobject lobj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700106 LOG(FATAL) << "Unimplemented";
107 return NULL;
108}
109
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700110void DeleteGlobalRef(JNIEnv* env, jobject gref) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700111 LOG(FATAL) << "Unimplemented";
112}
113
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700114void DeleteLocalRef(JNIEnv* env, jobject obj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700115 LOG(FATAL) << "Unimplemented";
116}
117
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700118jboolean IsSameObject(JNIEnv* env, jobject obj1, jobject obj2) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700119 LOG(FATAL) << "Unimplemented";
120 return JNI_FALSE;
121}
122
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700123jobject NewLocalRef(JNIEnv* env, jobject ref) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700124 LOG(FATAL) << "Unimplemented";
125 return NULL;
126}
127
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700128jint EnsureLocalCapacity(JNIEnv* env, jint) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700129 LOG(FATAL) << "Unimplemented";
130 return 0;
131}
132
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700133jobject AllocObject(JNIEnv* env, jclass clazz) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700134 LOG(FATAL) << "Unimplemented";
135 return NULL;
136}
137
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700138jobject NewObject(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700139 LOG(FATAL) << "Unimplemented";
140 return NULL;
141}
142
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700143jobject NewObjectV(JNIEnv* env,
144 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700145 LOG(FATAL) << "Unimplemented";
146 return NULL;
147}
148
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700149jobject NewObjectA(JNIEnv* env,
150 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700151 LOG(FATAL) << "Unimplemented";
152 return NULL;
153}
154
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700155jclass GetObjectClass(JNIEnv* env, jobject obj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700156 LOG(FATAL) << "Unimplemented";
157 return NULL;
158}
159
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700160jboolean IsInstanceOf(JNIEnv* env, jobject obj, jclass clazz) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700161 LOG(FATAL) << "Unimplemented";
162 return JNI_FALSE;
163}
164
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700165jmethodID GetMethodID(JNIEnv* env,
166 jclass clazz, const char* name, const char* sig) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700167 LOG(FATAL) << "Unimplemented";
168 return NULL;
169}
170
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700171jobject CallObjectMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700172 LOG(FATAL) << "Unimplemented";
173 return NULL;
174}
175
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700176jobject CallObjectMethodV(JNIEnv* env,
177 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700178 LOG(FATAL) << "Unimplemented";
179 return NULL;
180}
181
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700182jobject CallObjectMethodA(JNIEnv* env,
183 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700184 LOG(FATAL) << "Unimplemented";
185 return NULL;
186}
187
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700188jboolean CallBooleanMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700189 LOG(FATAL) << "Unimplemented";
190 return JNI_FALSE;
191}
192
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700193jboolean CallBooleanMethodV(JNIEnv* env,
194 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700195 LOG(FATAL) << "Unimplemented";
196 return JNI_FALSE;
197}
198
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700199jboolean CallBooleanMethodA(JNIEnv* env,
200 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700201 LOG(FATAL) << "Unimplemented";
202 return JNI_FALSE;
203}
204
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700205jbyte CallByteMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700206 LOG(FATAL) << "Unimplemented";
207 return 0;
208}
209
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700210jbyte CallByteMethodV(JNIEnv* env,
211 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700212 LOG(FATAL) << "Unimplemented";
213 return 0;
214}
215
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700216jbyte CallByteMethodA(JNIEnv* env,
217 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700218 LOG(FATAL) << "Unimplemented";
219 return 0;
220}
221
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700222jchar CallCharMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700223 LOG(FATAL) << "Unimplemented";
224 return 0;
225}
226
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700227jchar CallCharMethodV(JNIEnv* env,
228 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700229 LOG(FATAL) << "Unimplemented";
230 return 0;
231}
232
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700233jchar CallCharMethodA(JNIEnv* env,
234 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700235 LOG(FATAL) << "Unimplemented";
236 return 0;
237}
238
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700239jshort CallShortMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700240 LOG(FATAL) << "Unimplemented";
241 return 0;
242}
243
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700244jshort CallShortMethodV(JNIEnv* env,
245 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700246 LOG(FATAL) << "Unimplemented";
247 return 0;
248}
249
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700250jshort CallShortMethodA(JNIEnv* env,
251 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700252 LOG(FATAL) << "Unimplemented";
253 return 0;
254}
255
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700256jint CallIntMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700257 LOG(FATAL) << "Unimplemented";
258 return 0;
259}
260
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700261jint CallIntMethodV(JNIEnv* env,
262 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700263 LOG(FATAL) << "Unimplemented";
264 return 0;
265}
266
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700267jint CallIntMethodA(JNIEnv* env,
268 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700269 LOG(FATAL) << "Unimplemented";
270 return 0;
271}
272
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700273jlong CallLongMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700274 LOG(FATAL) << "Unimplemented";
275 return 0;
276}
277
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700278jlong CallLongMethodV(JNIEnv* env,
279 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700280 LOG(FATAL) << "Unimplemented";
281 return 0;
282}
283
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700284jlong CallLongMethodA(JNIEnv* env,
285 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700286 LOG(FATAL) << "Unimplemented";
287 return 0;
288}
289
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700290jfloat CallFloatMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700291 LOG(FATAL) << "Unimplemented";
292 return 0;
293}
294
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700295jfloat CallFloatMethodV(JNIEnv* env,
296 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700297 LOG(FATAL) << "Unimplemented";
298 return 0;
299}
300
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700301jfloat CallFloatMethodA(JNIEnv* env,
302 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700303 LOG(FATAL) << "Unimplemented";
304 return 0;
305}
306
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700307jdouble CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700308 LOG(FATAL) << "Unimplemented";
309 return 0;
310}
311
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700312jdouble CallDoubleMethodV(JNIEnv* env,
313 jobject obj, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700314 LOG(FATAL) << "Unimplemented";
315 return 0;
316}
317
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700318jdouble CallDoubleMethodA(JNIEnv* env,
319 jobject obj, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700320 LOG(FATAL) << "Unimplemented";
321 return 0;
322}
323
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700324void CallVoidMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700325 LOG(FATAL) << "Unimplemented";
326}
327
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700328void CallVoidMethodV(JNIEnv* env, jobject obj,
329 jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700330 LOG(FATAL) << "Unimplemented";
331}
332
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700333void CallVoidMethodA(JNIEnv* env, jobject obj,
334 jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700335 LOG(FATAL) << "Unimplemented";
336}
337
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700338jobject CallNonvirtualObjectMethod(JNIEnv* env,
339 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700340 LOG(FATAL) << "Unimplemented";
341 return NULL;
342}
343
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700344jobject CallNonvirtualObjectMethodV(JNIEnv* env,
345 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700346 LOG(FATAL) << "Unimplemented";
347 return NULL;
348}
349
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700350jobject CallNonvirtualObjectMethodA(JNIEnv* env,
351 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700352 LOG(FATAL) << "Unimplemented";
353 return NULL;
354}
355
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700356jboolean CallNonvirtualBooleanMethod(JNIEnv* env,
357 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700358 LOG(FATAL) << "Unimplemented";
359 return JNI_FALSE;
360}
361
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700362jboolean CallNonvirtualBooleanMethodV(JNIEnv* env,
363 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700364 LOG(FATAL) << "Unimplemented";
365 return JNI_FALSE;
366}
367
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700368jboolean CallNonvirtualBooleanMethodA(JNIEnv* env,
369 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700370 LOG(FATAL) << "Unimplemented";
371 return JNI_FALSE;
372}
373
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700374jbyte CallNonvirtualByteMethod(JNIEnv* env,
375 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700376 LOG(FATAL) << "Unimplemented";
377 return 0;
378}
379
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700380jbyte CallNonvirtualByteMethodV(JNIEnv* env,
381 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700382 LOG(FATAL) << "Unimplemented";
383 return 0;
384}
385
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700386jbyte CallNonvirtualByteMethodA(JNIEnv* env,
387 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700388 LOG(FATAL) << "Unimplemented";
389 return 0;
390}
391
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700392jchar CallNonvirtualCharMethod(JNIEnv* env,
393 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700394 LOG(FATAL) << "Unimplemented";
395 return 0;
396}
397
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700398jchar CallNonvirtualCharMethodV(JNIEnv* env,
399 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700400 LOG(FATAL) << "Unimplemented";
401 return 0;
402}
403
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700404jchar CallNonvirtualCharMethodA(JNIEnv* env,
405 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700406 LOG(FATAL) << "Unimplemented";
407 return 0;
408}
409
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700410jshort CallNonvirtualShortMethod(JNIEnv* env,
411 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700412 LOG(FATAL) << "Unimplemented";
413 return 0;
414}
415
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700416jshort CallNonvirtualShortMethodV(JNIEnv* env,
417 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700418 LOG(FATAL) << "Unimplemented";
419 return 0;
420}
421
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700422jshort CallNonvirtualShortMethodA(JNIEnv* env,
423 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700424 LOG(FATAL) << "Unimplemented";
425 return 0;
426}
427
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700428jint CallNonvirtualIntMethod(JNIEnv* env,
429 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700430 LOG(FATAL) << "Unimplemented";
431 return 0;
432}
433
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700434jint CallNonvirtualIntMethodV(JNIEnv* env,
435 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700436 LOG(FATAL) << "Unimplemented";
437 return 0;
438}
439
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700440jint CallNonvirtualIntMethodA(JNIEnv* env,
441 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700442 LOG(FATAL) << "Unimplemented";
443 return 0;
444}
445
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700446jlong CallNonvirtualLongMethod(JNIEnv* env,
447 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700448 LOG(FATAL) << "Unimplemented";
449 return 0;
450}
451
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700452jlong CallNonvirtualLongMethodV(JNIEnv* env,
453 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700454 LOG(FATAL) << "Unimplemented";
455 return 0;
456}
457
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700458jlong CallNonvirtualLongMethodA(JNIEnv* env,
459 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700460 LOG(FATAL) << "Unimplemented";
461 return 0;
462}
463
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700464jfloat CallNonvirtualFloatMethod(JNIEnv* env,
465 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700466 LOG(FATAL) << "Unimplemented";
467 return 0;
468}
469
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700470jfloat CallNonvirtualFloatMethodV(JNIEnv* env,
471 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700472 LOG(FATAL) << "Unimplemented";
473 return 0;
474}
475
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700476jfloat CallNonvirtualFloatMethodA(JNIEnv* env,
477 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700478 LOG(FATAL) << "Unimplemented";
479 return 0;
480}
481
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700482jdouble CallNonvirtualDoubleMethod(JNIEnv* env,
483 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700484 LOG(FATAL) << "Unimplemented";
485 return 0;
486}
487
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700488jdouble CallNonvirtualDoubleMethodV(JNIEnv* env,
489 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700490 LOG(FATAL) << "Unimplemented";
491 return 0;
492}
493
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700494jdouble CallNonvirtualDoubleMethodA(JNIEnv* env,
495 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700496 LOG(FATAL) << "Unimplemented";
497 return 0;
498}
499
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700500void CallNonvirtualVoidMethod(JNIEnv* env,
501 jobject obj, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700502 LOG(FATAL) << "Unimplemented";
503}
504
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700505void CallNonvirtualVoidMethodV(JNIEnv* env,
506 jobject obj, jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700507 LOG(FATAL) << "Unimplemented";
508}
509
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700510void CallNonvirtualVoidMethodA(JNIEnv* env,
511 jobject obj, jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700512 LOG(FATAL) << "Unimplemented";
513}
514
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700515jfieldID GetFieldID(JNIEnv* env,
516 jclass clazz, const char* name, const char* sig) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700517 LOG(FATAL) << "Unimplemented";
518 return NULL;
519}
520
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700521jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700522 LOG(FATAL) << "Unimplemented";
523 return NULL;
524}
525
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700526jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700527 LOG(FATAL) << "Unimplemented";
528 return JNI_FALSE;
529}
530
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700531jbyte GetByteField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700532 LOG(FATAL) << "Unimplemented";
533 return 0;
534}
535
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700536jchar GetCharField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700537 LOG(FATAL) << "Unimplemented";
538 return 0;
539}
540
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700541jshort GetShortField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700542 LOG(FATAL) << "Unimplemented";
543 return 0;
544}
545
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700546jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700547 LOG(FATAL) << "Unimplemented";
548 return 0;
549}
550
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700551jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700552 LOG(FATAL) << "Unimplemented";
553 return 0;
554}
555
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700556jfloat GetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700557 LOG(FATAL) << "Unimplemented";
558 return 0;
559}
560
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700561jdouble GetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700562 LOG(FATAL) << "Unimplemented";
563 return 0;
564}
565
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700566void SetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID, jobject val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700567 LOG(FATAL) << "Unimplemented";
568}
569
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700570void SetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID, jboolean val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700571 LOG(FATAL) << "Unimplemented";
572}
573
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700574void SetByteField(JNIEnv* env, jobject obj, jfieldID fieldID, jbyte val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700575 LOG(FATAL) << "Unimplemented";
576}
577
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700578void SetCharField(JNIEnv* env, jobject obj, jfieldID fieldID, jchar val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700579 LOG(FATAL) << "Unimplemented";
580}
581
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700582void SetShortField(JNIEnv* env, jobject obj, jfieldID fieldID, jshort val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700583 LOG(FATAL) << "Unimplemented";
584}
585
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700586void SetIntField(JNIEnv* env, jobject obj, jfieldID fieldID, jint val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700587 LOG(FATAL) << "Unimplemented";
588}
589
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700590void SetLongField(JNIEnv* env, jobject obj, jfieldID fieldID, jlong val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700591 LOG(FATAL) << "Unimplemented";
592}
593
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700594void SetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID, jfloat val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700595 LOG(FATAL) << "Unimplemented";
596}
597
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700598void SetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID, jdouble val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700599 LOG(FATAL) << "Unimplemented";
600}
601
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700602jmethodID GetStaticMethodID(JNIEnv* env,
603 jclass clazz, const char* name, const char* sig) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700604 LOG(FATAL) << "Unimplemented";
605 return NULL;
606}
607
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700608jobject CallStaticObjectMethod(JNIEnv* env,
609 jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700610 LOG(FATAL) << "Unimplemented";
611 return NULL;
612}
613
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700614jobject CallStaticObjectMethodV(JNIEnv* env,
615 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700616 LOG(FATAL) << "Unimplemented";
617 return NULL;
618}
619
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700620jobject CallStaticObjectMethodA(JNIEnv* env,
621 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700622 LOG(FATAL) << "Unimplemented";
623 return NULL;
624}
625
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700626jboolean CallStaticBooleanMethod(JNIEnv* env,
627 jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700628 LOG(FATAL) << "Unimplemented";
629 return JNI_FALSE;
630}
631
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700632jboolean CallStaticBooleanMethodV(JNIEnv* env,
633 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700634 LOG(FATAL) << "Unimplemented";
635 return JNI_FALSE;
636}
637
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700638jboolean CallStaticBooleanMethodA(JNIEnv* env,
639 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700640 LOG(FATAL) << "Unimplemented";
641 return JNI_FALSE;
642}
643
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700644jbyte CallStaticByteMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700645 LOG(FATAL) << "Unimplemented";
646 return 0;
647}
648
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700649jbyte CallStaticByteMethodV(JNIEnv* env,
650 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700651 LOG(FATAL) << "Unimplemented";
652 return 0;
653}
654
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700655jbyte CallStaticByteMethodA(JNIEnv* env,
656 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700657 LOG(FATAL) << "Unimplemented";
658 return 0;
659}
660
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700661jchar CallStaticCharMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700662 LOG(FATAL) << "Unimplemented";
663 return 0;
664}
665
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700666jchar CallStaticCharMethodV(JNIEnv* env,
667 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700668 LOG(FATAL) << "Unimplemented";
669 return 0;
670}
671
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700672jchar CallStaticCharMethodA(JNIEnv* env,
673 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700674 LOG(FATAL) << "Unimplemented";
675 return 0;
676}
677
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700678jshort CallStaticShortMethod(JNIEnv* env,
679 jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700680 LOG(FATAL) << "Unimplemented";
681 return 0;
682}
683
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700684jshort CallStaticShortMethodV(JNIEnv* env,
685 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700686 LOG(FATAL) << "Unimplemented";
687 return 0;
688}
689
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700690jshort CallStaticShortMethodA(JNIEnv* env,
691 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700692 LOG(FATAL) << "Unimplemented";
693 return 0;
694}
695
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700696jint CallStaticIntMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700697 LOG(FATAL) << "Unimplemented";
698 return 0;
699}
700
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700701jint CallStaticIntMethodV(JNIEnv* env,
702 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700703 LOG(FATAL) << "Unimplemented";
704 return 0;
705}
706
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700707jint CallStaticIntMethodA(JNIEnv* env,
708 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700709 LOG(FATAL) << "Unimplemented";
710 return 0;
711}
712
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700713jlong CallStaticLongMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700714 LOG(FATAL) << "Unimplemented";
715 return 0;
716}
717
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700718jlong CallStaticLongMethodV(JNIEnv* env,
719 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700720 LOG(FATAL) << "Unimplemented";
721 return 0;
722}
723
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700724jlong CallStaticLongMethodA(JNIEnv* env,
725 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700726 LOG(FATAL) << "Unimplemented";
727 return 0;
728}
729
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700730jfloat CallStaticFloatMethod(JNIEnv* env,
731 jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700732 LOG(FATAL) << "Unimplemented";
733 return 0;
734}
735
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700736jfloat CallStaticFloatMethodV(JNIEnv* env,
737 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700738 LOG(FATAL) << "Unimplemented";
739 return 0;
740}
741
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700742jfloat CallStaticFloatMethodA(JNIEnv* env,
743 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700744 LOG(FATAL) << "Unimplemented";
745 return 0;
746}
747
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700748jdouble CallStaticDoubleMethod(JNIEnv* env,
749 jclass clazz, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700750 LOG(FATAL) << "Unimplemented";
751 return 0;
752}
753
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700754jdouble CallStaticDoubleMethodV(JNIEnv* env,
755 jclass clazz, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700756 LOG(FATAL) << "Unimplemented";
757 return 0;
758}
759
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700760jdouble CallStaticDoubleMethodA(JNIEnv* env,
761 jclass clazz, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700762 LOG(FATAL) << "Unimplemented";
763 return 0;
764}
765
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700766void CallStaticVoidMethod(JNIEnv* env, jclass cls, jmethodID methodID, ...) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700767 LOG(FATAL) << "Unimplemented";
768}
769
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700770void CallStaticVoidMethodV(JNIEnv* env,
771 jclass cls, jmethodID methodID, va_list args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700772 LOG(FATAL) << "Unimplemented";
773}
774
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700775void CallStaticVoidMethodA(JNIEnv* env,
776 jclass cls, jmethodID methodID, jvalue* args) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700777 LOG(FATAL) << "Unimplemented";
778}
779
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700780jfieldID GetStaticFieldID(JNIEnv* env,
781 jclass clazz, const char* name, const char* sig) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700782 LOG(FATAL) << "Unimplemented";
783 return 0;
784}
785
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700786jobject GetStaticObjectField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700787 LOG(FATAL) << "Unimplemented";
788 return NULL;
789}
790
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700791jboolean GetStaticBooleanField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700792 LOG(FATAL) << "Unimplemented";
793 return JNI_FALSE;
794}
795
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700796jbyte GetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700797 LOG(FATAL) << "Unimplemented";
798 return 0;
799}
800
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700801jchar GetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700802 LOG(FATAL) << "Unimplemented";
803 return 0;
804}
805
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700806jshort GetStaticShortField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700807 LOG(FATAL) << "Unimplemented";
808 return 0;
809}
810
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700811jint GetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700812 LOG(FATAL) << "Unimplemented";
813 return 0;
814}
815
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700816jlong GetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700817 LOG(FATAL) << "Unimplemented";
818 return 0;
819}
820
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700821jfloat GetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700822 LOG(FATAL) << "Unimplemented";
823 return 0;
824}
825
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700826jdouble GetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700827 LOG(FATAL) << "Unimplemented";
828 return 0;
829}
830
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700831void SetStaticObjectField(JNIEnv* env,
832 jclass clazz, jfieldID fieldID, jobject value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700833 LOG(FATAL) << "Unimplemented";
834}
835
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700836void SetStaticBooleanField(JNIEnv* env,
837 jclass clazz, jfieldID fieldID, jboolean value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700838 LOG(FATAL) << "Unimplemented";
839}
840
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700841void SetStaticByteField(JNIEnv* env,
842 jclass clazz, jfieldID fieldID, jbyte value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700843 LOG(FATAL) << "Unimplemented";
844}
845
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700846void SetStaticCharField(JNIEnv* env,
847 jclass clazz, jfieldID fieldID, jchar value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700848 LOG(FATAL) << "Unimplemented";
849}
850
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700851void SetStaticShortField(JNIEnv* env,
852 jclass clazz, jfieldID fieldID, jshort value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700853 LOG(FATAL) << "Unimplemented";
854}
855
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700856void SetStaticIntField(JNIEnv* env,
857 jclass clazz, jfieldID fieldID, jint value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700858 LOG(FATAL) << "Unimplemented";
859}
860
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700861void SetStaticLongField(JNIEnv* env,
862 jclass clazz, jfieldID fieldID, jlong value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700863 LOG(FATAL) << "Unimplemented";
864}
865
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700866void SetStaticFloatField(JNIEnv* env,
867 jclass clazz, jfieldID fieldID, jfloat value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700868 LOG(FATAL) << "Unimplemented";
869}
870
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700871void SetStaticDoubleField(JNIEnv* env,
872 jclass clazz, jfieldID fieldID, jdouble value) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700873 LOG(FATAL) << "Unimplemented";
874}
875
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700876jstring NewString(JNIEnv* env, const jchar* unicode, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700877 LOG(FATAL) << "Unimplemented";
878 return NULL;
879}
880
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700881jsize GetStringLength(JNIEnv* env, jstring str) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700882 LOG(FATAL) << "Unimplemented";
883 return 0;
884}
885
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700886const jchar* GetStringChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700887 LOG(FATAL) << "Unimplemented";
888 return NULL;
889}
890
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700891void ReleaseStringChars(JNIEnv* env, jstring str, const jchar* chars) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700892 LOG(FATAL) << "Unimplemented";
893}
894
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700895jstring NewStringUTF(JNIEnv* env, const char* utf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700896 LOG(FATAL) << "Unimplemented";
897 return NULL;
898}
899
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700900jsize GetStringUTFLength(JNIEnv* env, jstring str) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700901 LOG(FATAL) << "Unimplemented";
902 return 0;
903}
904
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700905const char* GetStringUTFChars(JNIEnv* env, jstring str, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700906 LOG(FATAL) << "Unimplemented";
907 return NULL;
908}
909
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700910void ReleaseStringUTFChars(JNIEnv* env, jstring str, const char* chars) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700911 LOG(FATAL) << "Unimplemented";
912}
913
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700914jsize GetArrayLength(JNIEnv* env, jarray array) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700915 LOG(FATAL) << "Unimplemented";
916 return 0;
917}
918
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700919jobjectArray NewObjectArray(JNIEnv* env,
920 jsize len, jclass clazz, jobject init) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700921 LOG(FATAL) << "Unimplemented";
922 return NULL;
923}
924
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700925jobject GetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700926 LOG(FATAL) << "Unimplemented";
927 return NULL;
928}
929
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700930void SetObjectArrayElement(JNIEnv* env,
931 jobjectArray array, jsize index, jobject val) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700932 LOG(FATAL) << "Unimplemented";
933}
934
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700935jbooleanArray NewBooleanArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700936 LOG(FATAL) << "Unimplemented";
937 return NULL;
938}
939
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700940jbyteArray NewByteArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700941 LOG(FATAL) << "Unimplemented";
942 return NULL;
943}
944
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700945jcharArray NewCharArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700946 LOG(FATAL) << "Unimplemented";
947 return NULL;
948}
949
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700950jshortArray NewShortArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700951 LOG(FATAL) << "Unimplemented";
952 return NULL;
953}
954
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700955jintArray NewIntArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700956 LOG(FATAL) << "Unimplemented";
957 return NULL;
958}
959
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700960jlongArray NewLongArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700961 LOG(FATAL) << "Unimplemented";
962 return NULL;
963}
964
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700965jfloatArray NewFloatArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700966 LOG(FATAL) << "Unimplemented";
967 return NULL;
968}
969
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700970jdoubleArray NewDoubleArray(JNIEnv* env, jsize len) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700971 LOG(FATAL) << "Unimplemented";
972 return NULL;
973}
974
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700975jboolean* GetBooleanArrayElements(JNIEnv* env,
976 jbooleanArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700977 LOG(FATAL) << "Unimplemented";
978 return NULL;
979}
980
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700981jbyte* GetByteArrayElements(JNIEnv* env, jbyteArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700982 LOG(FATAL) << "Unimplemented";
983 return NULL;
984}
985
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700986jchar* GetCharArrayElements(JNIEnv* env, jcharArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700987 LOG(FATAL) << "Unimplemented";
988 return NULL;
989}
990
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700991jshort* GetShortArrayElements(JNIEnv* env,
992 jshortArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700993 LOG(FATAL) << "Unimplemented";
994 return NULL;
995}
996
Elliott Hughes40ef99e2011-08-11 17:44:34 -0700997jint* GetIntArrayElements(JNIEnv* env, jintArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -0700998 LOG(FATAL) << "Unimplemented";
999 return NULL;
1000}
1001
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001002jlong* GetLongArrayElements(JNIEnv* env, jlongArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001003 LOG(FATAL) << "Unimplemented";
1004 return NULL;
1005}
1006
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001007jfloat* GetFloatArrayElements(JNIEnv* env,
1008 jfloatArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001009 LOG(FATAL) << "Unimplemented";
1010 return NULL;
1011}
1012
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001013jdouble* GetDoubleArrayElements(JNIEnv* env,
1014 jdoubleArray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001015 LOG(FATAL) << "Unimplemented";
1016 return NULL;
1017}
1018
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001019void ReleaseBooleanArrayElements(JNIEnv* env,
1020 jbooleanArray array, jboolean* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001021 LOG(FATAL) << "Unimplemented";
1022}
1023
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001024void ReleaseByteArrayElements(JNIEnv* env,
1025 jbyteArray array, jbyte* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001026 LOG(FATAL) << "Unimplemented";
1027}
1028
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001029void ReleaseCharArrayElements(JNIEnv* env,
1030 jcharArray array, jchar* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001031 LOG(FATAL) << "Unimplemented";
1032}
1033
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001034void ReleaseShortArrayElements(JNIEnv* env,
1035 jshortArray array, jshort* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001036 LOG(FATAL) << "Unimplemented";
1037}
1038
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001039void ReleaseIntArrayElements(JNIEnv* env,
1040 jintArray array, jint* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001041 LOG(FATAL) << "Unimplemented";
1042}
1043
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001044void ReleaseLongArrayElements(JNIEnv* env,
1045 jlongArray array, jlong* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001046 LOG(FATAL) << "Unimplemented";
1047}
1048
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001049void ReleaseFloatArrayElements(JNIEnv* env,
1050 jfloatArray array, jfloat* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001051 LOG(FATAL) << "Unimplemented";
1052}
1053
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001054void ReleaseDoubleArrayElements(JNIEnv* env,
1055 jdoubleArray array, jdouble* elems, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001056 LOG(FATAL) << "Unimplemented";
1057}
1058
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001059void GetBooleanArrayRegion(JNIEnv* env,
1060 jbooleanArray array, jsize start, jsize l, jboolean* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001061 LOG(FATAL) << "Unimplemented";
1062}
1063
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001064void GetByteArrayRegion(JNIEnv* env,
1065 jbyteArray array, jsize start, jsize len, jbyte* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001066 LOG(FATAL) << "Unimplemented";
1067}
1068
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001069void GetCharArrayRegion(JNIEnv* env,
1070 jcharArray array, jsize start, jsize len, jchar* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001071 LOG(FATAL) << "Unimplemented";
1072}
1073
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001074void GetShortArrayRegion(JNIEnv* env,
1075 jshortArray array, jsize start, jsize len, jshort* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001076 LOG(FATAL) << "Unimplemented";
1077}
1078
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001079void GetIntArrayRegion(JNIEnv* env,
1080 jintArray array, jsize start, jsize len, jint* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001081 LOG(FATAL) << "Unimplemented";
1082}
1083
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001084void GetLongArrayRegion(JNIEnv* env,
1085 jlongArray array, jsize start, jsize len, jlong* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001086 LOG(FATAL) << "Unimplemented";
1087}
1088
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001089void GetFloatArrayRegion(JNIEnv* env,
1090 jfloatArray array, jsize start, jsize len, jfloat* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001091 LOG(FATAL) << "Unimplemented";
1092}
1093
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001094void GetDoubleArrayRegion(JNIEnv* env,
1095 jdoubleArray array, jsize start, jsize len, jdouble* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001096 LOG(FATAL) << "Unimplemented";
1097}
1098
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001099void SetBooleanArrayRegion(JNIEnv* env,
1100 jbooleanArray array, jsize start, jsize l, const jboolean* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001101 LOG(FATAL) << "Unimplemented";
1102}
1103
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001104void SetByteArrayRegion(JNIEnv* env,
1105 jbyteArray array, jsize start, jsize len, const jbyte* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001106 LOG(FATAL) << "Unimplemented";
1107}
1108
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001109void SetCharArrayRegion(JNIEnv* env,
1110 jcharArray array, jsize start, jsize len, const jchar* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001111 LOG(FATAL) << "Unimplemented";
1112}
1113
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001114void SetShortArrayRegion(JNIEnv* env,
1115 jshortArray array, jsize start, jsize len, const jshort* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001116 LOG(FATAL) << "Unimplemented";
1117}
1118
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001119void SetIntArrayRegion(JNIEnv* env,
1120 jintArray array, jsize start, jsize len, const jint* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001121 LOG(FATAL) << "Unimplemented";
1122}
1123
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001124void SetLongArrayRegion(JNIEnv* env,
1125 jlongArray array, jsize start, jsize len, const jlong* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001126 LOG(FATAL) << "Unimplemented";
1127}
1128
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001129void SetFloatArrayRegion(JNIEnv* env,
1130 jfloatArray array, jsize start, jsize len, const jfloat* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001131 LOG(FATAL) << "Unimplemented";
1132}
1133
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001134void SetDoubleArrayRegion(JNIEnv* env,
1135 jdoubleArray array, jsize start, jsize len, const jdouble* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001136 LOG(FATAL) << "Unimplemented";
1137}
1138
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001139jint RegisterNatives(JNIEnv* env,
1140 jclass clazz, const JNINativeMethod* methods, jint nMethods) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001141 LOG(FATAL) << "Unimplemented";
1142 return 0;
1143}
1144
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001145jint UnregisterNatives(JNIEnv* env, jclass clazz) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001146 LOG(FATAL) << "Unimplemented";
1147 return 0;
1148}
1149
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001150jint MonitorEnter(JNIEnv* env, jobject obj) {
1151 LOG(WARNING) << "MonitorEnter unimplemented";
1152 return 0;
1153}
1154
1155jint MonitorExit(JNIEnv* env, jobject obj) {
1156 LOG(WARNING) << "MonitorExit unimplemented";
1157 return 0;
1158}
1159
1160jint GetJavaVM(JNIEnv* env, JavaVM* *vm) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001161 LOG(FATAL) << "Unimplemented";
1162 return 0;
1163}
1164
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001165void GetStringRegion(JNIEnv* env,
1166 jstring str, jsize start, jsize len, jchar* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001167 LOG(FATAL) << "Unimplemented";
1168}
1169
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001170void GetStringUTFRegion(JNIEnv* env,
1171 jstring str, jsize start, jsize len, char* buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001172 LOG(FATAL) << "Unimplemented";
1173}
1174
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001175void* GetPrimitiveArrayCritical(JNIEnv* env,
1176 jarray array, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001177 LOG(FATAL) << "Unimplemented";
1178 return NULL;
1179}
1180
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001181void ReleasePrimitiveArrayCritical(JNIEnv* env,
1182 jarray array, void* carray, jint mode) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001183 LOG(FATAL) << "Unimplemented";
1184}
1185
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001186const jchar* GetStringCritical(JNIEnv* env, jstring s, jboolean* isCopy) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001187 LOG(FATAL) << "Unimplemented";
1188 return NULL;
1189}
1190
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001191void ReleaseStringCritical(JNIEnv* env, jstring s, const jchar* cstr) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001192 LOG(FATAL) << "Unimplemented";
1193}
1194
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001195jweak NewWeakGlobalRef(JNIEnv* env, jobject obj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001196 LOG(FATAL) << "Unimplemented";
1197 return NULL;
1198}
1199
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001200void DeleteWeakGlobalRef(JNIEnv* env, jweak obj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001201 LOG(FATAL) << "Unimplemented";
1202}
1203
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001204jboolean ExceptionCheck(JNIEnv* env) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001205 LOG(FATAL) << "Unimplemented";
1206 return JNI_FALSE;
1207}
1208
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001209jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001210 LOG(FATAL) << "Unimplemented";
1211 return NULL;
1212}
1213
1214
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001215void* GetDirectBufferAddress(JNIEnv* env, jobject buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001216 LOG(FATAL) << "Unimplemented";
1217 return NULL;
1218}
1219
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001220jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001221 LOG(FATAL) << "Unimplemented";
1222 return 0;
1223}
1224
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001225jobjectRefType GetObjectRefType(JNIEnv* env, jobject jobj) {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001226 LOG(FATAL) << "Unimplemented";
1227 return JNIInvalidRefType;
1228}
1229
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001230static const struct JNINativeInterface gNativeInterface = {
Carl Shapiroea4dca82011-08-01 13:45:38 -07001231 NULL, // reserved0.
1232 NULL, // reserved1.
1233 NULL, // reserved2.
1234 NULL, // reserved3.
1235 GetVersion,
1236 DefineClass,
1237 FindClass,
1238 FromReflectedMethod,
1239 FromReflectedField,
1240 ToReflectedMethod,
1241 GetSuperclass,
1242 IsAssignableFrom,
1243 ToReflectedField,
1244 Throw,
1245 ThrowNew,
1246 ExceptionOccurred,
1247 ExceptionDescribe,
1248 ExceptionClear,
1249 FatalError,
1250 PushLocalFrame,
1251 PopLocalFrame,
1252 NewGlobalRef,
1253 DeleteGlobalRef,
1254 DeleteLocalRef,
1255 IsSameObject,
1256 NewLocalRef,
1257 EnsureLocalCapacity,
1258 AllocObject,
1259 NewObject,
1260 NewObjectV,
1261 NewObjectA,
1262 GetObjectClass,
1263 IsInstanceOf,
1264 GetMethodID,
1265 CallObjectMethod,
1266 CallObjectMethodV,
1267 CallObjectMethodA,
1268 CallBooleanMethod,
1269 CallBooleanMethodV,
1270 CallBooleanMethodA,
1271 CallByteMethod,
1272 CallByteMethodV,
1273 CallByteMethodA,
1274 CallCharMethod,
1275 CallCharMethodV,
1276 CallCharMethodA,
1277 CallShortMethod,
1278 CallShortMethodV,
1279 CallShortMethodA,
1280 CallIntMethod,
1281 CallIntMethodV,
1282 CallIntMethodA,
1283 CallLongMethod,
1284 CallLongMethodV,
1285 CallLongMethodA,
1286 CallFloatMethod,
1287 CallFloatMethodV,
1288 CallFloatMethodA,
1289 CallDoubleMethod,
1290 CallDoubleMethodV,
1291 CallDoubleMethodA,
1292 CallVoidMethod,
1293 CallVoidMethodV,
1294 CallVoidMethodA,
1295 CallNonvirtualObjectMethod,
1296 CallNonvirtualObjectMethodV,
1297 CallNonvirtualObjectMethodA,
1298 CallNonvirtualBooleanMethod,
1299 CallNonvirtualBooleanMethodV,
1300 CallNonvirtualBooleanMethodA,
1301 CallNonvirtualByteMethod,
1302 CallNonvirtualByteMethodV,
1303 CallNonvirtualByteMethodA,
1304 CallNonvirtualCharMethod,
1305 CallNonvirtualCharMethodV,
1306 CallNonvirtualCharMethodA,
1307 CallNonvirtualShortMethod,
1308 CallNonvirtualShortMethodV,
1309 CallNonvirtualShortMethodA,
1310 CallNonvirtualIntMethod,
1311 CallNonvirtualIntMethodV,
1312 CallNonvirtualIntMethodA,
1313 CallNonvirtualLongMethod,
1314 CallNonvirtualLongMethodV,
1315 CallNonvirtualLongMethodA,
1316 CallNonvirtualFloatMethod,
1317 CallNonvirtualFloatMethodV,
1318 CallNonvirtualFloatMethodA,
1319 CallNonvirtualDoubleMethod,
1320 CallNonvirtualDoubleMethodV,
1321 CallNonvirtualDoubleMethodA,
1322 CallNonvirtualVoidMethod,
1323 CallNonvirtualVoidMethodV,
1324 CallNonvirtualVoidMethodA,
1325 GetFieldID,
1326 GetObjectField,
1327 GetBooleanField,
1328 GetByteField,
1329 GetCharField,
1330 GetShortField,
1331 GetIntField,
1332 GetLongField,
1333 GetFloatField,
1334 GetDoubleField,
1335 SetObjectField,
1336 SetBooleanField,
1337 SetByteField,
1338 SetCharField,
1339 SetShortField,
1340 SetIntField,
1341 SetLongField,
1342 SetFloatField,
1343 SetDoubleField,
1344 GetStaticMethodID,
1345 CallStaticObjectMethod,
1346 CallStaticObjectMethodV,
1347 CallStaticObjectMethodA,
1348 CallStaticBooleanMethod,
1349 CallStaticBooleanMethodV,
1350 CallStaticBooleanMethodA,
1351 CallStaticByteMethod,
1352 CallStaticByteMethodV,
1353 CallStaticByteMethodA,
1354 CallStaticCharMethod,
1355 CallStaticCharMethodV,
1356 CallStaticCharMethodA,
1357 CallStaticShortMethod,
1358 CallStaticShortMethodV,
1359 CallStaticShortMethodA,
1360 CallStaticIntMethod,
1361 CallStaticIntMethodV,
1362 CallStaticIntMethodA,
1363 CallStaticLongMethod,
1364 CallStaticLongMethodV,
1365 CallStaticLongMethodA,
1366 CallStaticFloatMethod,
1367 CallStaticFloatMethodV,
1368 CallStaticFloatMethodA,
1369 CallStaticDoubleMethod,
1370 CallStaticDoubleMethodV,
1371 CallStaticDoubleMethodA,
1372 CallStaticVoidMethod,
1373 CallStaticVoidMethodV,
1374 CallStaticVoidMethodA,
1375 GetStaticFieldID,
1376 GetStaticObjectField,
1377 GetStaticBooleanField,
1378 GetStaticByteField,
1379 GetStaticCharField,
1380 GetStaticShortField,
1381 GetStaticIntField,
1382 GetStaticLongField,
1383 GetStaticFloatField,
1384 GetStaticDoubleField,
1385 SetStaticObjectField,
1386 SetStaticBooleanField,
1387 SetStaticByteField,
1388 SetStaticCharField,
1389 SetStaticShortField,
1390 SetStaticIntField,
1391 SetStaticLongField,
1392 SetStaticFloatField,
1393 SetStaticDoubleField,
1394 NewString,
1395 GetStringLength,
1396 GetStringChars,
1397 ReleaseStringChars,
1398 NewStringUTF,
1399 GetStringUTFLength,
1400 GetStringUTFChars,
1401 ReleaseStringUTFChars,
1402 GetArrayLength,
1403 NewObjectArray,
1404 GetObjectArrayElement,
1405 SetObjectArrayElement,
1406 NewBooleanArray,
1407 NewByteArray,
1408 NewCharArray,
1409 NewShortArray,
1410 NewIntArray,
1411 NewLongArray,
1412 NewFloatArray,
1413 NewDoubleArray,
1414 GetBooleanArrayElements,
1415 GetByteArrayElements,
1416 GetCharArrayElements,
1417 GetShortArrayElements,
1418 GetIntArrayElements,
1419 GetLongArrayElements,
1420 GetFloatArrayElements,
1421 GetDoubleArrayElements,
1422 ReleaseBooleanArrayElements,
1423 ReleaseByteArrayElements,
1424 ReleaseCharArrayElements,
1425 ReleaseShortArrayElements,
1426 ReleaseIntArrayElements,
1427 ReleaseLongArrayElements,
1428 ReleaseFloatArrayElements,
1429 ReleaseDoubleArrayElements,
1430 GetBooleanArrayRegion,
1431 GetByteArrayRegion,
1432 GetCharArrayRegion,
1433 GetShortArrayRegion,
1434 GetIntArrayRegion,
1435 GetLongArrayRegion,
1436 GetFloatArrayRegion,
1437 GetDoubleArrayRegion,
1438 SetBooleanArrayRegion,
1439 SetByteArrayRegion,
1440 SetCharArrayRegion,
1441 SetShortArrayRegion,
1442 SetIntArrayRegion,
1443 SetLongArrayRegion,
1444 SetFloatArrayRegion,
1445 SetDoubleArrayRegion,
1446 RegisterNatives,
1447 UnregisterNatives,
1448 MonitorEnter,
1449 MonitorExit,
1450 GetJavaVM,
1451 GetStringRegion,
1452 GetStringUTFRegion,
1453 GetPrimitiveArrayCritical,
1454 ReleasePrimitiveArrayCritical,
1455 GetStringCritical,
1456 ReleaseStringCritical,
1457 NewWeakGlobalRef,
1458 DeleteWeakGlobalRef,
1459 ExceptionCheck,
1460 NewDirectByteBuffer,
1461 GetDirectBufferAddress,
1462 GetDirectBufferCapacity,
1463 GetObjectRefType,
1464};
1465
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001466void MonitorEnterHelper(JNIEnv* env, jobject obj) {
1467 MonitorEnter(env, obj); // Ignore the result.
1468}
1469
1470void MonitorExitHelper(JNIEnv* env, jobject obj) {
1471 MonitorExit(env, obj); // Ignore the result.
1472}
1473
1474JNIEnv* CreateJNIEnv() {
1475 JNIEnvExt* result = (JNIEnvExt*) calloc(1, sizeof(JNIEnvExt));
1476 result->fns = &gNativeInterface;
1477 result->self = Thread::Current();
1478 result->MonitorEnterHelper = &MonitorEnterHelper;
1479 result->MonitorExitHelper = &MonitorExitHelper;
1480 return reinterpret_cast<JNIEnv*>(result);
1481}
1482
Carl Shapiroea4dca82011-08-01 13:45:38 -07001483// JNI Invocation interface.
1484
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001485extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, void** p_env, void* vm_args) {
1486 const JavaVMInitArgs* args = static_cast<JavaVMInitArgs*>(vm_args);
1487 if (args->version < JNI_VERSION_1_2) {
1488 return JNI_EVERSION;
1489 }
1490 Runtime::Options options;
1491 for (int i = 0; i < args->nOptions; ++i) {
1492 JavaVMOption* option = &args->options[i];
Carl Shapirofc322c72011-07-27 00:20:01 -07001493 options.push_back(std::make_pair(StringPiece(option->optionString),
1494 option->extraInfo));
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001495 }
1496 bool ignore_unrecognized = args->ignoreUnrecognized;
1497 scoped_ptr<Runtime> runtime(Runtime::Create(options, ignore_unrecognized));
1498 if (runtime == NULL) {
1499 return JNI_ERR;
1500 } else {
1501 *p_env = reinterpret_cast<JNIEnv*>(Thread::Current()->GetJniEnv());
1502 *p_vm = reinterpret_cast<JavaVM*>(runtime.release());
1503 return JNI_OK;
1504 }
1505}
1506
1507extern "C" jint JNI_GetCreatedJavaVMs(JavaVM** vmBuf, jsize bufLen,
1508 jsize* nVMs) {
1509 Runtime* runtime = Runtime::Current();
1510 if (runtime == NULL) {
1511 *nVMs = 0;
1512 } else {
1513 *nVMs = 1;
1514 vmBuf[0] = reinterpret_cast<JavaVM*>(runtime);
1515 }
1516 return JNI_OK;
1517}
1518
1519// Historically unsupported.
1520extern "C" jint JNI_GetDefaultJavaVMInitArgs(void* vm_args) {
1521 return JNI_ERR;
1522}
1523
Carl Shapiroea4dca82011-08-01 13:45:38 -07001524jint JniInvokeInterface::DestroyJavaVM(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001525 if (vm == NULL) {
1526 return JNI_ERR;
1527 } else {
1528 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1529 delete runtime;
1530 return JNI_OK;
1531 }
1532}
1533
Carl Shapiroea4dca82011-08-01 13:45:38 -07001534jint JniInvokeInterface::AttachCurrentThread(JavaVM* vm,
1535 JNIEnv** p_env,
1536 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001537 if (vm == NULL || p_env == NULL) {
1538 return JNI_ERR;
1539 }
1540 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001541 const char* name = NULL;
1542 if (thr_args != NULL) {
1543 // TODO: check version
1544 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1545 // TODO: thread group
1546 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001547 bool success = runtime->AttachCurrentThread(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001548 if (!success) {
1549 return JNI_ERR;
1550 } else {
1551 return JNI_OK;
1552 }
1553}
1554
Carl Shapiroea4dca82011-08-01 13:45:38 -07001555jint JniInvokeInterface::DetachCurrentThread(JavaVM* vm) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001556 if (vm == NULL) {
1557 return JNI_ERR;
1558 } else {
1559 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
1560 runtime->DetachCurrentThread();
1561 return JNI_OK;
1562 }
1563}
1564
Carl Shapiroea4dca82011-08-01 13:45:38 -07001565jint JniInvokeInterface::GetEnv(JavaVM *vm, void **env, jint version) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001566 if (version < JNI_VERSION_1_1 || version > JNI_VERSION_1_6) {
1567 return JNI_EVERSION;
1568 }
1569 if (vm == NULL || env == NULL) {
1570 return JNI_ERR;
1571 }
1572 Thread* thread = Thread::Current();
1573 if (thread == NULL) {
1574 *env = NULL;
1575 return JNI_EDETACHED;
1576 }
1577 *env = thread->GetJniEnv();
1578 return JNI_OK;
1579}
1580
Carl Shapiroea4dca82011-08-01 13:45:38 -07001581jint JniInvokeInterface::AttachCurrentThreadAsDaemon(JavaVM* vm,
1582 JNIEnv** p_env,
1583 void* thr_args) {
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001584 if (vm == NULL || p_env == NULL) {
1585 return JNI_ERR;
1586 }
1587 Runtime* runtime = reinterpret_cast<Runtime*>(vm);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001588 const char* name = NULL;
1589 if (thr_args != NULL) {
1590 // TODO: check version
1591 name = static_cast<JavaVMAttachArgs*>(thr_args)->name;
1592 // TODO: thread group
1593 }
Elliott Hughes40ef99e2011-08-11 17:44:34 -07001594 bool success = runtime->AttachCurrentThreadAsDaemon(name, p_env);
Carl Shapiro2ed144c2011-07-26 16:52:08 -07001595 if (!success) {
1596 return JNI_ERR;
1597 } else {
1598 return JNI_OK;
1599 }
1600}
1601
Carl Shapiroea4dca82011-08-01 13:45:38 -07001602struct JNIInvokeInterface JniInvokeInterface::invoke_interface_ = {
1603 NULL, // reserved0
1604 NULL, // reserved1
1605 NULL, // reserved2
1606 DestroyJavaVM,
1607 AttachCurrentThread,
1608 DetachCurrentThread,
1609 GetEnv,
1610 AttachCurrentThreadAsDaemon
1611};
1612
Ian Rogersdf20fe02011-07-20 20:34:16 -07001613} // namespace art