--- a/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp Fri Mar 16 08:26:53 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp Fri Mar 16 09:12:13 2018 -0400
@@ -34,6 +34,19 @@
// FIXME: fix Synthetic attribute
// FIXME: per Serguei, add error return handling for ConstantPool::copy_cpool_bytes()
+JvmtiConstantPoolReconstituter::JvmtiConstantPoolReconstituter(InstanceKlass* ik) {
+ set_error(JVMTI_ERROR_NONE);
+ _ik = ik;
+ _cpool = constantPoolHandle(Thread::current(), ik->constants());
+ _symmap = new SymbolHashMap();
+ _classmap = new SymbolHashMap();
+ _cpool_size = _cpool->hash_entries_to(_symmap, _classmap);
+ if (_cpool_size == 0) {
+ set_error(JVMTI_ERROR_OUT_OF_MEMORY);
+ } else if (_cpool_size < 0) {
+ set_error(JVMTI_ERROR_INTERNAL);
+ }
+}
// Write the field information portion of ClassFile structure
// JVMSpec| u2 fields_count;