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);