src/share/vm/prims/jvmtiRedefineClasses.hpp

Print this page




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


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


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


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