7046732: JSR 292 assert(result == cpce->f1()) failed: expected result for assembly code
Reviewed-by: kvn, iveresov, jrose
--- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Tue May 24 20:24:11 2011 -0700
+++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Wed May 25 16:04:09 2011 -0700
@@ -139,9 +139,15 @@
ResourceMark rm(thread);
methodHandle m (thread, method(thread));
Bytecode_loadconstant ldc(m, bci(thread));
- oop result = ldc.resolve_constant(THREAD);
- DEBUG_ONLY(ConstantPoolCacheEntry* cpce = m->constants()->cache()->entry_at(ldc.cache_index()));
- assert(result == cpce->f1(), "expected result for assembly code");
+ oop result = ldc.resolve_constant(CHECK);
+#ifdef ASSERT
+ {
+ // The bytecode wrappers aren't GC-safe so construct a new one
+ Bytecode_loadconstant ldc2(m, bci(thread));
+ ConstantPoolCacheEntry* cpce = m->constants()->cache()->entry_at(ldc2.cache_index());
+ assert(result == cpce->f1(), "expected result for assembly code");
+ }
+#endif
}
IRT_END