src/share/vm/prims/jvmtiRedefineClasses.hpp

Print this page




 451     instanceKlassHandle scratch_class, TRAPS);
 452   void rewrite_cp_refs_in_method(methodHandle method,
 453     methodHandle * new_method_p, TRAPS);
 454   bool rewrite_cp_refs_in_methods(instanceKlassHandle scratch_class, TRAPS);
 455   bool rewrite_cp_refs_in_methods_annotations(
 456     instanceKlassHandle scratch_class, TRAPS);
 457   bool rewrite_cp_refs_in_methods_default_annotations(
 458     instanceKlassHandle scratch_class, TRAPS);
 459   bool rewrite_cp_refs_in_methods_parameter_annotations(
 460     instanceKlassHandle scratch_class, TRAPS);
 461   void rewrite_cp_refs_in_stack_map_table(methodHandle method, TRAPS);
 462   void rewrite_cp_refs_in_verification_type_info(
 463          address& stackmap_addr_ref, address stackmap_end, u2 frame_i,
 464          u1 frame_size, TRAPS);
 465   void set_new_constant_pool(ClassLoaderData* loader_data,
 466          instanceKlassHandle scratch_class,
 467          constantPoolHandle scratch_cp, int scratch_cp_length, TRAPS);
 468 
 469   void flush_dependent_code(instanceKlassHandle k_h, TRAPS);
 470 
 471   static void check_class(Klass* k_oop, ClassLoaderData* initiating_loader, TRAPS) PRODUCT_RETURN;


 472 
 473   static void dump_methods()   PRODUCT_RETURN;
 474 
 475  public:
 476   VM_RedefineClasses(jint class_count,
 477                      const jvmtiClassDefinition *class_defs,
 478                      JvmtiClassLoadKind class_load_kind);
 479   VMOp_Type type() const { return VMOp_RedefineClasses; }
 480   bool doit_prologue();
 481   void doit();
 482   void doit_epilogue();
 483 
 484   bool allow_nested_vm_operations() const        { return true; }
 485   jvmtiError check_error()                       { return _res; }
 486 
 487   // Modifiable test must be shared between IsModifiableClass query
 488   // and redefine implementation
 489   static bool is_modifiable_class(oop klass_mirror);
 490 };
 491 #endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP


 451     instanceKlassHandle scratch_class, TRAPS);
 452   void rewrite_cp_refs_in_method(methodHandle method,
 453     methodHandle * new_method_p, TRAPS);
 454   bool rewrite_cp_refs_in_methods(instanceKlassHandle scratch_class, TRAPS);
 455   bool rewrite_cp_refs_in_methods_annotations(
 456     instanceKlassHandle scratch_class, TRAPS);
 457   bool rewrite_cp_refs_in_methods_default_annotations(
 458     instanceKlassHandle scratch_class, TRAPS);
 459   bool rewrite_cp_refs_in_methods_parameter_annotations(
 460     instanceKlassHandle scratch_class, TRAPS);
 461   void rewrite_cp_refs_in_stack_map_table(methodHandle method, TRAPS);
 462   void rewrite_cp_refs_in_verification_type_info(
 463          address& stackmap_addr_ref, address stackmap_end, u2 frame_i,
 464          u1 frame_size, TRAPS);
 465   void set_new_constant_pool(ClassLoaderData* loader_data,
 466          instanceKlassHandle scratch_class,
 467          constantPoolHandle scratch_cp, int scratch_cp_length, TRAPS);
 468 
 469   void flush_dependent_code(instanceKlassHandle k_h, TRAPS);
 470 
 471   static void check_class(Klass* k_oop, ClassLoaderData* initiating_loader,
 472                 TRAPS);
 473   static void dump_methods();
 474 


 475  public:
 476   VM_RedefineClasses(jint class_count,
 477                      const jvmtiClassDefinition *class_defs,
 478                      JvmtiClassLoadKind class_load_kind);
 479   VMOp_Type type() const { return VMOp_RedefineClasses; }
 480   bool doit_prologue();
 481   void doit();
 482   void doit_epilogue();
 483 
 484   bool allow_nested_vm_operations() const        { return true; }
 485   jvmtiError check_error()                       { return _res; }
 486 
 487   // Modifiable test must be shared between IsModifiableClass query
 488   // and redefine implementation
 489   static bool is_modifiable_class(oop klass_mirror);
 490 };
 491 #endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP