31 #include "memory/genCollectedHeap.hpp"
32 #include "memory/genOopClosures.inline.hpp"
33 #include "memory/generationSpec.hpp"
34 #include "memory/iterator.hpp"
35 #include "memory/referencePolicy.hpp"
36 #include "memory/space.inline.hpp"
37 #include "oops/instanceRefKlass.hpp"
38 #include "oops/oop.inline.hpp"
39 #include "runtime/java.hpp"
40 #include "utilities/copy.hpp"
41 #include "utilities/stack.inline.hpp"
42 #ifdef TARGET_OS_FAMILY_linux
43 # include "thread_linux.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_solaris
46 # include "thread_solaris.inline.hpp"
47 #endif
48 #ifdef TARGET_OS_FAMILY_windows
49 # include "thread_windows.inline.hpp"
50 #endif
51
52 //
53 // DefNewGeneration functions.
54
55 // Methods of protected closure types.
56
57 DefNewGeneration::IsAliveClosure::IsAliveClosure(Generation* g) : _g(g) {
58 assert(g->level() == 0, "Optimized for youngest gen.");
59 }
60 void DefNewGeneration::IsAliveClosure::do_object(oop p) {
61 assert(false, "Do not call.");
62 }
63 bool DefNewGeneration::IsAliveClosure::do_object_b(oop p) {
64 return (HeapWord*)p >= _g->reserved().end() || p->is_forwarded();
65 }
66
67 DefNewGeneration::KeepAliveClosure::
68 KeepAliveClosure(ScanWeakRefClosure* cl) : _cl(cl) {
69 GenRemSet* rs = GenCollectedHeap::heap()->rem_set();
70 assert(rs->rs_kind() == GenRemSet::CardTable, "Wrong rem set kind.");
|
31 #include "memory/genCollectedHeap.hpp"
32 #include "memory/genOopClosures.inline.hpp"
33 #include "memory/generationSpec.hpp"
34 #include "memory/iterator.hpp"
35 #include "memory/referencePolicy.hpp"
36 #include "memory/space.inline.hpp"
37 #include "oops/instanceRefKlass.hpp"
38 #include "oops/oop.inline.hpp"
39 #include "runtime/java.hpp"
40 #include "utilities/copy.hpp"
41 #include "utilities/stack.inline.hpp"
42 #ifdef TARGET_OS_FAMILY_linux
43 # include "thread_linux.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_solaris
46 # include "thread_solaris.inline.hpp"
47 #endif
48 #ifdef TARGET_OS_FAMILY_windows
49 # include "thread_windows.inline.hpp"
50 #endif
51 #ifdef TARGET_OS_FAMILY_bsd
52 # include "thread_bsd.inline.hpp"
53 #endif
54
55 //
56 // DefNewGeneration functions.
57
58 // Methods of protected closure types.
59
60 DefNewGeneration::IsAliveClosure::IsAliveClosure(Generation* g) : _g(g) {
61 assert(g->level() == 0, "Optimized for youngest gen.");
62 }
63 void DefNewGeneration::IsAliveClosure::do_object(oop p) {
64 assert(false, "Do not call.");
65 }
66 bool DefNewGeneration::IsAliveClosure::do_object_b(oop p) {
67 return (HeapWord*)p >= _g->reserved().end() || p->is_forwarded();
68 }
69
70 DefNewGeneration::KeepAliveClosure::
71 KeepAliveClosure(ScanWeakRefClosure* cl) : _cl(cl) {
72 GenRemSet* rs = GenCollectedHeap::heap()->rem_set();
73 assert(rs->rs_kind() == GenRemSet::CardTable, "Wrong rem set kind.");
|