src/share/vm/oops/klass.cpp

changeset 4178
bdb5f8c9978b
parent 4142
d8ce2825b193
child 4278
070d523b96a7
equal deleted inserted replaced
4153:b9a9ed0f8eeb 4178:bdb5f8c9978b
354 assert(s != this, "sanity check"); 354 assert(s != this, "sanity check");
355 _next_sibling = s; 355 _next_sibling = s;
356 } 356 }
357 357
358 void Klass::append_to_sibling_list() { 358 void Klass::append_to_sibling_list() {
359 debug_only(if (!SharedSkipVerify) verify();) 359 debug_only(verify();)
360 // add ourselves to superklass' subklass list 360 // add ourselves to superklass' subklass list
361 InstanceKlass* super = superklass(); 361 InstanceKlass* super = superklass();
362 if (super == NULL) return; // special case: class Object 362 if (super == NULL) return; // special case: class Object
363 assert(SharedSkipVerify || 363 assert((!super->is_interface() // interfaces cannot be supers
364 (!super->is_interface() // interfaces cannot be supers
365 && (super->superklass() == NULL || !is_interface())), 364 && (super->superklass() == NULL || !is_interface())),
366 "an interface can only be a subklass of Object"); 365 "an interface can only be a subklass of Object");
367 Klass* prev_first_subklass = super->subklass_oop(); 366 Klass* prev_first_subklass = super->subklass_oop();
368 if (prev_first_subklass != NULL) { 367 if (prev_first_subklass != NULL) {
369 // set our sibling to be the superklass' previous first subklass 368 // set our sibling to be the superklass' previous first subklass
370 set_next_sibling(prev_first_subklass); 369 set_next_sibling(prev_first_subklass);
371 } 370 }
372 // make ourselves the superklass' first subklass 371 // make ourselves the superklass' first subklass
373 super->set_subklass(this); 372 super->set_subklass(this);
374 debug_only(if (!SharedSkipVerify) verify();) 373 debug_only(verify();)
375 } 374 }
376 375
377 void Klass::remove_from_sibling_list() { 376 void Klass::remove_from_sibling_list() {
378 // remove receiver from sibling list 377 // remove receiver from sibling list
379 InstanceKlass* super = superklass(); 378 InstanceKlass* super = superklass();

mercurial