Reflection Class Reference

#include <reflection.hpp>

Inheritance diagram for Reflection:

Inheritance graph
[legend]
Collaboration diagram for Reflection:

Collaboration graph
[legend]
List of all members.

Static Public Member Functions

static oop apply_change (objArrayOop change)
static void convert (oop *p)
static void forward (memOop old_obj, memOop new_obj)

Static Private Member Functions

static int invocations_offset ()
static void register_class_changes (mixinOop new_mixin, objArrayOop invocations)
static void invalidate_classes (bool value)
static ClassChangefind_change_for (klassOop klass)
static bool needs_schema_change ()
static void update_classes (bool class_vars_changed, bool instance_methods_changed, bool class_methods_changed)
static void setup_schema_change ()
static void update_class (klassOop klass, mixinOop new_mixin, mixinOop old_mixin, bool instance_methods_changed, bool class_methods_changed, bool class_vars_changed)
static bool has_methods_changed (mixinOop new_mixin, mixinOop old_mixin)
static bool has_class_vars_changed (mixinOop new_mixin, mixinOop old_mixin)
static void apply_change (mixinOop new_mixin, mixinOop old_mixin, objArrayOop invocations)
static memOop convert_object (memOop obj)

Static Private Attributes

static GrowableArray< ClassChange * > * class_changes = NULL
static GrowableArray< memOop > * converted = NULL

Detailed Description

Definition at line 28 of file reflection.hpp.


Member Function Documentation

oop Reflection::apply_change ( objArrayOop  change  )  [static]

Definition at line 768 of file reflection.cpp.

References apply_change(), oopDesc::is_mixin(), objArrayOopDesc::length(), markSymbol(), nilObj, objArrayOopDesc::obj_at(), and trueObj.

Here is the call graph for this function:

void Reflection::apply_change ( mixinOop  new_mixin,
mixinOop  old_mixin,
objArrayOop  invocations 
) [static, private]

Definition at line 670 of file reflection.cpp.

References class_changes, mixinOopDesc::class_mixin(), DeltaCallCache::clearAll(), convert(), converted, Processes::deoptimized_wrt_marked_nmethods(), newGeneration::eden(), lookupCache::flush(), Universe::flush_inline_caches_in_methods(), has_class_vars_changed(), has_methods_changed(), invalidate_classes(), needs_schema_change(), Universe::new_gen, oldGeneration::object_iterate(), newGeneration::object_iterate(), oldGeneration::object_iterate_from(), newSpace::object_iterate_from(), Universe::old_gen, Processes::oop_iterate(), oopDesc::print(), outputStream::print(), outputStream::print_cr(), register_class_changes(), Universe::roots_do(), setup_schema_change(), std, oldGeneration::top_mark(), newSpace::top_mark(), update_classes(), and Universe::verify().

Referenced by apply_change(), and PRIM_DECL_1().

Here is the call graph for this function:

void Reflection::convert ( oop p  )  [static]

Definition at line 819 of file reflection.cpp.

References convert_object(), oopDesc::is_mem(), and Universe::store().

Referenced by apply_change(), and ConvertClosure::do_oop().

Here is the call graph for this function:

memOop Reflection::convert_object ( memOop  obj  )  [static, private]

Definition at line 835 of file reflection.cpp.

References assert, find_change_for(), Klass::is_marked_for_schema_change(), oopDesc::klass(), and klassOopDesc::klass_part().

Referenced by convert().

Here is the call graph for this function:

ClassChange * Reflection::find_change_for ( klassOop  klass  )  [static, private]

Definition at line 611 of file reflection.cpp.

References GrowableArray< E >::at(), class_changes, and GenericGrowableArray::length().

Referenced by convert_object(), and register_class_changes().

Here is the call graph for this function:

void Reflection::forward ( memOop  old_obj,
memOop  new_obj 
) [static]

Definition at line 576 of file reflection.cpp.

References converted, fatal, memOopDesc::forward_to(), memOopDesc::forwardee(), and memOopDesc::is_forwarded().

Referenced by memConverter::convert(), and ClassChange::setup_schema_change().

Here is the call graph for this function:

bool Reflection::has_class_vars_changed ( mixinOop  new_mixin,
mixinOop  old_mixin 
) [static, private]

Definition at line 599 of file reflection.cpp.

References mixinOopDesc::classVar_at(), mixinOopDesc::includes_classVar(), and mixinOopDesc::number_of_classVars().

Referenced by apply_change().

Here is the call graph for this function:

bool Reflection::has_methods_changed ( mixinOop  new_mixin,
mixinOop  old_mixin 
) [static, private]

Definition at line 588 of file reflection.cpp.

References mixinOopDesc::includes_method(), mixinOopDesc::method_at(), and mixinOopDesc::number_of_methods().

Referenced by apply_change().

Here is the call graph for this function:

void Reflection::invalidate_classes ( bool  value  )  [static, private]

Definition at line 646 of file reflection.cpp.

References GrowableArray< E >::at(), class_changes, GenericGrowableArray::length(), ClassChange::old_klass(), and klassOopDesc::set_invalid().

Referenced by apply_change().

Here is the call graph for this function:

static int Reflection::invocations_offset (  )  [inline, static, private]

Definition at line 34 of file reflection.hpp.

Referenced by register_class_changes().

bool Reflection::needs_schema_change (  )  [static, private]

Definition at line 562 of file reflection.cpp.

References GrowableArray< E >::at(), class_changes, outputStream::cr(), GenericGrowableArray::length(), ClassChange::needs_schema_change(), ClassChange::old_klass(), outputStream::print_cr(), oopDesc::print_value(), ClassChange::reason_for_schema_change(), and std.

Referenced by apply_change().

Here is the call graph for this function:

void Reflection::register_class_changes ( mixinOop  new_mixin,
objArrayOop  invocations 
) [static, private]

Definition at line 619 of file reflection.cpp.

References GrowableArray< E >::append(), assert, class_changes, find_change_for(), Klass::format_from_symbol(), invocations_offset(), objArrayOopDesc::length(), and objArrayOopDesc::obj_at().

Referenced by apply_change().

Here is the call graph for this function:

void Reflection::setup_schema_change (  )  [static, private]

Definition at line 660 of file reflection.cpp.

References GrowableArray< E >::at(), class_changes, klassOopDesc::klass_part(), GenericGrowableArray::length(), Klass::mark_for_schema_change(), ClassChange::old_klass(), and ClassChange::setup_schema_change().

Referenced by apply_change().

Here is the call graph for this function:

static void Reflection::update_class ( klassOop  klass,
mixinOop  new_mixin,
mixinOop  old_mixin,
bool  instance_methods_changed,
bool  class_methods_changed,
bool  class_vars_changed 
) [static, private]

void Reflection::update_classes ( bool  class_vars_changed,
bool  instance_methods_changed,
bool  class_methods_changed 
) [static, private]

Definition at line 654 of file reflection.cpp.

References GrowableArray< E >::at(), class_changes, GenericGrowableArray::length(), and ClassChange::update_class().

Referenced by apply_change().

Here is the call graph for this function:


Member Data Documentation

GrowableArray< ClassChange * > * Reflection::class_changes = NULL [static, private]

Definition at line 31 of file reflection.hpp.

Referenced by apply_change(), find_change_for(), invalidate_classes(), needs_schema_change(), register_class_changes(), setup_schema_change(), and update_classes().

GrowableArray< memOop > * Reflection::converted = NULL [static, private]

Definition at line 32 of file reflection.hpp.

Referenced by apply_change(), and forward().


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