hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 4496 c5a0b15a8e7d
parent 4094 1f424b2b2171
child 4573 6358f8c9ed3b
equal deleted inserted replaced
4494:1f53dff2f6a5 4496:c5a0b15a8e7d
  2043   instanceKlassHandle outer1 = class1;
  2043   instanceKlassHandle outer1 = class1;
  2044   for (;;) {
  2044   for (;;) {
  2045     // As we walk along, look for equalities between outer1 and class2.
  2045     // As we walk along, look for equalities between outer1 and class2.
  2046     // Eventually, the walks will terminate as outer1 stops
  2046     // Eventually, the walks will terminate as outer1 stops
  2047     // at the top-level class around the original class.
  2047     // at the top-level class around the original class.
  2048     symbolOop ignore_name;
  2048     bool ignore_inner_is_member;
  2049     klassOop next = outer1->compute_enclosing_class(ignore_name, CHECK_false);
  2049     klassOop next = outer1->compute_enclosing_class(&ignore_inner_is_member,
       
  2050                                                     CHECK_false);
  2050     if (next == NULL)  break;
  2051     if (next == NULL)  break;
  2051     if (next == class2())  return true;
  2052     if (next == class2())  return true;
  2052     outer1 = instanceKlassHandle(THREAD, next);
  2053     outer1 = instanceKlassHandle(THREAD, next);
  2053   }
  2054   }
  2054 
  2055 
  2055   // Now do the same for class2.
  2056   // Now do the same for class2.
  2056   instanceKlassHandle outer2 = class2;
  2057   instanceKlassHandle outer2 = class2;
  2057   for (;;) {
  2058   for (;;) {
  2058     symbolOop ignore_name;
  2059     bool ignore_inner_is_member;
  2059     klassOop next = outer2->compute_enclosing_class(ignore_name, CHECK_false);
  2060     klassOop next = outer2->compute_enclosing_class(&ignore_inner_is_member,
       
  2061                                                     CHECK_false);
  2060     if (next == NULL)  break;
  2062     if (next == NULL)  break;
  2061     // Might as well check the new outer against all available values.
  2063     // Might as well check the new outer against all available values.
  2062     if (next == class1())  return true;
  2064     if (next == class1())  return true;
  2063     if (next == outer1())  return true;
  2065     if (next == outer1())  return true;
  2064     outer2 = instanceKlassHandle(THREAD, next);
  2066     outer2 = instanceKlassHandle(THREAD, next);