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