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