238 // be expensive to compute in general, so, to prevent
239 // their inadvertent use in product jvm's, we restrict their use to
240 // assertion checking or verification only.
241 bool is_in(const void* p) const;
242
243 // Returns true if the reference is to an object in the reserved space
244 // for the young generation.
245 // Assumes the the young gen address range is less than that of the old gen.
246 bool is_in_young(oop p);
247
248 #ifdef ASSERT
249 bool is_in_partial_collection(const void* p);
250 #endif
251
252 // Optimized nmethod scanning support routines
253 virtual void register_nmethod(nmethod* nm);
254 virtual void unregister_nmethod(nmethod* nm);
255 virtual void verify_nmethod(nmethod* nm);
256 virtual void flush_nmethod(nmethod* nm);
257
258 void prune_nmethods();
259
260 // Iteration functions.
261 void oop_iterate(OopIterateClosure* cl);
262 void object_iterate(ObjectClosure* cl);
263 void safe_object_iterate(ObjectClosure* cl);
264 Space* space_containing(const void* addr) const;
265
266 // A CollectedHeap is divided into a dense sequence of "blocks"; that is,
267 // each address in the (reserved) heap is a member of exactly
268 // one block. The defining characteristic of a block is that it is
269 // possible to find its size, and thus to progress forward to the next
270 // block. (Blocks may be of different sizes.) Thus, blocks may
271 // represent Java objects, or they might be free blocks in a
272 // free-list-based heap (or subheap), as long as the two kinds are
273 // distinguishable and the size of each is determinable.
274
275 // Returns the address of the start of the "block" that contains the
276 // address "addr". We say "blocks" instead of "object" since some heaps
277 // may not pack objects densely; a chunk may either be an object or a
278 // non-object.
|
238 // be expensive to compute in general, so, to prevent
239 // their inadvertent use in product jvm's, we restrict their use to
240 // assertion checking or verification only.
241 bool is_in(const void* p) const;
242
243 // Returns true if the reference is to an object in the reserved space
244 // for the young generation.
245 // Assumes the the young gen address range is less than that of the old gen.
246 bool is_in_young(oop p);
247
248 #ifdef ASSERT
249 bool is_in_partial_collection(const void* p);
250 #endif
251
252 // Optimized nmethod scanning support routines
253 virtual void register_nmethod(nmethod* nm);
254 virtual void unregister_nmethod(nmethod* nm);
255 virtual void verify_nmethod(nmethod* nm);
256 virtual void flush_nmethod(nmethod* nm);
257
258 void prune_scavengable_nmethods();
259
260 // Iteration functions.
261 void oop_iterate(OopIterateClosure* cl);
262 void object_iterate(ObjectClosure* cl);
263 void safe_object_iterate(ObjectClosure* cl);
264 Space* space_containing(const void* addr) const;
265
266 // A CollectedHeap is divided into a dense sequence of "blocks"; that is,
267 // each address in the (reserved) heap is a member of exactly
268 // one block. The defining characteristic of a block is that it is
269 // possible to find its size, and thus to progress forward to the next
270 // block. (Blocks may be of different sizes.) Thus, blocks may
271 // represent Java objects, or they might be free blocks in a
272 // free-list-based heap (or subheap), as long as the two kinds are
273 // distinguishable and the size of each is determinable.
274
275 // Returns the address of the start of the "block" that contains the
276 // address "addr". We say "blocks" instead of "object" since some heaps
277 // may not pack objects densely; a chunk may either be an object or a
278 // non-object.
|