< prev index next >

src/share/vm/code/nmethod.hpp

Print this page




 560   // Verify and count cached icholder relocations.
 561   int  verify_icholder_relocations();
 562   // Check that all metadata is still alive
 563   void verify_metadata_loaders(address low_boundary, BoolObjectClosure* is_alive);
 564 
 565   // unlink and deallocate this nmethod
 566   // Only NMethodSweeper class is expected to use this. NMethodSweeper is not
 567   // expected to use any other private methods/data in this class.
 568 
 569  protected:
 570   void flush();
 571 
 572  public:
 573   // When true is returned, it is unsafe to remove this nmethod even if
 574   // it is a zombie, since the VM or the ServiceThread might still be
 575   // using it.
 576   bool is_locked_by_vm() const                    { return _lock_count >0; }
 577 
 578   // See comment at definition of _last_seen_on_stack
 579   void mark_as_seen_on_stack();
 580   bool can_not_entrant_be_converted();
 581 
 582   // Evolution support. We make old (discarded) compiled methods point to new Method*s.
 583   void set_method(Method* method) { _method = method; }
 584 
 585   // GC support
 586   void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
 587   //  The parallel versions are used by G1.
 588   bool do_unloading_parallel(BoolObjectClosure* is_alive, bool unloading_occurred);
 589   void do_unloading_parallel_postponed(BoolObjectClosure* is_alive, bool unloading_occurred);
 590 
 591  private:
 592   //  Unload a nmethod if the *root object is dead.
 593   bool can_unload(BoolObjectClosure* is_alive, oop* root, bool unloading_occurred);
 594   bool unload_if_dead_at(RelocIterator *iter_at_oop, BoolObjectClosure* is_alive, bool unloading_occurred);
 595 
 596  public:
 597   void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map,
 598                                      OopClosure* f);
 599   void oops_do(OopClosure* f) { oops_do(f, false); }
 600   void oops_do(OopClosure* f, bool allow_zombie);




 560   // Verify and count cached icholder relocations.
 561   int  verify_icholder_relocations();
 562   // Check that all metadata is still alive
 563   void verify_metadata_loaders(address low_boundary, BoolObjectClosure* is_alive);
 564 
 565   // unlink and deallocate this nmethod
 566   // Only NMethodSweeper class is expected to use this. NMethodSweeper is not
 567   // expected to use any other private methods/data in this class.
 568 
 569  protected:
 570   void flush();
 571 
 572  public:
 573   // When true is returned, it is unsafe to remove this nmethod even if
 574   // it is a zombie, since the VM or the ServiceThread might still be
 575   // using it.
 576   bool is_locked_by_vm() const                    { return _lock_count >0; }
 577 
 578   // See comment at definition of _last_seen_on_stack
 579   void mark_as_seen_on_stack();
 580   bool can_convert_to_zombie();
 581 
 582   // Evolution support. We make old (discarded) compiled methods point to new Method*s.
 583   void set_method(Method* method) { _method = method; }
 584 
 585   // GC support
 586   void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
 587   //  The parallel versions are used by G1.
 588   bool do_unloading_parallel(BoolObjectClosure* is_alive, bool unloading_occurred);
 589   void do_unloading_parallel_postponed(BoolObjectClosure* is_alive, bool unloading_occurred);
 590 
 591  private:
 592   //  Unload a nmethod if the *root object is dead.
 593   bool can_unload(BoolObjectClosure* is_alive, oop* root, bool unloading_occurred);
 594   bool unload_if_dead_at(RelocIterator *iter_at_oop, BoolObjectClosure* is_alive, bool unloading_occurred);
 595 
 596  public:
 597   void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map,
 598                                      OopClosure* f);
 599   void oops_do(OopClosure* f) { oops_do(f, false); }
 600   void oops_do(OopClosure* f, bool allow_zombie);


< prev index next >