< prev index next >
src/share/vm/runtime/reflectionUtils.cpp
Print this page
*** 25,35 ****
#include "precompiled.hpp"
#include "classfile/javaClasses.hpp"
#include "memory/universe.inline.hpp"
#include "runtime/reflectionUtils.hpp"
! KlassStream::KlassStream(instanceKlassHandle klass, bool local_only,
bool classes_only, bool walk_defaults) {
_klass = _base_klass = klass;
_base_class_search_defaults = false;
_defaults_checked = false;
if (classes_only) {
--- 25,35 ----
#include "precompiled.hpp"
#include "classfile/javaClasses.hpp"
#include "memory/universe.inline.hpp"
#include "runtime/reflectionUtils.hpp"
! KlassStream::KlassStream(InstanceKlass* klass, bool local_only,
bool classes_only, bool walk_defaults) {
_klass = _base_klass = klass;
_base_class_search_defaults = false;
_defaults_checked = false;
if (classes_only) {
*** 46,65 ****
bool KlassStream::eos() {
if (index() >= 0) return false;
if (_local_only) return true;
if (!_klass->is_interface() && _klass->super() != NULL) {
// go up superclass chain (not for interfaces)
! _klass = _klass->super();
// Next for method walks, walk default methods
} else if (_walk_defaults && (_defaults_checked == false) && (_base_klass->default_methods() != NULL)) {
_base_class_search_defaults = true;
_klass = _base_klass;
_defaults_checked = true;
} else {
// Next walk transitive interfaces
if (_interface_index > 0) {
! _klass = _interfaces->at(--_interface_index);
} else {
return true;
}
}
_index = length();
--- 46,65 ----
bool KlassStream::eos() {
if (index() >= 0) return false;
if (_local_only) return true;
if (!_klass->is_interface() && _klass->super() != NULL) {
// go up superclass chain (not for interfaces)
! _klass = InstanceKlass::cast(_klass->super());
// Next for method walks, walk default methods
} else if (_walk_defaults && (_defaults_checked == false) && (_base_klass->default_methods() != NULL)) {
_base_class_search_defaults = true;
_klass = _base_klass;
_defaults_checked = true;
} else {
// Next walk transitive interfaces
if (_interface_index > 0) {
! _klass = InstanceKlass::cast(_interfaces->at(--_interface_index));
} else {
return true;
}
}
_index = length();
< prev index next >