Mercurial > hg > truffle
comparison src/share/vm/prims/jvm.h @ 3895:19241ae0d839
7082263: Reflection::resolve_field/field_get/field_set are broken
Reviewed-by: kvn, dholmes, stefank, coleenp
author | never |
---|---|
date | Tue, 30 Aug 2011 00:54:09 -0700 |
parents | ed69575596ac |
children | e984655be425 |
comparison
equal
deleted
inserted
replaced
3894:b27c72d69fd1 | 3895:19241ae0d839 |
---|---|
24 | 24 |
25 #ifndef SHARE_VM_PRIMS_JVM_H | 25 #ifndef SHARE_VM_PRIMS_JVM_H |
26 #define SHARE_VM_PRIMS_JVM_H | 26 #define SHARE_VM_PRIMS_JVM_H |
27 | 27 |
28 #include "prims/jni.h" | 28 #include "prims/jni.h" |
29 #include "runtime/reflectionCompat.hpp" | |
30 #ifdef TARGET_OS_FAMILY_linux | 29 #ifdef TARGET_OS_FAMILY_linux |
31 # include "jvm_linux.h" | 30 # include "jvm_linux.h" |
32 #endif | 31 #endif |
33 #ifdef TARGET_OS_FAMILY_solaris | 32 #ifdef TARGET_OS_FAMILY_solaris |
34 # include "jvm_solaris.h" | 33 # include "jvm_solaris.h" |
41 #define _JAVASOFT_JVM_H_ | 40 #define _JAVASOFT_JVM_H_ |
42 | 41 |
43 // HotSpot integration note: | 42 // HotSpot integration note: |
44 // | 43 // |
45 // This file and jvm.h used with the JDK are identical, | 44 // This file and jvm.h used with the JDK are identical, |
46 // except for the three includes removed below and the | 45 // except for the three includes removed below |
47 // SUPPORT_OLD_REFLECTION sections cut out of the JDK's jvm.h. | |
48 | 46 |
49 // #include <sys/stat.h> | 47 // #include <sys/stat.h> |
50 // #include "jni.h" | 48 // #include "jni.h" |
51 // #include "jvm_md.h" | 49 // #include "jvm_md.h" |
52 | 50 |
440 JNIEXPORT jclass JNICALL | 438 JNIEXPORT jclass JNICALL |
441 JVM_DefineClassWithSourceCond(JNIEnv *env, const char *name, | 439 JVM_DefineClassWithSourceCond(JNIEnv *env, const char *name, |
442 jobject loader, const jbyte *buf, | 440 jobject loader, const jbyte *buf, |
443 jsize len, jobject pd, const char *source, | 441 jsize len, jobject pd, const char *source, |
444 jboolean verify); | 442 jboolean verify); |
445 | |
446 /* Define a class with a source (MLVM) */ | |
447 JNIEXPORT jclass JNICALL | |
448 JVM_DefineClassWithCP(JNIEnv *env, const char *name, jobject loader, | |
449 const jbyte *buf, jsize len, jobject pd, | |
450 const char *source, | |
451 // same args as JVM_DefineClassWithSource to this point | |
452 jobjectArray constants); | |
453 | 443 |
454 /* | 444 /* |
455 * Reflection support functions | 445 * Reflection support functions |
456 */ | 446 */ |
457 | 447 |
1440 JVM_RawMonitorEnter(void *mon); | 1430 JVM_RawMonitorEnter(void *mon); |
1441 | 1431 |
1442 JNIEXPORT void JNICALL | 1432 JNIEXPORT void JNICALL |
1443 JVM_RawMonitorExit(void *mon); | 1433 JVM_RawMonitorExit(void *mon); |
1444 | 1434 |
1445 | |
1446 #ifdef SUPPORT_OLD_REFLECTION | |
1447 | |
1448 /* | |
1449 * Support for old native code-based (pre-JDK 1.4) reflection implementation. | |
1450 * Disabled by default in the product build. | |
1451 * | |
1452 * See reflection.hpp for information on SUPPORT_OLD_REFLECTION | |
1453 */ | |
1454 | |
1455 /* | |
1456 * reflecting fields and methods. | |
1457 * which: 0 --- MEMBER_PUBLIC | |
1458 * 1 --- MEMBER_DECLARED | |
1459 * NOTE: absent in product build by default | |
1460 */ | |
1461 | |
1462 JNIEXPORT jobjectArray JNICALL | |
1463 JVM_GetClassFields(JNIEnv *env, jclass cls, jint which); | |
1464 | |
1465 JNIEXPORT jobjectArray JNICALL | |
1466 JVM_GetClassMethods(JNIEnv *env, jclass cls, jint which); | |
1467 | |
1468 JNIEXPORT jobjectArray JNICALL | |
1469 JVM_GetClassConstructors(JNIEnv *env, jclass cls, jint which); | |
1470 | |
1471 JNIEXPORT jobject JNICALL | |
1472 JVM_GetClassField(JNIEnv *env, jclass cls, jstring name, jint which); | |
1473 | |
1474 JNIEXPORT jobject JNICALL | |
1475 JVM_GetClassMethod(JNIEnv *env, jclass cls, jstring name, jobjectArray types, | |
1476 jint which); | |
1477 JNIEXPORT jobject JNICALL | |
1478 JVM_GetClassConstructor(JNIEnv *env, jclass cls, jobjectArray types, | |
1479 jint which); | |
1480 | |
1481 /* | |
1482 * Implements Class.newInstance | |
1483 */ | |
1484 JNIEXPORT jobject JNICALL | |
1485 JVM_NewInstance(JNIEnv *env, jclass cls); | |
1486 | |
1487 /* | |
1488 * java.lang.reflect.Field | |
1489 */ | |
1490 JNIEXPORT jobject JNICALL | |
1491 JVM_GetField(JNIEnv *env, jobject field, jobject obj); | |
1492 | |
1493 JNIEXPORT jvalue JNICALL | |
1494 JVM_GetPrimitiveField(JNIEnv *env, jobject field, jobject obj, | |
1495 unsigned char wCode); | |
1496 | |
1497 JNIEXPORT void JNICALL | |
1498 JVM_SetField(JNIEnv *env, jobject field, jobject obj, jobject val); | |
1499 | |
1500 JNIEXPORT void JNICALL | |
1501 JVM_SetPrimitiveField(JNIEnv *env, jobject field, jobject obj, jvalue v, | |
1502 unsigned char vCode); | |
1503 | |
1504 /* | 1435 /* |
1505 * java.lang.reflect.Method | 1436 * java.lang.reflect.Method |
1506 */ | 1437 */ |
1507 JNIEXPORT jobject JNICALL | 1438 JNIEXPORT jobject JNICALL |
1508 JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0); | 1439 JVM_InvokeMethod(JNIEnv *env, jobject method, jobject obj, jobjectArray args0); |
1510 /* | 1441 /* |
1511 * java.lang.reflect.Constructor | 1442 * java.lang.reflect.Constructor |
1512 */ | 1443 */ |
1513 JNIEXPORT jobject JNICALL | 1444 JNIEXPORT jobject JNICALL |
1514 JVM_NewInstanceFromConstructor(JNIEnv *env, jobject c, jobjectArray args0); | 1445 JVM_NewInstanceFromConstructor(JNIEnv *env, jobject c, jobjectArray args0); |
1515 | |
1516 #endif /* SUPPORT_OLD_REFLECTION */ | |
1517 | 1446 |
1518 /* | 1447 /* |
1519 * java.lang.management support | 1448 * java.lang.management support |
1520 */ | 1449 */ |
1521 JNIEXPORT void* JNICALL | 1450 JNIEXPORT void* JNICALL |