ClassChange Class Reference

Inheritance diagram for ClassChange:

Inheritance graph
[legend]
Collaboration diagram for ClassChange:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ClassChange (klassOop old_klass, mixinOop new_mixin, Klass::Format new_format, klassOop new_super)
 ClassChange (klassOop old_klass, Klass::Format new_format)
klassOop old_klass () const
mixinOop new_mixin () const
Klass::Format new_format () const
klassOop new_klass () const
klassOop new_super () const
memConverterconverter () const
ClassChangesuper_change () const
mixinOop old_mixin () const
char * reason_for_schema_change ()
void set_reason_for_schema_change (char *msg)
void set_super_change (ClassChange *change)
void setup_schema_change ()
void recustomize_methods ()
bool compute_needed_schema_change ()
bool needs_schema_change ()
klassOop new_class_from (klassOop old_klass, klassOop new_super_klass, mixinOop new_mixin, Klass::Format new_format, mixinOop old_mixin)
memConvertercreate_converter_for (klassOop old_class, klassOop new_class)
void transfer_misc (memOop src, memOop dst)
void update_class (bool class_vars_changed, bool instance_methods_changed, bool class_methods_changed)
void update_class_vars ()
void update_methods (bool instance_side)

Private Attributes

klassOop _old_klass
mixinOop _new_mixin
Klass::Format _new_format
klassOop _new_klass
klassOop _new_super
memConverter_converter
ClassChange_super_change
bool _is_schema_change_computed
bool _needs_schema_change
char * _reason_for_schema_change

Detailed Description

Definition at line 285 of file reflection.cpp.


Constructor & Destructor Documentation

ClassChange::ClassChange ( klassOop  old_klass,
mixinOop  new_mixin,
Klass::Format  new_format,
klassOop  new_super 
) [inline]

Definition at line 299 of file reflection.cpp.

References _converter, _is_schema_change_computed, _new_format, _new_klass, _new_mixin, _new_super, _old_klass, _reason_for_schema_change, _super_change, new_mixin(), new_super(), and old_klass().

Here is the call graph for this function:

ClassChange::ClassChange ( klassOop  old_klass,
Klass::Format  new_format 
) [inline]

Definition at line 311 of file reflection.cpp.

References _converter, _is_schema_change_computed, _new_format, _new_klass, _new_mixin, _new_super, _old_klass, _reason_for_schema_change, _super_change, klassOopDesc::klass_part(), Klass::mixin(), and old_klass().

Here is the call graph for this function:


Member Function Documentation

bool ClassChange::compute_needed_schema_change (  ) 

Definition at line 532 of file reflection.cpp.

References new_format(), new_mixin(), new_super(), old_klass(), old_mixin(), set_reason_for_schema_change(), and Klass::special_klass.

Referenced by needs_schema_change().

Here is the call graph for this function:

memConverter* ClassChange::converter (  )  const [inline]

Definition at line 327 of file reflection.cpp.

References _converter.

memConverter * ClassChange::create_converter_for ( klassOop  old_class,
klassOop  new_class 
)

Definition at line 421 of file reflection.cpp.

References Klass::byteArray_klass, Klass::doubleByteArray_klass, Klass::doubleValueArray_klass, fatal, Klass::format(), Klass::klass_klass, klassOopDesc::klass_part(), Klass::mem_klass, Klass::mixin_klass, Klass::objArray_klass, Klass::process_klass, Klass::proxy_klass, and Klass::weakArray_klass.

Referenced by setup_schema_change().

Here is the call graph for this function:

bool ClassChange::needs_schema_change (  )  [inline]

Definition at line 343 of file reflection.cpp.

References _is_schema_change_computed, _needs_schema_change, and compute_needed_schema_change().

Referenced by Reflection::needs_schema_change().

Here is the call graph for this function:

klassOop ClassChange::new_class_from ( klassOop  old_klass,
klassOop  new_super_klass,
mixinOop  new_mixin,
Klass::Format  new_format,
mixinOop  old_mixin 
)

Definition at line 374 of file reflection.cpp.

References _new_klass, mixinOopDesc::class_mixin(), Klass::classVar_at(), Klass::create_subclass(), fatal, Klass::format(), oopDesc::klass(), klassOopDesc::klass_part(), Klass::local_lookup_class_var(), Klass::mixin(), new_mixin(), Klass::number_of_classVars(), old_klass(), mixinOopDesc::primary_invocation(), recustomize_methods(), mixinOopDesc::set_installed(), mixinOopDesc::set_primary_invocation(), associationOopDesc::set_value(), Klass::special_klass, transfer_misc(), and trueObj.

Referenced by setup_schema_change().

Here is the call graph for this function:

Klass::Format ClassChange::new_format (  )  const [inline]

Definition at line 324 of file reflection.cpp.

References _new_format.

Referenced by compute_needed_schema_change(), and setup_schema_change().

klassOop ClassChange::new_klass (  )  const [inline]

Definition at line 325 of file reflection.cpp.

References _new_klass.

Referenced by recustomize_methods(), and setup_schema_change().

mixinOop ClassChange::new_mixin (  )  const [inline]

Definition at line 323 of file reflection.cpp.

References _new_mixin.

Referenced by ClassChange(), compute_needed_schema_change(), new_class_from(), recustomize_methods(), setup_schema_change(), update_class(), update_class_vars(), and update_methods().

klassOop ClassChange::new_super (  )  const [inline]

Definition at line 326 of file reflection.cpp.

References _new_super.

Referenced by ClassChange(), compute_needed_schema_change(), setup_schema_change(), and update_class().

klassOop ClassChange::old_klass (  )  const [inline]

Definition at line 322 of file reflection.cpp.

References _old_klass.

Referenced by ClassChange(), compute_needed_schema_change(), Reflection::invalidate_classes(), Reflection::needs_schema_change(), new_class_from(), Reflection::setup_schema_change(), setup_schema_change(), update_class(), update_class_vars(), and update_methods().

mixinOop ClassChange::old_mixin (  )  const [inline]

Definition at line 329 of file reflection.cpp.

References _old_klass, klassOopDesc::klass_part(), and Klass::mixin().

Referenced by compute_needed_schema_change(), setup_schema_change(), update_class(), update_class_vars(), and update_methods().

Here is the call graph for this function:

char* ClassChange::reason_for_schema_change (  )  [inline]

Definition at line 332 of file reflection.cpp.

References _reason_for_schema_change.

Referenced by Reflection::needs_schema_change().

void ClassChange::recustomize_methods (  ) 

Definition at line 369 of file reflection.cpp.

References mixinOopDesc::class_mixin(), mixinOopDesc::customize_for(), new_klass(), and new_mixin().

Referenced by new_class_from().

Here is the call graph for this function:

void ClassChange::set_reason_for_schema_change ( char *  msg  )  [inline]

Definition at line 333 of file reflection.cpp.

References _reason_for_schema_change.

Referenced by compute_needed_schema_change().

void ClassChange::set_super_change ( ClassChange change  )  [inline]

Definition at line 335 of file reflection.cpp.

References _super_change.

void ClassChange::setup_schema_change (  ) 

Definition at line 505 of file reflection.cpp.

References _converter, _new_klass, _new_super, _super_change, assert, create_converter_for(), Reflection::forward(), new_class_from(), new_format(), new_klass(), new_mixin(), new_super(), old_klass(), old_mixin(), and super_change().

Referenced by Reflection::setup_schema_change().

Here is the call graph for this function:

ClassChange* ClassChange::super_change (  )  const [inline]

Definition at line 328 of file reflection.cpp.

References _super_change.

Referenced by setup_schema_change().

void ClassChange::transfer_misc ( memOop  src,
memOop  dst 
)

Definition at line 416 of file reflection.cpp.

References oopDesc::klass(), and memConverter::transfer().

Referenced by new_class_from().

Here is the call graph for this function:

void ClassChange::update_class ( bool  class_vars_changed,
bool  instance_methods_changed,
bool  class_methods_changed 
)

Definition at line 485 of file reflection.cpp.

References klassOopDesc::klass_part(), new_mixin(), new_super(), old_klass(), old_mixin(), Klass::set_superKlass(), update_class_vars(), and update_methods().

Referenced by Reflection::update_classes().

Here is the call graph for this function:

void ClassChange::update_class_vars (  ) 

Definition at line 438 of file reflection.cpp.

References Klass::add_classVar(), mixinOopDesc::class_mixin(), Klass::classVar_at(), Klass::classVars(), outputStream::cr(), Klass::includes_classVar(), oopDesc::klass(), klassOopDesc::klass_part(), oopFactory::new_association(), new_mixin(), nilObj, Klass::number_of_classVars(), old_klass(), old_mixin(), outputStream::print(), oopDesc::print_value(), Klass::remove_classVar_at(), mixinOopDesc::set_classVars(), Klass::set_classVars(), and std.

Referenced by update_class().

Here is the call graph for this function:

void ClassChange::update_methods ( bool  instance_side  ) 

Definition at line 469 of file reflection.cpp.

References mixinOopDesc::class_mixin(), outputStream::cr(), Klass::flush_methods(), oopDesc::klass(), klassOopDesc::klass_part(), new_mixin(), old_klass(), old_mixin(), outputStream::print(), oopDesc::print_value(), mixinOopDesc::set_methods(), and std.

Referenced by update_class().

Here is the call graph for this function:


Member Data Documentation

memConverter* ClassChange::_converter [private]

Definition at line 292 of file reflection.cpp.

Referenced by ClassChange(), converter(), and setup_schema_change().

bool ClassChange::_is_schema_change_computed [private]

Definition at line 294 of file reflection.cpp.

Referenced by ClassChange(), and needs_schema_change().

bool ClassChange::_needs_schema_change [private]

Definition at line 295 of file reflection.cpp.

Referenced by needs_schema_change().

Klass::Format ClassChange::_new_format [private]

Definition at line 289 of file reflection.cpp.

Referenced by ClassChange(), and new_format().

klassOop ClassChange::_new_klass [private]

Definition at line 290 of file reflection.cpp.

Referenced by ClassChange(), new_class_from(), new_klass(), and setup_schema_change().

mixinOop ClassChange::_new_mixin [private]

Definition at line 288 of file reflection.cpp.

Referenced by ClassChange(), and new_mixin().

klassOop ClassChange::_new_super [private]

Definition at line 291 of file reflection.cpp.

Referenced by ClassChange(), new_super(), and setup_schema_change().

klassOop ClassChange::_old_klass [private]

Definition at line 287 of file reflection.cpp.

Referenced by ClassChange(), old_klass(), and old_mixin().

char* ClassChange::_reason_for_schema_change [private]

Definition at line 296 of file reflection.cpp.

Referenced by ClassChange(), reason_for_schema_change(), and set_reason_for_schema_change().

ClassChange* ClassChange::_super_change [private]

Definition at line 293 of file reflection.cpp.

Referenced by ClassChange(), set_super_change(), setup_schema_change(), and super_change().


The documentation for this class was generated from the following file:
Generated on Mon Oct 9 13:51:06 2006 for Strongtalk VM by  doxygen 1.4.7