src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp
changeset 49449 ef5d5d343e2a
parent 47216 71c04702a3d5
child 49480 d7df2dd501ce
--- 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;