equal
deleted
inserted
replaced
347 |
347 |
348 int get_state() const { |
348 int get_state() const { |
349 return _state; |
349 return _state; |
350 } |
350 } |
351 |
351 |
352 void make_unloaded(BoolObjectClosure* is_alive, oop cause); |
352 void make_unloaded(oop cause); |
353 |
353 |
354 bool has_dependencies() { return dependencies_size() != 0; } |
354 bool has_dependencies() { return dependencies_size() != 0; } |
355 void flush_dependencies(BoolObjectClosure* is_alive); |
355 void flush_dependencies(bool delete_immediately); |
356 bool has_flushed_dependencies() { return _has_flushed_dependencies; } |
356 bool has_flushed_dependencies() { return _has_flushed_dependencies; } |
357 void set_has_flushed_dependencies() { |
357 void set_has_flushed_dependencies() { |
358 assert(!has_flushed_dependencies(), "should only happen once"); |
358 assert(!has_flushed_dependencies(), "should only happen once"); |
359 _has_flushed_dependencies = 1; |
359 _has_flushed_dependencies = 1; |
360 } |
360 } |
486 protected: |
486 protected: |
487 virtual bool do_unloading_oops(address low_boundary, BoolObjectClosure* is_alive, bool unloading_occurred); |
487 virtual bool do_unloading_oops(address low_boundary, BoolObjectClosure* is_alive, bool unloading_occurred); |
488 #if INCLUDE_JVMCI |
488 #if INCLUDE_JVMCI |
489 // See comment for _jvmci_installed_code_triggers_unloading field. |
489 // See comment for _jvmci_installed_code_triggers_unloading field. |
490 // Returns whether this nmethod was unloaded. |
490 // Returns whether this nmethod was unloaded. |
491 virtual bool do_unloading_jvmci(BoolObjectClosure* is_alive, bool unloading_occurred); |
491 virtual bool do_unloading_jvmci(bool unloading_occurred); |
492 #endif |
492 #endif |
493 |
493 |
494 private: |
494 private: |
495 bool do_unloading_scopes(BoolObjectClosure* is_alive, bool unloading_occurred); |
495 bool do_unloading_scopes(BoolObjectClosure* is_alive, bool unloading_occurred); |
496 // Unload a nmethod if the *root object is dead. |
496 // Unload a nmethod if the *root object is dead. |