Klass Class Reference

#include <klass.hpp>

Inheritance diagram for Klass:

Inheritance graph
[legend]
Collaboration diagram for Klass:

Collaboration graph
[legend]
List of all members.

Public Types

 no_klass
 mem_klass
 association_klass
 blockClosure_klass
 byteArray_klass
 symbol_klass
 context_klass
 doubleByteArray_klass
 doubleValueArray_klass
 double_klass
 klass_klass
 method_klass
 mixin_klass
 objArray_klass
 weakArray_klass
 process_klass
 vframe_klass
 proxy_klass
 smi_klass
 special_klass
enum  Format {
  no_klass, mem_klass, association_klass, blockClosure_klass,
  byteArray_klass, symbol_klass, context_klass, doubleByteArray_klass,
  doubleValueArray_klass, double_klass, klass_klass, method_klass,
  mixin_klass, objArray_klass, weakArray_klass, process_klass,
  vframe_klass, proxy_klass, smi_klass, special_klass
}

Public Member Functions

klassOop as_klassOop () const
smi non_indexable_size () const
void set_non_indexable_size (smi size)
bool has_untagged_contents () const
void set_untagged_contents (bool v)
objArrayOop classVars () const
void set_classVars (objArrayOop c)
objArrayOop methods () const
void set_methods (objArrayOop m)
klassOop superKlass () const
void set_superKlass (klassOop super)
mixinOop mixin () const
void set_mixin (mixinOop m)
bool has_superKlass () const
int number_of_methods () const
methodOop method_at (int index) const
void add_method (methodOop method)
methodOop remove_method_at (int index)
int number_of_classVars () const
associationOop classVar_at (int index) const
void add_classVar (associationOop assoc)
associationOop remove_classVar_at (int index)
bool includes_classVar (symbolOop name)
int vtbl_value () const
void set_vtbl_value (int vtbl)
void bootstrap_klass_part_one (bootstrap *bs)
void bootstrap_klass_part_two (bootstrap *bs)
void fixup_after_snapshot_read ()
virtual bool can_inline_allocation () const
virtual bool can_have_instance_variables () const
virtual bool can_be_subclassed () const
bool is_specialized_class () const
bool is_named_class () const
int size () const
virtual oop allocateObject ()
virtual oop allocateObjectSize (int size)
virtual Format format ()
bool has_same_layout_as (klassOop klass)
virtual klassOop create_subclass (mixinOop mixin, Format format)
virtual char * name () const
void print_klass ()
void print_name_on (outputStream *st)
methodOop local_lookup (symbolOop selector)
methodOop lookup (symbolOop selector)
bool is_method_holder_for (methodOop method)
klassOop lookup_method_holder_for (methodOop method)
void flush_methods ()
associationOop local_lookup_class_var (symbolOop name)
associationOop lookup_class_var (symbolOop name)
int lookup_inst_var (symbolOop name) const
symbolOop inst_var_name_at (int offset) const
int number_of_instance_variables () const
void mark_for_schema_change ()
bool is_marked_for_schema_change ()
void initialize ()
virtual int oop_size (oop obj) const
virtual int oop_header_size () const
virtual bool oop_verify (oop obj)
virtual int oop_scavenge_contents (oop obj)
virtual int oop_scavenge_tenured_contents (oop obj)
virtual void oop_follow_contents (oop obj)
virtual bool oop_is_smi () const
virtual bool oop_is_double () const
virtual bool oop_is_block () const
virtual bool oop_is_byteArray () const
virtual bool oop_is_doubleByteArray () const
virtual bool oop_is_doubleValueArray () const
virtual bool oop_is_symbol () const
virtual bool oop_is_objArray () const
virtual bool oop_is_weakArray () const
virtual bool oop_is_klass () const
virtual bool oop_is_process () const
virtual bool oop_is_vframe () const
virtual bool oop_is_method () const
virtual bool oop_is_proxy () const
virtual bool oop_is_mixin () const
virtual bool oop_is_association () const
virtual bool oop_is_context () const
virtual bool oop_is_message () const
virtual bool oop_is_indexable () const
virtual oop oop_primitive_allocate (oop obj)
virtual oop oop_primitive_allocate_size (oop obj, int size)
virtual oop oop_shallow_copy (oop obj, bool tenured)
virtual void oop_print_on (oop obj, outputStream *st)
virtual void oop_short_print_on (oop obj, outputStream *st)
virtual void oop_print_value_on (oop obj, outputStream *st)
virtual void oop_oop_iterate (oop obj, OopClosure *blk)
virtual void oop_layout_iterate (oop obj, ObjectLayoutClosure *blk)

Static Public Member Functions

static Format format_from_symbol (symbolOop format)
static char * name_from_format (Format format)

Public Attributes

friend klassKlass

Static Protected Member Functions

static klassOop create_generic_class (klassOop super_class, mixinOop mixin, int vtbl)

Protected Attributes

smiOop _non_indexable_size
smiOop _has_untagged_contents
objArrayOop _classVars
objArrayOop _methods
klassOop _superKlass
mixinOop _mixin

Friends

klassOop as_klassOop (void *p)

Detailed Description

Definition at line 51 of file klass.hpp.


Member Enumeration Documentation

enum Klass::Format

Enumerator:
no_klass 
mem_klass 
association_klass 
blockClosure_klass 
byteArray_klass 
symbol_klass 
context_klass 
doubleByteArray_klass 
doubleValueArray_klass 
double_klass 
klass_klass 
method_klass 
mixin_klass 
objArray_klass 
weakArray_klass 
process_klass 
vframe_klass 
proxy_klass 
smi_klass 
special_klass 

Definition at line 137 of file klass.hpp.


Member Function Documentation

void Klass::add_classVar ( associationOop  assoc  ) 

Definition at line 206 of file klass.cpp.

References assert, classVars(), objArrayOopDesc::copy_add(), oopDesc::is_association(), associationOopDesc::key(), objArrayOopDesc::length(), objArrayOopDesc::obj_at(), and set_classVars().

Referenced by ClassChange::update_class_vars().

Here is the call graph for this function:

void Klass::add_method ( methodOop  method  ) 

Definition at line 176 of file klass.cpp.

References assert, oopDesc::is_method(), objArrayOopDesc::length(), methods(), objArrayOopDesc::obj_at(), objArrayOopDesc::obj_at_put(), methodOopDesc::selector(), and set_methods().

Referenced by local_lookup().

Here is the call graph for this function:

oop Klass::allocateObject (  )  [virtual]

Reimplemented in associationKlass, blockClosureKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, mixinKlass, processKlass, proxyKlass, and vframeKlass.

Definition at line 35 of file klass.cpp.

References markSymbol().

Referenced by memConverter::allocate(), create_generic_class(), InterpretedIC::does_not_understand(), and klassKlass::oop_primitive_allocate().

Here is the call graph for this function:

oop Klass::allocateObjectSize ( int  size  )  [virtual]

Reimplemented in contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleValueArrayKlass, memOopKlass, and objArrayKlass.

Definition at line 38 of file klass.cpp.

References markSymbol().

Referenced by doubleValueArrayConverter::allocate(), objArrayConverter::allocate(), doubleByteArrayConverter::allocate(), byteArrayConverter::allocate(), klassKlass::oop_primitive_allocate_size(), PRIM_DECL_2(), and PRIM_DECL_3().

Here is the call graph for this function:

klassOop Klass::as_klassOop (  )  const [inline]

Definition at line 64 of file klass.hpp.

References Mem_Tag.

Referenced by vframeKlass::allocateObject(), proxyKlass::allocateObject(), processKlass::allocateObject(), mixinKlass::allocateObject(), memOopKlass::allocateObject(), klassKlass::allocateObject(), blockClosureKlass::allocateObject(), associationKlass::allocateObject(), objArrayKlass::allocateObjectSize(), doubleValueArrayKlass::allocateObjectSize(), doubleByteArrayKlass::allocateObjectSize(), byteArrayKlass::allocateObjectSize(), contextKlass::allocateObjectSize(), methodKlass::constructMethod(), weakArrayKlass::create_subclass(), vframeKlass::create_subclass(), symbolKlass::create_subclass(), proxyKlass::create_subclass(), processKlass::create_subclass(), objArrayKlass::create_subclass(), mixinKlass::create_subclass(), memOopKlass::create_subclass(), doubleValueArrayKlass::create_subclass(), doubleByteArrayKlass::create_subclass(), byteArrayKlass::create_subclass(), associationKlass::create_subclass(), has_same_layout_as(), is_named_class(), local_lookup(), lookup_method_holder_for(), and print_name_on().

void Klass::bootstrap_klass_part_one ( bootstrap bs  ) 

Definition at line 418 of file klass.cpp.

References _has_untagged_contents, _non_indexable_size, and bootstrap::read_oop().

Referenced by klassOopDesc::bootstrap_object().

Here is the call graph for this function:

void Klass::bootstrap_klass_part_two ( bootstrap bs  ) 

Definition at line 423 of file klass.cpp.

References _classVars, _methods, _mixin, _superKlass, and bootstrap::read_oop().

Referenced by klassOopDesc::bootstrap_object().

Here is the call graph for this function:

virtual bool Klass::can_be_subclassed (  )  const [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, doubleKlass, memOopKlass, methodKlass, smiKlass, and symbolKlass.

Definition at line 125 of file klass.hpp.

Referenced by PRIM_DECL_1().

virtual bool Klass::can_have_instance_variables (  )  const [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, doubleKlass, memOopKlass, methodKlass, smiKlass, and symbolKlass.

Definition at line 124 of file klass.hpp.

Referenced by PRIM_DECL_1().

virtual bool Klass::can_inline_allocation (  )  const [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, symbolKlass, and vframeKlass.

Definition at line 118 of file klass.hpp.

associationOop Klass::classVar_at ( int  index  )  const

Definition at line 202 of file klass.cpp.

References classVars().

Referenced by ClassChange::new_class_from(), PRIM_DECL_2(), remove_classVar_at(), and ClassChange::update_class_vars().

Here is the call graph for this function:

objArrayOop Klass::classVars (  )  const [inline]

Definition at line 77 of file klass.hpp.

References _classVars.

Referenced by add_classVar(), classVar_at(), includes_classVar(), local_lookup_class_var(), number_of_classVars(), PRIM_DECL_1(), remove_classVar_at(), and ClassChange::update_class_vars().

klassOop Klass::create_generic_class ( klassOop  super_class,
mixinOop  mixin,
int  vtbl 
) [static, protected]

Definition at line 100 of file klass.cpp.

References allocateObject(), assert, mixinOopDesc::class_mixin(), mixinOopDesc::classVar_at(), mixinOopDesc::classVars(), klassOopDesc::header_size(), oopDesc::is_objArray(), oopDesc::klass(), klassOopDesc::klass_part(), objArrayOopDesc::length(), mixin(), oopFactory::new_association(), oopFactory::new_objArray(), nilObj, mixinOopDesc::number_of_classVars(), objArrayOopDesc::obj_at_put(), set_klassKlass_vtbl(), and set_untagged_contents().

Referenced by weakArrayKlass::create_class(), vframeKlass::create_class(), symbolKlass::create_class(), proxyKlass::create_class(), processKlass::create_class(), objArrayKlass::create_class(), mixinKlass::create_class(), memOopKlass::create_class(), doubleValueArrayKlass::create_class(), doubleByteArrayKlass::create_class(), byteArrayKlass::create_class(), and associationKlass::create_class().

Here is the call graph for this function:

klassOop Klass::create_subclass ( mixinOop  mixin,
Format  format 
) [virtual]

Definition at line 95 of file klass.cpp.

References ShouldNotCallThis.

Referenced by ClassChange::new_class_from(), PRIM_DECL_3(), and PRIM_DECL_5().

void Klass::fixup_after_snapshot_read (  ) 

void Klass::flush_methods (  ) 

Definition at line 340 of file klass.cpp.

References oopFactory::new_objArray(), and set_methods().

Referenced by ClassChange::update_methods().

Here is the call graph for this function:

virtual Format Klass::format (  )  [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, smiKlass, symbolKlass, vframeKlass, and weakArrayKlass.

Definition at line 161 of file klass.hpp.

References no_klass.

Referenced by ClassChange::create_converter_for(), format_from_symbol(), has_same_layout_as(), ClassChange::new_class_from(), PRIM_DECL_1(), and print_klass().

Klass::Format Klass::format_from_symbol ( symbolOop  format  )  [static]

Definition at line 50 of file klass.cpp.

References byteArray_klass, doubleByteArray_klass, format(), mem_klass, no_klass, objArray_klass, proxy_klass, special_klass, and weakArray_klass.

Referenced by PRIM_DECL_3(), PRIM_DECL_5(), and Reflection::register_class_changes().

Here is the call graph for this function:

bool Klass::has_same_layout_as ( klassOop  klass  ) 

Definition at line 77 of file klass.cpp.

References as_klassOop(), assert, format(), inst_var_name_at(), oopDesc::is_klass(), klassOopDesc::klass_part(), non_indexable_size(), and oop_header_size().

Here is the call graph for this function:

bool Klass::has_superKlass (  )  const [inline]

Definition at line 90 of file klass.hpp.

References nilObj, and superKlass().

Referenced by Universe::classes_for_do(), MethodSweeper::klass_task(), lookup_inst_var(), and number_of_instance_variables().

Here is the call graph for this function:

bool Klass::has_untagged_contents (  )  const [inline]

Definition at line 74 of file klass.hpp.

References _has_untagged_contents, and smiOop_one.

Referenced by objArrayKlass::allocate_tenured_pic(), memOopKlass::allocateObject(), klassKlass::allocateObject(), associationKlass::allocateObject(), objArrayKlass::allocateObjectSize(), and methodKlass::constructMethod().

bool Klass::includes_classVar ( symbolOop  name  ) 

Definition at line 224 of file klass.cpp.

References classVars(), objArrayOopDesc::length(), name(), and objArrayOopDesc::obj_at().

Referenced by ClassChange::update_class_vars().

Here is the call graph for this function:

void Klass::initialize (  ) 

Definition at line 27 of file klass.cpp.

References oopFactory::new_objArray(), nilObj, set_classVars(), set_methods(), set_mixin(), set_superKlass(), and set_untagged_contents().

Here is the call graph for this function:

symbolOop Klass::inst_var_name_at ( int  offset  )  const

Definition at line 142 of file klass.cpp.

References mixinOopDesc::instVar_at(), klassOopDesc::klass_part(), mixin(), nilObj, non_indexable_size(), mixinOopDesc::number_of_instVars(), and superKlass().

Referenced by memConverter::compute_mapping(), PrintObjectClosure::do_oop(), has_same_layout_as(), scopeNode::inst_var_string(), memOopDesc::layout_iterate_body(), PRIM_DECL_2(), CodeIterator::recustomize_inst_var_code(), and CodeIterator::uncustomize_inst_var_code().

Here is the call graph for this function:

bool Klass::is_marked_for_schema_change (  ) 

Definition at line 46 of file klass.cpp.

References mixin().

Referenced by Reflection::convert_object(), and ConvertOopClosure::do_object().

Here is the call graph for this function:

bool Klass::is_method_holder_for ( methodOop  method  ) 

Definition at line 311 of file klass.cpp.

References assert, methodOopDesc::home(), oopDesc::is_method(), objArrayOopDesc::length(), mixinOopDesc::methods(), methods(), mixin(), nilObj, and objArrayOopDesc::obj_at().

Referenced by lookup_method_holder_for().

Here is the call graph for this function:

bool Klass::is_named_class (  )  const

Definition at line 349 of file klass.cpp.

References as_klassOop(), mixin(), and mixinOopDesc::primary_invocation().

Referenced by Universe::classes_for_do(), MethodSweeper::klass_task(), and Universe::methods_for_do().

Here is the call graph for this function:

bool Klass::is_specialized_class (  )  const

Definition at line 344 of file klass.cpp.

References memOopKlass::name(), and name().

Referenced by PRIM_DECL_1().

Here is the call graph for this function:

methodOop Klass::local_lookup ( symbolOop  selector  )  [inline]

Definition at line 253 of file klass.cpp.

References add_method(), as_klassOop(), assert, methodOopDesc::copy_for_customization(), methodOopDesc::customize_for(), methodOopDesc::is_customized(), oopDesc::is_method(), objArrayOopDesc::length(), mixinOopDesc::methods(), methods(), mixin(), objArrayOopDesc::objs(), methodOopDesc::selector(), and methodOopDesc::should_be_customized().

Referenced by lookup().

Here is the call graph for this function:

associationOop Klass::local_lookup_class_var ( symbolOop  name  ) 

Definition at line 233 of file klass.cpp.

References assert, classVars(), oopDesc::is_association(), associationOopDesc::key(), objArrayOopDesc::length(), name(), and objArrayOopDesc::obj_at().

Referenced by lookup_class_var(), and ClassChange::new_class_from().

Here is the call graph for this function:

methodOop Klass::lookup ( symbolOop  selector  ) 

Definition at line 300 of file klass.cpp.

References klassOopDesc::klass_part(), local_lookup(), nilObj, and superKlass().

Referenced by lookupCache::cache_miss_lookup(), lookupCache::method_lookup(), PRIM_DECL_2(), print_codes(), and scan_key().

Here is the call graph for this function:

associationOop Klass::lookup_class_var ( symbolOop  name  ) 

Definition at line 243 of file klass.cpp.

References klassOopDesc::klass_part(), local_lookup_class_var(), lookup_class_var(), name(), nilObj, and superKlass().

Referenced by CodeIterator::customize_class_var_code(), lookup_class_var(), and CodeIterator::recustomize_class_var_code().

Here is the call graph for this function:

int Klass::lookup_inst_var ( symbolOop  name  )  const

Definition at line 155 of file klass.cpp.

References has_superKlass(), mixinOopDesc::inst_var_offset(), klassOopDesc::klass_part(), lookup_inst_var(), mixin(), name(), non_indexable_size(), and superKlass().

Referenced by memConverter::compute_mapping(), CodeIterator::customize_inst_var_code(), lookup_inst_var(), print_name_on(), and CodeIterator::recustomize_inst_var_code().

Here is the call graph for this function:

klassOop Klass::lookup_method_holder_for ( methodOop  method  ) 

Definition at line 333 of file klass.cpp.

References as_klassOop(), is_method_holder_for(), klassOopDesc::klass_part(), lookup_method_holder_for(), nilObj, and superKlass().

Referenced by interpreter_super_lookup(), lookup_method_holder_for(), Universe::method_holder_of(), scopeNode::print_frame_header(), pnode::print_method_on(), and methodOopDesc::print_value_for().

Here is the call graph for this function:

void Klass::mark_for_schema_change (  ) 

Definition at line 42 of file klass.cpp.

References set_mixin().

Referenced by Reflection::setup_schema_change().

Here is the call graph for this function:

methodOop Klass::method_at ( int  index  )  const

Definition at line 172 of file klass.cpp.

References methods().

Referenced by remove_method_at().

Here is the call graph for this function:

objArrayOop Klass::methods (  )  const [inline]

Definition at line 80 of file klass.hpp.

References _methods.

Referenced by add_method(), decode_klass(), is_method_holder_for(), MethodSweeper::klass_task(), local_lookup(), method_at(), Universe::methods_for_do(), number_of_methods(), and remove_method_at().

mixinOop Klass::mixin (  )  const [inline]

Definition at line 86 of file klass.hpp.

References _mixin.

Referenced by allocate_block_for(), ClassChange::ClassChange(), weakArrayKlass::create_class(), vframeKlass::create_class(), symbolKlass::create_class(), proxyKlass::create_class(), processKlass::create_class(), objArrayKlass::create_class(), mixinKlass::create_class(), memOopKlass::create_class(), doubleValueArrayKlass::create_class(), doubleByteArrayKlass::create_class(), byteArrayKlass::create_class(), associationKlass::create_class(), create_generic_class(), weakArrayKlass::create_subclass(), vframeKlass::create_subclass(), symbolKlass::create_subclass(), proxyKlass::create_subclass(), processKlass::create_subclass(), objArrayKlass::create_subclass(), mixinKlass::create_subclass(), memOopKlass::create_subclass(), doubleValueArrayKlass::create_subclass(), doubleByteArrayKlass::create_subclass(), byteArrayKlass::create_subclass(), associationKlass::create_subclass(), decode_klass(), inst_var_name_at(), is_marked_for_schema_change(), is_method_holder_for(), is_named_class(), MethodSweeper::klass_task(), local_lookup(), lookup_inst_var(), Universe::methods_for_do(), ClassChange::new_class_from(), number_of_instance_variables(), ClassChange::old_mixin(), and PRIM_DECL_1().

virtual char* Klass::name (  )  const [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, smiKlass, symbolKlass, vframeKlass, and weakArrayKlass.

Definition at line 177 of file klass.hpp.

Referenced by includes_classVar(), is_specialized_class(), local_lookup_class_var(), lookup_class_var(), lookup_inst_var(), print_klass(), and print_name_on().

char * Klass::name_from_format ( Format  format  )  [static]

Definition at line 62 of file klass.cpp.

References byteArray_klass, doubleByteArray_klass, mem_klass, objArray_klass, proxy_klass, and weakArray_klass.

Referenced by PRIM_DECL_1(), and print_klass().

smi Klass::non_indexable_size (  )  const [inline]

Definition at line 69 of file klass.hpp.

References _non_indexable_size, and smiOopDesc::value().

Referenced by objArrayKlass::allocate_tenured_pic(), vframeKlass::allocateObject(), proxyKlass::allocateObject(), processKlass::allocateObject(), mixinKlass::allocateObject(), memOopKlass::allocateObject(), klassKlass::allocateObject(), associationKlass::allocateObject(), objArrayKlass::allocateObjectSize(), doubleValueArrayKlass::allocateObjectSize(), doubleByteArrayKlass::allocateObjectSize(), byteArrayKlass::allocateObjectSize(), objArrayKlass::array_offset(), byteArrayKlass::array_offset(), memOopDesc::bootstrap_body(), has_same_layout_as(), inst_var_name_at(), memOopDesc::is_within_instVar_bounds(), objArrayOopDesc::length_addr(), doubleValueArrayOopDesc::length_addr(), doubleByteArrayOopDesc::length_addr(), byteArrayOopDesc::length_addr(), objArrayKlass::length_offset(), byteArrayKlass::length_offset(), lookup_inst_var(), objArrayKlass::object_size(), methodKlass::object_size(), doubleValueArrayKlass::object_size(), doubleByteArrayKlass::object_size(), byteArrayKlass::object_size(), weakArrayKlass::oop_follow_contents(), vframeKlass::oop_follow_contents(), proxyKlass::oop_follow_contents(), processKlass::oop_follow_contents(), mixinKlass::oop_follow_contents(), memOopKlass::oop_follow_contents(), klassKlass::oop_follow_contents(), associationKlass::oop_follow_contents(), vframeKlass::oop_layout_iterate(), proxyKlass::oop_layout_iterate(), processKlass::oop_layout_iterate(), mixinKlass::oop_layout_iterate(), memOopKlass::oop_layout_iterate(), klassKlass::oop_layout_iterate(), associationKlass::oop_layout_iterate(), vframeKlass::oop_oop_iterate(), proxyKlass::oop_oop_iterate(), processKlass::oop_oop_iterate(), mixinKlass::oop_oop_iterate(), memOopKlass::oop_oop_iterate(), klassKlass::oop_oop_iterate(), associationKlass::oop_oop_iterate(), vframeKlass::oop_scavenge_contents(), proxyKlass::oop_scavenge_contents(), processKlass::oop_scavenge_contents(), mixinKlass::oop_scavenge_contents(), memOopKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_contents(), associationKlass::oop_scavenge_contents(), vframeKlass::oop_scavenge_tenured_contents(), proxyKlass::oop_scavenge_tenured_contents(), processKlass::oop_scavenge_tenured_contents(), mixinKlass::oop_scavenge_tenured_contents(), memOopKlass::oop_scavenge_tenured_contents(), klassKlass::oop_scavenge_tenured_contents(), associationKlass::oop_scavenge_tenured_contents(), oop_size(), PRIM_DECL_2(), and PRIM_DECL_4().

Here is the call graph for this function:

int Klass::number_of_classVars (  )  const

Definition at line 198 of file klass.cpp.

References classVars(), and objArrayOopDesc::length().

Referenced by ClassChange::new_class_from(), and ClassChange::update_class_vars().

Here is the call graph for this function:

int Klass::number_of_instance_variables (  )  const

Definition at line 161 of file klass.cpp.

References has_superKlass(), klassOopDesc::klass_part(), mixin(), number_of_instance_variables(), mixinOopDesc::number_of_instVars(), and superKlass().

Referenced by memConverter::compute_mapping(), memOopKlass::create_subclass(), and number_of_instance_variables().

Here is the call graph for this function:

int Klass::number_of_methods (  )  const

Definition at line 168 of file klass.cpp.

References objArrayOopDesc::length(), and methods().

Here is the call graph for this function:

void Klass::oop_follow_contents ( oop  obj  )  [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, doubleKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 387 of file klass.cpp.

References fatal.

Referenced by memOopDesc::follow_contents().

virtual int Klass::oop_header_size (  )  const [inline, virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 220 of file klass.hpp.

Referenced by memConverter::compute_mapping(), has_same_layout_as(), and memOopDesc::is_within_instVar_bounds().

virtual bool Klass::oop_is_association (  )  const [inline, virtual]

Reimplemented in associationKlass.

Definition at line 245 of file klass.hpp.

Referenced by oopDesc::is_association().

virtual bool Klass::oop_is_block (  )  const [inline, virtual]

Reimplemented in blockClosureKlass.

Definition at line 232 of file klass.hpp.

Referenced by oopDesc::is_block().

virtual bool Klass::oop_is_byteArray (  )  const [inline, virtual]

Reimplemented in byteArrayKlass.

Definition at line 233 of file klass.hpp.

Referenced by byteArrayConverter::byteArrayConverter(), oopDesc::is_byteArray(), PRIM_DECL_2(), and PRIM_DECL_3().

virtual bool Klass::oop_is_context (  )  const [inline, virtual]

Reimplemented in contextKlass.

Definition at line 246 of file klass.hpp.

Referenced by oopDesc::is_context().

virtual bool Klass::oop_is_double (  )  const [inline, virtual]

Reimplemented in doubleKlass.

Definition at line 231 of file klass.hpp.

virtual bool Klass::oop_is_doubleByteArray (  )  const [inline, virtual]

Reimplemented in doubleByteArrayKlass.

Definition at line 234 of file klass.hpp.

Referenced by doubleByteArrayConverter::doubleByteArrayConverter(), oopDesc::is_doubleByteArray(), and PRIM_DECL_2().

virtual bool Klass::oop_is_doubleValueArray (  )  const [inline, virtual]

Reimplemented in doubleValueArrayKlass.

Definition at line 235 of file klass.hpp.

Referenced by doubleValueArrayConverter::doubleValueArrayConverter(), oopDesc::is_doubleValueArray(), and PRIM_DECL_2().

virtual bool Klass::oop_is_indexable (  )  const [inline, virtual]

Reimplemented in byteArrayKlass, doubleByteArrayKlass, doubleValueArrayKlass, and objArrayKlass.

Definition at line 248 of file klass.hpp.

Referenced by oopDesc::is_indexable().

virtual bool Klass::oop_is_klass (  )  const [inline, virtual]

Reimplemented in klassKlass.

Definition at line 239 of file klass.hpp.

Referenced by oopDesc::is_klass(), and klassConverter::klassConverter().

virtual bool Klass::oop_is_message (  )  const [inline, virtual]

Definition at line 247 of file klass.hpp.

virtual bool Klass::oop_is_method (  )  const [inline, virtual]

Reimplemented in methodKlass.

Definition at line 242 of file klass.hpp.

Referenced by oopDesc::is_method().

virtual bool Klass::oop_is_mixin (  )  const [inline, virtual]

Reimplemented in mixinKlass.

Definition at line 244 of file klass.hpp.

Referenced by oopDesc::is_mixin(), and mixinConverter::mixinConverter().

virtual bool Klass::oop_is_objArray (  )  const [inline, virtual]

Reimplemented in objArrayKlass.

Definition at line 237 of file klass.hpp.

Referenced by oopDesc::is_objArray(), objArrayConverter::objArrayConverter(), and PRIM_DECL_2().

virtual bool Klass::oop_is_process (  )  const [inline, virtual]

Reimplemented in processKlass.

Definition at line 240 of file klass.hpp.

Referenced by oopDesc::is_process(), PRIM_DECL_2(), and processConverter::processConverter().

virtual bool Klass::oop_is_proxy (  )  const [inline, virtual]

Reimplemented in proxyKlass.

Definition at line 243 of file klass.hpp.

Referenced by oopDesc::is_proxy(), and proxyConverter::proxyConverter().

virtual bool Klass::oop_is_smi (  )  const [inline, virtual]

Reimplemented in smiKlass.

Definition at line 230 of file klass.hpp.

virtual bool Klass::oop_is_symbol (  )  const [inline, virtual]

Reimplemented in symbolKlass.

Definition at line 236 of file klass.hpp.

Referenced by oopDesc::is_symbol().

virtual bool Klass::oop_is_vframe (  )  const [inline, virtual]

Reimplemented in vframeKlass.

Definition at line 241 of file klass.hpp.

Referenced by oopDesc::is_vframe().

virtual bool Klass::oop_is_weakArray (  )  const [inline, virtual]

Reimplemented in weakArrayKlass.

Definition at line 238 of file klass.hpp.

Referenced by oopDesc::is_weakArray().

void Klass::oop_layout_iterate ( oop  obj,
ObjectLayoutClosure blk 
) [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 391 of file klass.cpp.

References fatal.

Referenced by memOopDesc::layout_iterate().

void Klass::oop_oop_iterate ( oop  obj,
OopClosure blk 
) [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 395 of file klass.cpp.

References fatal.

Referenced by memOopDesc::oop_iterate().

oop Klass::oop_primitive_allocate ( oop  obj  )  [virtual]

Reimplemented in klassKlass.

Definition at line 430 of file klass.cpp.

References markSymbol().

Referenced by oopDesc::primitive_allocate().

Here is the call graph for this function:

oop Klass::oop_primitive_allocate_size ( oop  obj,
int  size 
) [virtual]

Reimplemented in klassKlass.

Definition at line 433 of file klass.cpp.

References markSymbol().

Referenced by oopDesc::primitive_allocate_size().

Here is the call graph for this function:

void Klass::oop_print_on ( oop  obj,
outputStream st 
) [virtual]

Reimplemented in contextKlass, klassKlass, memOopKlass, and methodKlass.

Definition at line 399 of file klass.cpp.

References fatal.

Referenced by oop_print_value_on(), and memOopDesc::print_on().

void Klass::oop_print_value_on ( oop  obj,
outputStream st 
) [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, and symbolKlass.

Definition at line 400 of file klass.cpp.

References oop_print_on().

Referenced by oop_short_print_on(), and oopDesc::print_value_on().

Here is the call graph for this function:

int Klass::oop_scavenge_contents ( oop  obj  )  [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 377 of file klass.cpp.

References fatal.

Referenced by memOopDesc::scavenge_contents().

int Klass::oop_scavenge_tenured_contents ( oop  obj  )  [virtual]

Reimplemented in associationKlass, blockClosureKlass, contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleKlass, doubleValueArrayKlass, klassKlass, memOopKlass, methodKlass, mixinKlass, objArrayKlass, processKlass, proxyKlass, vframeKlass, and weakArrayKlass.

Definition at line 382 of file klass.cpp.

References fatal.

Referenced by memOopDesc::scavenge_tenured_contents().

oop Klass::oop_shallow_copy ( oop  obj,
bool  tenured 
) [virtual]

Reimplemented in klassKlass, memOopKlass, mixinKlass, smiKlass, and symbolKlass.

Definition at line 436 of file klass.cpp.

References markSymbol().

Referenced by oopDesc::shallow_copy().

Here is the call graph for this function:

void Klass::oop_short_print_on ( oop  obj,
outputStream st 
) [virtual]

Reimplemented in associationKlass, doubleKlass, and objArrayKlass.

Definition at line 401 of file klass.cpp.

References falseObj, nilObj, oop_print_value_on(), outputStream::print(), and trueObj.

Here is the call graph for this function:

virtual int Klass::oop_size ( oop  obj  )  const [inline, virtual]

Reimplemented in contextKlass, byteArrayKlass, doubleByteArrayKlass, doubleValueArrayKlass, methodKlass, and objArrayKlass.

Definition at line 217 of file klass.hpp.

References non_indexable_size().

Referenced by memOopDesc::size().

Here is the call graph for this function:

bool Klass::oop_verify ( oop  obj  )  [virtual]

Reimplemented in associationKlass, blockClosureKlass, byteArrayKlass, doubleByteArrayKlass, doubleValueArrayKlass, klassKlass, and memOopKlass.

Definition at line 413 of file klass.cpp.

Referenced by blockClosureKlass::oop_verify(), and oopDesc::verify().

void Klass::print_klass (  ) 

Definition at line 353 of file klass.cpp.

References format(), lprintf(), name(), and name_from_format().

Referenced by pk().

Here is the call graph for this function:

void Klass::print_name_on ( outputStream st  ) 

Definition at line 357 of file klass.cpp.

References as_klassOop(), memOopDesc::blueprint(), Universe::find_global_key_for(), lookup_inst_var(), name(), and oopFactory::new_symbol().

Referenced by InliningDatabase::klass_string(), memOopKlass::oop_print_value_on(), klassKlass::oop_print_value_on(), associationKlass::oop_print_value_on(), LookupKey::print_inlining_database_on(), pnode::print_method_on(), pnode::print_receiver_klass_on(), and methodOopDesc::print_value_for().

Here is the call graph for this function:

associationOop Klass::remove_classVar_at ( int  index  ) 

Definition at line 218 of file klass.cpp.

References classVar_at(), classVars(), and set_classVars().

Referenced by ClassChange::update_class_vars().

Here is the call graph for this function:

methodOop Klass::remove_method_at ( int  index  ) 

Definition at line 192 of file klass.cpp.

References method_at(), methods(), and set_methods().

Here is the call graph for this function:

void Klass::set_classVars ( objArrayOop  c  )  [inline]

Definition at line 78 of file klass.hpp.

References _classVars, and STORE_OOP.

Referenced by add_classVar(), initialize(), remove_classVar_at(), and ClassChange::update_class_vars().

void Klass::set_methods ( objArrayOop  m  )  [inline]

Definition at line 81 of file klass.hpp.

References _methods, and STORE_OOP.

Referenced by add_method(), flush_methods(), initialize(), and remove_method_at().

void Klass::set_mixin ( mixinOop  m  )  [inline]

Definition at line 87 of file klass.hpp.

References _mixin, and STORE_OOP.

Referenced by initialize(), and mark_for_schema_change().

void Klass::set_non_indexable_size ( smi  size  )  [inline]

Definition at line 71 of file klass.hpp.

References _non_indexable_size, and as_smiOop().

Here is the call graph for this function:

void Klass::set_superKlass ( klassOop  super  )  [inline]

Definition at line 84 of file klass.hpp.

References _superKlass, and STORE_OOP.

Referenced by initialize(), and ClassChange::update_class().

void Klass::set_untagged_contents ( bool  v  )  [inline]

Definition at line 75 of file klass.hpp.

References _has_untagged_contents, smiOop_one, and smiOop_zero.

Referenced by create_generic_class(), and initialize().

void Klass::set_vtbl_value ( int  vtbl  )  [inline]

Definition at line 106 of file klass.hpp.

References assert, and vtbl_position.

Referenced by set_associationKlass_vtbl(), set_blockClosureKlass_vtbl(), set_byteArrayKlass_vtbl(), set_contextKlass_vtbl(), set_doubleByteArrayKlass_vtbl(), set_doubleKlass_vtbl(), set_doubleValueArrayKlass_vtbl(), set_klassKlass_vtbl(), set_memOopKlass_vtbl(), set_methodKlass_vtbl(), set_mixinKlass_vtbl(), set_objArrayKlass_vtbl(), set_processKlass_vtbl(), set_proxyKlass_vtbl(), set_smiKlass_vtbl(), set_symbolKlass_vtbl(), set_vframeKlass_vtbl(), and set_weakArrayKlass_vtbl().

int Klass::size (  )  const [inline]

Definition at line 132 of file klass.hpp.

Referenced by vframeKlass::allocateObject(), proxyKlass::allocateObject(), processKlass::allocateObject(), mixinKlass::allocateObject(), memOopKlass::allocateObject(), associationKlass::allocateObject(), vframeKlass::oop_scavenge_contents(), proxyKlass::oop_scavenge_contents(), processKlass::oop_scavenge_contents(), mixinKlass::oop_scavenge_contents(), memOopKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_contents(), contextKlass::oop_scavenge_contents(), associationKlass::oop_scavenge_contents(), vframeKlass::oop_scavenge_tenured_contents(), proxyKlass::oop_scavenge_tenured_contents(), processKlass::oop_scavenge_tenured_contents(), mixinKlass::oop_scavenge_tenured_contents(), memOopKlass::oop_scavenge_tenured_contents(), klassKlass::oop_scavenge_tenured_contents(), contextKlass::oop_scavenge_tenured_contents(), associationKlass::oop_scavenge_tenured_contents(), and PRIM_DECL_2().

klassOop Klass::superKlass (  )  const [inline]

Definition at line 83 of file klass.hpp.

References _superKlass.

Referenced by Universe::classes_for_do(), lookupCache::compile_time_super_lookup(), has_superKlass(), inst_var_name_at(), interpreter_super_lookup(), Universe::klass_name(), MethodSweeper::klass_task(), lookup(), lookup_class_var(), lookup_inst_var(), lookup_method_holder_for(), number_of_instance_variables(), PRIM_DECL_1(), and scan_key().

int Klass::vtbl_value (  )  const [inline]

Definition at line 105 of file klass.hpp.

References vtbl_position.

Referenced by weakArrayKlass::create_class(), vframeKlass::create_class(), symbolKlass::create_class(), proxyKlass::create_class(), processKlass::create_class(), objArrayKlass::create_class(), mixinKlass::create_class(), memOopKlass::create_class(), doubleValueArrayKlass::create_class(), doubleByteArrayKlass::create_class(), byteArrayKlass::create_class(), associationKlass::create_class(), set_associationKlass_vtbl(), set_blockClosureKlass_vtbl(), set_byteArrayKlass_vtbl(), set_contextKlass_vtbl(), set_doubleByteArrayKlass_vtbl(), set_doubleKlass_vtbl(), set_doubleValueArrayKlass_vtbl(), set_klassKlass_vtbl(), set_memOopKlass_vtbl(), set_methodKlass_vtbl(), set_mixinKlass_vtbl(), set_objArrayKlass_vtbl(), set_processKlass_vtbl(), set_proxyKlass_vtbl(), set_smiKlass_vtbl(), set_symbolKlass_vtbl(), set_vframeKlass_vtbl(), and set_weakArrayKlass_vtbl().


Friends And Related Function Documentation

klassOop as_klassOop ( void *  p  )  [friend]

Definition at line 61 of file klass.hpp.


Member Data Documentation

objArrayOop Klass::_classVars [protected]

Definition at line 55 of file klass.hpp.

Referenced by bootstrap_klass_part_two(), classVars(), klassKlass::oop_follow_contents(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), and set_classVars().

smiOop Klass::_has_untagged_contents [protected]

Definition at line 54 of file klass.hpp.

Referenced by bootstrap_klass_part_one(), has_untagged_contents(), klassKlass::oop_follow_contents(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), and set_untagged_contents().

objArrayOop Klass::_methods [protected]

Definition at line 56 of file klass.hpp.

Referenced by bootstrap_klass_part_two(), methods(), klassKlass::oop_follow_contents(), mixinKlass::oop_layout_iterate(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), and set_methods().

mixinOop Klass::_mixin [protected]

Definition at line 58 of file klass.hpp.

Referenced by bootstrap_klass_part_two(), mixin(), klassKlass::oop_follow_contents(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), and set_mixin().

smiOop Klass::_non_indexable_size [protected]

Definition at line 53 of file klass.hpp.

Referenced by bootstrap_klass_part_one(), non_indexable_size(), klassKlass::oop_follow_contents(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), and set_non_indexable_size().

klassOop Klass::_superKlass [protected]

Definition at line 57 of file klass.hpp.

Referenced by bootstrap_klass_part_two(), klassKlass::oop_follow_contents(), klassKlass::oop_layout_iterate(), klassKlass::oop_oop_iterate(), klassKlass::oop_scavenge_contents(), klassKlass::oop_scavenge_tenured_contents(), set_superKlass(), and superKlass().

friend Klass::klassKlass

Definition at line 264 of file klass.hpp.


The documentation for this class was generated from the following files:
Generated on Mon Oct 9 14:04:34 2006 for Strongtalk VM by  doxygen 1.4.7