237 |
237 |
238 bool is_in_closed_subset_or_null(const void* p) const { |
238 bool is_in_closed_subset_or_null(const void* p) const { |
239 return p == NULL || is_in_closed_subset(p); |
239 return p == NULL || is_in_closed_subset(p); |
240 } |
240 } |
241 |
241 |
|
242 // XXX is_permanent() and is_in_permanent() should be better named |
|
243 // to distinguish one from the other. |
|
244 |
242 // Returns "TRUE" if "p" is allocated as "permanent" data. |
245 // Returns "TRUE" if "p" is allocated as "permanent" data. |
243 // If the heap does not use "permanent" data, returns the same |
246 // If the heap does not use "permanent" data, returns the same |
244 // value is_in_reserved() would return. |
247 // value is_in_reserved() would return. |
245 // NOTE: this actually returns true if "p" is in reserved space |
248 // NOTE: this actually returns true if "p" is in reserved space |
246 // for the space not that it is actually allocated (i.e. in committed |
249 // for the space not that it is actually allocated (i.e. in committed |
247 // space). If you need the more conservative answer use is_permanent(). |
250 // space). If you need the more conservative answer use is_permanent(). |
248 virtual bool is_in_permanent(const void *p) const = 0; |
251 virtual bool is_in_permanent(const void *p) const = 0; |
249 |
252 |
|
253 bool is_in_permanent_or_null(const void *p) const { |
|
254 return p == NULL || is_in_permanent(p); |
|
255 } |
|
256 |
250 // Returns "TRUE" if "p" is in the committed area of "permanent" data. |
257 // Returns "TRUE" if "p" is in the committed area of "permanent" data. |
251 // If the heap does not use "permanent" data, returns the same |
258 // If the heap does not use "permanent" data, returns the same |
252 // value is_in() would return. |
259 // value is_in() would return. |
253 virtual bool is_permanent(const void *p) const = 0; |
260 virtual bool is_permanent(const void *p) const = 0; |
254 |
261 |
255 bool is_in_permanent_or_null(const void *p) const { |
262 bool is_permanent_or_null(const void *p) const { |
256 return p == NULL || is_in_permanent(p); |
263 return p == NULL || is_permanent(p); |
257 } |
264 } |
258 |
265 |
259 // An object is scavengable if its location may move during a scavenge. |
266 // An object is scavengable if its location may move during a scavenge. |
260 // (A scavenge is a GC which is not a full GC.) |
267 // (A scavenge is a GC which is not a full GC.) |
261 // Currently, this just means it is not perm (and not null). |
268 // Currently, this just means it is not perm (and not null). |