MCPcopy Create free account
hub / github.com/catboost/catboost / realloc

Function realloc

library/cpp/balloc/balloc.cpp:234–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

232static inline void* DoRealloc(void* oldPtr, size_t newSize) {
233#else
234extern "C" void* realloc(void* oldPtr, size_t newSize) {
235#endif
236 if (!oldPtr) {
237 void* result = NBalloc::Malloc(newSize);
238 return result;
239 }
240 if (newSize == 0) {
241 NBalloc::Free(oldPtr);
242 return nullptr;
243 }
244 void* newPtr = NBalloc::Malloc(newSize);
245 if (!newPtr) {
246 return nullptr;
247 }
248 NBalloc::TAllocHeader* header = (NBalloc::TAllocHeader*)oldPtr - 1;
249 const size_t oldSize = header->AllocSize & ~NBalloc::SIGNATURE_MASK;
250 const size_t signature = header->AllocSize & NBalloc::SIGNATURE_MASK;
251 if (Y_LIKELY((signature == NBalloc::ALIVE_SIGNATURE) || (signature == NBalloc::DISABLED_SIGNATURE))) {
252 memcpy(newPtr, oldPtr, oldSize < newSize ? oldSize : newSize);
253 NBalloc::Free(oldPtr);
254 return newPtr;
255 }
256 NMalloc::AbortFromCorruptedAllocator();
257 return nullptr;
258}
259
260#if defined(Y_COVER_PTR)
261extern "C" void* realloc(void* oldPtr, size_t newSize) {

Callers 3

y_reallocateFunction · 0.50
yreallocfFunction · 0.50
fts_sortFunction · 0.50

Calls 5

FreeFunction · 0.85
MallocFunction · 0.70
mallocFunction · 0.70
freeFunction · 0.70

Tested by

no test coverage detected