Lines Matching refs:Ptr

74   static inline AtomicPackedHeader *getAtomicHeader(void *Ptr) {  in getAtomicHeader()  argument
75 return reinterpret_cast<AtomicPackedHeader *>(reinterpret_cast<uptr>(Ptr) - in getAtomicHeader()
79 const AtomicPackedHeader *getConstAtomicHeader(const void *Ptr) { in getConstAtomicHeader() argument
81 reinterpret_cast<uptr>(Ptr) - getHeaderSize()); in getConstAtomicHeader()
84 static inline bool isAligned(const void *Ptr) { in isAligned() argument
85 return IsAligned(reinterpret_cast<uptr>(Ptr), MinAlignment); in isAligned()
91 static inline void *getBackendPtr(const void *Ptr, UnpackedHeader *Header) { in getBackendPtr() argument
92 return reinterpret_cast<void *>(reinterpret_cast<uptr>(Ptr) - in getBackendPtr()
98 static inline uptr getUsableSize(const void *Ptr, UnpackedHeader *Header) { in getUsableSize() argument
104 getBackendPtr(Ptr, Header)) - getHeaderSize(); in getUsableSize()
108 static inline uptr getSize(const void *Ptr, UnpackedHeader *Header) { in getSize() argument
113 getBackendPtr(Ptr, Header)) - getHeaderSize() - SizeOrUnusedBytes; in getSize()
117 static inline u16 computeChecksum(const void *Ptr, UnpackedHeader *Header) { in computeChecksum() argument
122 const u32 Crc = computeCRC32(Cookie, reinterpret_cast<uptr>(Ptr), in computeChecksum()
129 static inline bool isValid(const void *Ptr) { in isValid() argument
131 atomic_load_relaxed(getConstAtomicHeader(Ptr)); in isValid()
135 computeChecksum(Ptr, &NewUnpackedHeader)); in isValid()
144 void loadHeader(const void *Ptr, UnpackedHeader *NewUnpackedHeader) { in loadHeader() argument
146 atomic_load_relaxed(getConstAtomicHeader(Ptr)); in loadHeader()
149 computeChecksum(Ptr, NewUnpackedHeader))) in loadHeader()
150 dieWithMessage("corrupted chunk header at address %p\n", Ptr); in loadHeader()
154 static inline void storeHeader(void *Ptr, UnpackedHeader *NewUnpackedHeader) { in storeHeader() argument
155 NewUnpackedHeader->Checksum = computeChecksum(Ptr, NewUnpackedHeader); in storeHeader()
157 atomic_store_relaxed(getAtomicHeader(Ptr), NewPackedHeader); in storeHeader()
163 static inline void compareExchangeHeader(void *Ptr, in compareExchangeHeader() argument
166 NewUnpackedHeader->Checksum = computeChecksum(Ptr, NewUnpackedHeader); in compareExchangeHeader()
170 getAtomicHeader(Ptr), &OldPackedHeader, NewPackedHeader, in compareExchangeHeader()
172 dieWithMessage("race on chunk header at address %p\n", Ptr); in compareExchangeHeader()
182 void Recycle(void *Ptr) { in Recycle()
184 Chunk::loadHeader(Ptr, &Header); in Recycle()
186 dieWithMessage("invalid chunk state when recycling address %p\n", Ptr); in Recycle()
189 Chunk::compareExchangeHeader(Ptr, &NewHeader, &Header); in Recycle()
190 void *BackendPtr = Chunk::getBackendPtr(Ptr, &Header); in Recycle()
205 void Deallocate(void *Ptr) { in Deallocate()
207 getBackend().deallocatePrimary(Cache_, Ptr, BatchClassId); in Deallocate()
290 bool isValidPointer(const void *Ptr) { in isValidPointer()
292 if (UNLIKELY(!Ptr)) in isValidPointer()
294 if (!Chunk::isAligned(Ptr)) in isValidPointer()
296 return Chunk::isValid(Ptr); in isValidPointer()
317 if (void *Ptr = GuardedAlloc.allocate(Size, Alignment)) { in allocate() local
319 __sanitizer_malloc_hook(Ptr, Size); in allocate()
320 return Ptr; in allocate()
398 void *Ptr = reinterpret_cast<void *>(UserPtr); in allocate() local
399 Chunk::storeHeader(Ptr, &Header); in allocate()
401 __sanitizer_malloc_hook(Ptr, Size); in allocate()
402 return Ptr; in allocate()
408 void quarantineOrDeallocateChunk(void *Ptr, UnpackedHeader *Header, uptr Size) in quarantineOrDeallocateChunk()
414 Chunk::compareExchangeHeader(Ptr, &NewHeader, Header); in quarantineOrDeallocateChunk()
415 void *BackendPtr = Chunk::getBackendPtr(Ptr, Header); in quarantineOrDeallocateChunk()
435 Chunk::compareExchangeHeader(Ptr, &NewHeader, Header); in quarantineOrDeallocateChunk()
439 Ptr, EstimatedSize); in quarantineOrDeallocateChunk()
447 void deallocate(void *Ptr, uptr DeleteSize, uptr DeleteAlignment, in deallocate()
457 __sanitizer_free_hook(Ptr); in deallocate()
458 if (UNLIKELY(!Ptr)) in deallocate()
462 if (UNLIKELY(GuardedAlloc.pointerIsMine(Ptr))) { in deallocate()
463 GuardedAlloc.deallocate(Ptr); in deallocate()
468 if (UNLIKELY(!Chunk::isAligned(Ptr))) in deallocate()
469 dieWithMessage("misaligned pointer when deallocating address %p\n", Ptr); in deallocate()
471 Chunk::loadHeader(Ptr, &Header); in deallocate()
473 dieWithMessage("invalid chunk state when deallocating address %p\n", Ptr); in deallocate()
480 "%p\n", Ptr); in deallocate()
483 const uptr Size = Chunk::getSize(Ptr, &Header); in deallocate()
487 Ptr); in deallocate()
490 quarantineOrDeallocateChunk(Ptr, &Header, Size); in deallocate()
546 uptr getUsableSize(const void *Ptr) { in getUsableSize()
548 if (UNLIKELY(!Ptr)) in getUsableSize()
552 if (UNLIKELY(GuardedAlloc.pointerIsMine(Ptr))) in getUsableSize()
553 return GuardedAlloc.getSize(Ptr); in getUsableSize()
557 Chunk::loadHeader(Ptr, &Header); in getUsableSize()
560 dieWithMessage("invalid chunk state when sizing address %p\n", Ptr); in getUsableSize()
561 return Chunk::getUsableSize(Ptr, &Header); in getUsableSize()
712 void scudoDeallocate(void *Ptr, uptr Size, uptr Alignment, AllocType Type) { in scudoDeallocate() argument
713 Instance.deallocate(Ptr, Size, Alignment, Type); in scudoDeallocate()
716 void *scudoRealloc(void *Ptr, uptr Size) { in scudoRealloc() argument
717 if (!Ptr) in scudoRealloc()
720 Instance.deallocate(Ptr, 0, 0, FromMalloc); in scudoRealloc()
723 return SetErrnoOnNull(Instance.reallocate(Ptr, Size)); in scudoRealloc()
754 void *Ptr = Instance.allocate(Size, Alignment, FromMemalign); in scudoPosixMemalign() local
755 if (UNLIKELY(!Ptr)) in scudoPosixMemalign()
757 *MemPtr = Ptr; in scudoPosixMemalign()
771 uptr scudoMallocUsableSize(void *Ptr) { in scudoMallocUsableSize() argument
772 return Instance.getUsableSize(Ptr); in scudoMallocUsableSize()
801 int __sanitizer_get_ownership(const void *Ptr) { in __sanitizer_get_ownership() argument
802 return Instance.isValidPointer(Ptr); in __sanitizer_get_ownership()
805 uptr __sanitizer_get_allocated_size(const void *Ptr) { in __sanitizer_get_allocated_size() argument
806 return Instance.getUsableSize(Ptr); in __sanitizer_get_allocated_size()
811 void *Ptr, uptr Size) { in SANITIZER_INTERFACE_WEAK_DEF() argument
812 (void)Ptr; in SANITIZER_INTERFACE_WEAK_DEF()
816 SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_free_hook, void *Ptr) { in SANITIZER_INTERFACE_WEAK_DEF() argument
817 (void)Ptr; in SANITIZER_INTERFACE_WEAK_DEF()