| 95 | |
| 96 | |
| 97 | void ValueSlot::setPointer(const Value *v) { |
| 98 | // This is a requirement for the tagging to work (see description in header): |
| 99 | precondition((intptr_t(v) & 0xFF) != kInlineTag); |
| 100 | precondition(v != nullptr); |
| 101 | if (_usuallyFalse(v == pointer())) |
| 102 | return; |
| 103 | releaseValue(); |
| 104 | _pointer = uint64_t(size_t(retain(v))); |
| 105 | assert(isPointer()); |
| 106 | } |
| 107 | |
| 108 | |
| 109 | void ValueSlot::setInline(internal::tags valueTag, int tiny) { |