< prev index next >

src/hotspot/share/classfile/classListParser.cpp

Print this page

@@ -387,12 +387,12 @@
 
   if (klass != NULL && klass->is_instance_klass() && is_id_specified()) {
     InstanceKlass* ik = InstanceKlass::cast(klass);
     int id = this->id();
     SystemDictionaryShared::update_shared_entry(ik, id);
-    InstanceKlass* old = table()->lookup(id);
-    if (old != NULL && old != ik) {
+    InstanceKlass** old_ptr = table()->lookup(id);
+    if (old_ptr != NULL) {
       error("Duplicated ID %d for class %s", id, _class_name);
     }
     table()->add(id, ik);
   }
 

@@ -402,15 +402,16 @@
 bool ClassListParser::is_loading_from_source() {
   return (_source != NULL);
 }
 
 InstanceKlass* ClassListParser::lookup_class_by_id(int id) {
-  InstanceKlass* klass = table()->lookup(id);
-  if (klass == NULL) {
+  InstanceKlass** klass_ptr = table()->lookup(id);
+  if (klass_ptr == NULL) {
     error("Class ID %d has not been defined", id);
   }
-  return klass;
+  assert(*klass_ptr != NULL, "must be");
+  return *klass_ptr;
 }
 
 
 InstanceKlass* ClassListParser::lookup_super_for_current_class(Symbol* super_name) {
   if (!is_loading_from_source()) {
< prev index next >