%PDF- %PDF-
| Direktori : /home2/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/heap/ |
| Current File : //home2/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/heap/zapping.cc |
// Copyright 2023 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/heap/zapping.h"
#include "src/base/memory.h"
#include "src/heap/heap.h"
#include "src/objects/slots-inl.h"
namespace v8::internal::heap {
void ZapCodeBlock(Address start, int size_in_bytes) {
#ifdef DEBUG
DCHECK(ShouldZapGarbage());
CodePageMemoryModificationScopeForDebugging code_modification_scope(
BasicMemoryChunk::FromAddress(start));
DCHECK(IsAligned(start, kIntSize));
for (int i = 0; i < size_in_bytes / kIntSize; i++) {
base::Memory<int>(start + i * kIntSize) = kCodeZapValue;
}
#endif
}
void ZapBlock(Address start, size_t size, uintptr_t zap_value) {
DCHECK(ShouldZapGarbage());
DCHECK(IsAligned(start, kTaggedSize));
DCHECK(IsAligned(size, kTaggedSize));
MemsetTagged(ObjectSlot(start),
Tagged<Object>(static_cast<Address>(zap_value)),
size >> kTaggedSizeLog2);
}
} // namespace v8::internal::heap