| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index ea3b008a98b882634a65412c28ec92bafa1557bb..ea448b786aa48ae89a5208d2efd885416ac575f6 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1473,21 +1473,22 @@ int HeapObject::Size() {
|
| }
|
|
|
|
|
| -bool HeapObject::MayContainNewSpacePointers() {
|
| +bool HeapObject::MayContainRawValues() {
|
| InstanceType type = map()->instance_type();
|
| if (type <= LAST_NAME_TYPE) {
|
| if (type == SYMBOL_TYPE) {
|
| - return true;
|
| + return false;
|
| }
|
| DCHECK(type < FIRST_NONSTRING_TYPE);
|
| // There are four string representations: sequential strings, external
|
| // strings, cons strings, and sliced strings.
|
| - // Only the latter two contain non-map-word pointers to heap objects.
|
| - return ((type & kIsIndirectStringMask) == kIsIndirectStringTag);
|
| + // Only the former two contain raw values and no heap pointers (besides the
|
| + // map-word).
|
| + return ((type & kIsIndirectStringMask) != kIsIndirectStringTag);
|
| }
|
| - // The ConstantPoolArray contains heap pointers, but not new space pointers.
|
| - if (type == CONSTANT_POOL_ARRAY_TYPE) return false;
|
| - return (type > LAST_DATA_TYPE);
|
| + // The ConstantPoolArray contains heap pointers, but also raw values.
|
| + if (type == CONSTANT_POOL_ARRAY_TYPE) return true;
|
| + return (type <= LAST_DATA_TYPE);
|
| }
|
|
|
|
|
|
|