Mercurial > hg > graal-compiler
comparison src/share/vm/prims/jni.cpp @ 8124:5fc51c1ecdeb
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 05 Mar 2013 23:44:54 +0100 |
parents | 291ffc492eb6 db9981fd3124 |
children | b8f261ba79c6 |
comparison
equal
deleted
inserted
replaced
7943:a413bcd552a4 | 8124:5fc51c1ecdeb |
---|---|
30 #include "classfile/javaClasses.hpp" | 30 #include "classfile/javaClasses.hpp" |
31 #include "classfile/symbolTable.hpp" | 31 #include "classfile/symbolTable.hpp" |
32 #include "classfile/systemDictionary.hpp" | 32 #include "classfile/systemDictionary.hpp" |
33 #include "classfile/vmSymbols.hpp" | 33 #include "classfile/vmSymbols.hpp" |
34 #include "interpreter/linkResolver.hpp" | 34 #include "interpreter/linkResolver.hpp" |
35 #include "utilities/macros.hpp" | |
35 #ifdef GRAAL | 36 #ifdef GRAAL |
36 #include "graal/graalCompiler.hpp" | 37 #include "graal/graalCompiler.hpp" |
37 #endif | 38 #endif |
38 #ifndef SERIALGC | 39 #if INCLUDE_ALL_GCS |
39 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" | 40 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
40 #endif // SERIALGC | 41 #endif // INCLUDE_ALL_GCS |
41 #include "memory/allocation.hpp" | 42 #include "memory/allocation.hpp" |
42 #include "memory/allocation.inline.hpp" | 43 #include "memory/allocation.inline.hpp" |
43 #include "memory/gcLocker.inline.hpp" | 44 #include "memory/gcLocker.inline.hpp" |
44 #include "memory/oopFactory.hpp" | 45 #include "memory/oopFactory.hpp" |
45 #include "memory/universe.inline.hpp" | 46 #include "memory/universe.inline.hpp" |
2652 // jni_GetField_probe() assumes that is okay to create handles. | 2653 // jni_GetField_probe() assumes that is okay to create handles. |
2653 if (JvmtiExport::should_post_field_access()) { | 2654 if (JvmtiExport::should_post_field_access()) { |
2654 o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false); | 2655 o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false); |
2655 } | 2656 } |
2656 jobject ret = JNIHandles::make_local(env, o->obj_field(offset)); | 2657 jobject ret = JNIHandles::make_local(env, o->obj_field(offset)); |
2657 #ifndef SERIALGC | 2658 #if INCLUDE_ALL_GCS |
2658 // If G1 is enabled and we are accessing the value of the referent | 2659 // If G1 is enabled and we are accessing the value of the referent |
2659 // field in a reference object then we need to register a non-null | 2660 // field in a reference object then we need to register a non-null |
2660 // referent with the SATB barrier. | 2661 // referent with the SATB barrier. |
2661 if (UseG1GC) { | 2662 if (UseG1GC) { |
2662 bool needs_barrier = false; | 2663 bool needs_barrier = false; |
2671 if (needs_barrier) { | 2672 if (needs_barrier) { |
2672 oop referent = JNIHandles::resolve(ret); | 2673 oop referent = JNIHandles::resolve(ret); |
2673 G1SATBCardTableModRefBS::enqueue(referent); | 2674 G1SATBCardTableModRefBS::enqueue(referent); |
2674 } | 2675 } |
2675 } | 2676 } |
2676 #endif // SERIALGC | 2677 #endif // INCLUDE_ALL_GCS |
2677 #ifndef USDT2 | 2678 #ifndef USDT2 |
2678 DTRACE_PROBE1(hotspot_jni, GetObjectField__return, ret); | 2679 DTRACE_PROBE1(hotspot_jni, GetObjectField__return, ret); |
2679 #else /* USDT2 */ | 2680 #else /* USDT2 */ |
2680 HOTSPOT_JNI_GETOBJECTFIELD_RETURN( | 2681 HOTSPOT_JNI_GETOBJECTFIELD_RETURN( |
2681 ret); | 2682 ret); |