hotspot/src/share/vm/prims/methodHandleWalk.cpp
changeset 8296 b1c2163e4e59
parent 8076 96d498ec7ae1
child 8675 e9fef2a9bef7
equal deleted inserted replaced
8295:a2b2a8a3aaee 8296:b1c2163e4e59
  1132 }
  1132 }
  1133 
  1133 
  1134 
  1134 
  1135 constantPoolHandle MethodHandleCompiler::get_constant_pool(TRAPS) const {
  1135 constantPoolHandle MethodHandleCompiler::get_constant_pool(TRAPS) const {
  1136   constantPoolHandle nullHandle;
  1136   constantPoolHandle nullHandle;
  1137   bool is_conc_safe = true;
  1137   constantPoolOop cpool_oop = oopFactory::new_constantPool(_constants.length(),
  1138   constantPoolOop cpool_oop = oopFactory::new_constantPool(_constants.length(), is_conc_safe, CHECK_(nullHandle));
  1138                                                            oopDesc::IsSafeConc,
       
  1139                                                            CHECK_(nullHandle));
  1139   constantPoolHandle cpool(THREAD, cpool_oop);
  1140   constantPoolHandle cpool(THREAD, cpool_oop);
  1140 
  1141 
  1141   // Fill the real constant pool skipping the zero element.
  1142   // Fill the real constant pool skipping the zero element.
  1142   for (int i = 1; i < _constants.length(); i++) {
  1143   for (int i = 1; i < _constants.length(); i++) {
  1143     ConstantValue* cv = _constants.at(i);
  1144     ConstantValue* cv = _constants.at(i);
  1178   if (for_invokedynamic())
  1179   if (for_invokedynamic())
  1179     flags_bits = (/*JVM_MH_INVOKE_BITS |*/ JVM_ACC_PUBLIC | JVM_ACC_FINAL | JVM_ACC_SYNTHETIC | JVM_ACC_STATIC);
  1180     flags_bits = (/*JVM_MH_INVOKE_BITS |*/ JVM_ACC_PUBLIC | JVM_ACC_FINAL | JVM_ACC_SYNTHETIC | JVM_ACC_STATIC);
  1180   else
  1181   else
  1181     flags_bits = (/*JVM_MH_INVOKE_BITS |*/ JVM_ACC_PUBLIC | JVM_ACC_FINAL | JVM_ACC_SYNTHETIC);
  1182     flags_bits = (/*JVM_MH_INVOKE_BITS |*/ JVM_ACC_PUBLIC | JVM_ACC_FINAL | JVM_ACC_SYNTHETIC);
  1182 
  1183 
  1183   bool is_conc_safe = true;
       
  1184   methodOop m_oop = oopFactory::new_method(bytecode_length(),
  1184   methodOop m_oop = oopFactory::new_method(bytecode_length(),
  1185                                            accessFlags_from(flags_bits),
  1185                                            accessFlags_from(flags_bits),
  1186                                            0, 0, 0, is_conc_safe, CHECK_(nullHandle));
  1186                                            0, 0, 0, oopDesc::IsSafeConc, CHECK_(nullHandle));
  1187   methodHandle m(THREAD, m_oop);
  1187   methodHandle m(THREAD, m_oop);
  1188   m_oop = NULL;  // oop not GC safe
  1188   m_oop = NULL;  // oop not GC safe
  1189 
  1189 
  1190   constantPoolHandle cpool = get_constant_pool(CHECK_(nullHandle));
  1190   constantPoolHandle cpool = get_constant_pool(CHECK_(nullHandle));
  1191   m->set_constants(cpool());
  1191   m->set_constants(cpool());