< prev index next >

src/share/vm/oops/constantPool.cpp

Print this page

        

@@ -219,11 +219,15 @@
   }
 }
 
 Klass* ConstantPool::klass_at_impl(const constantPoolHandle& this_cp, int which,
                                    bool save_resolution_error, TRAPS) {
-  assert(THREAD->is_Java_thread(), "must be a Java thread");
+  //assert(THREAD->is_Java_thread(), "must be a Java thread");
+  // TODO re-enable this assert as soon as we have a better solution
+  // With ValueTypePassFieldsAsArgs, we need to resolve call sites from the GC thread
+  // to determine the callee signature in nmethod::preserve_callee_argument_oops().
+  assert(ValueTypePassFieldsAsArgs || THREAD->is_Java_thread(), "must be a Java thread");
 
   // A resolved constantPool entry will contain a Klass*, otherwise a Symbol*.
   // It is not safe to rely on the tag bit's here, since we don't have a lock, and
   // the entry and tag is not updated atomicly.
   CPSlot entry = this_cp->slot_at(which);
< prev index next >