Mercurial > hg > truffle
comparison src/share/vm/c1x/c1x_VMExits.cpp @ 2492:4e5515d09314
Fixed merge issues.
- Accessing static fields from the java.lang.Class object instead of the klassOop (1-line-change)
- Fixed issue with RiField object caching (the caching was only taking the offset as a field ID, but need to take offset+is_static)
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 22 Apr 2011 19:00:07 +0200 |
parents | 34354e2e40a3 |
children | 3e3e8bd12730 |
comparison
equal
deleted
inserted
replaced
2491:0654ee04b214 | 2492:4e5515d09314 |
---|---|
134 JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethodUnresolved_name(), vmSymbols::createRiMethodUnresolved_signature(), &args, THREAD); | 134 JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethodUnresolved_name(), vmSymbols::createRiMethodUnresolved_signature(), &args, THREAD); |
135 check_pending_exception("Error while calling createRiMethodUnresolved"); | 135 check_pending_exception("Error while calling createRiMethodUnresolved"); |
136 return (oop) result.get_jobject(); | 136 return (oop) result.get_jobject(); |
137 } | 137 } |
138 | 138 |
139 oop VMExits::createRiField(Handle holder, Handle name, Handle type, int index, TRAPS) { | 139 oop VMExits::createRiField(Handle holder, Handle name, Handle type, int index, int flags, TRAPS) { |
140 assert(!holder.is_null(), "just checking"); | 140 assert(!holder.is_null(), "just checking"); |
141 assert(!name.is_null(), "just checking"); | 141 assert(!name.is_null(), "just checking"); |
142 assert(!type.is_null(), "just checking"); | 142 assert(!type.is_null(), "just checking"); |
143 JavaValue result(T_OBJECT); | 143 JavaValue result(T_OBJECT); |
144 JavaCallArguments args; | 144 JavaCallArguments args; |
145 args.push_oop(instance()); | 145 args.push_oop(instance()); |
146 args.push_oop(holder); | 146 args.push_oop(holder); |
147 args.push_oop(name); | 147 args.push_oop(name); |
148 args.push_oop(type); | 148 args.push_oop(type); |
149 args.push_int(index); | 149 args.push_int(index); |
150 args.push_int(flags); | |
150 JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiField_name(), vmSymbols::createRiField_signature(), &args, THREAD); | 151 JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiField_name(), vmSymbols::createRiField_signature(), &args, THREAD); |
151 check_pending_exception("Error while calling createRiField"); | 152 check_pending_exception("Error while calling createRiField"); |
153 assert(result.get_type() == T_OBJECT, "just checking"); | |
152 return (oop) result.get_jobject(); | 154 return (oop) result.get_jobject(); |
153 } | 155 } |
154 | 156 |
155 oop VMExits::createRiType(jlong vmId, Handle name, TRAPS) { | 157 oop VMExits::createRiType(jlong vmId, Handle name, TRAPS) { |
156 assert(!name.is_null(), "just checking"); | 158 assert(!name.is_null(), "just checking"); |