| Index: src/objects-inl.h
|
| ===================================================================
|
| --- src/objects-inl.h (revision 3115)
|
| +++ src/objects-inl.h (working copy)
|
| @@ -945,6 +945,25 @@
|
| }
|
|
|
|
|
| +bool MapWord::IsSerializationAddress() {
|
| + return HAS_SMI_TAG(reinterpret_cast<Object*>(value_));
|
| +}
|
| +
|
| +
|
| +MapWord MapWord::FromSerializationAddress(int raw) {
|
| + // When the map word is being used as a serialization address we Smi-encode
|
| + // the serialization address (which is always a smallish positive integer).
|
| + return MapWord(reinterpret_cast<uintptr_t>(Smi::FromInt(raw)));
|
| +}
|
| +
|
| +
|
| +int MapWord::ToSerializationAddress() {
|
| + // When the map word is being used as a serialization address we treat the
|
| + // map word as a Smi and get the small integer that it encodes.
|
| + return reinterpret_cast<Smi*>(value_)->value();
|
| +}
|
| +
|
| +
|
| bool MapWord::IsMarked() {
|
| return (value_ & kMarkingMask) == 0;
|
| }
|
|
|