MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / allocateRange

Method allocateRange

src/common/classes/alloc.cpp:2330–2357  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2328}
2329
2330MemBlock* MemPool::allocateRange(size_t from, size_t& size
2331#ifdef DEBUG_GDS_ALLOC
2332 , const char* fileName, int line
2333#endif
2334)
2335{
2336 size_t length = from ? size : ROUNDUP(size + VALGRIND_REDZONE, roundingSize) + GUARD_BYTES;
2337 MemBlock* memory = allocateInternal(from, length, true);
2338 size = length - (VALGRIND_REDZONE + GUARD_BYTES);
2339 memory->pool = this;
2340
2341#ifdef USE_VALGRIND
2342 VALGRIND_MEMPOOL_ALLOC(this, &memory->body, size);
2343#endif
2344
2345#ifdef DEBUG_GDS_ALLOC
2346 memory->fileName = fileName;
2347 memory->lineNumber = line;
2348#endif
2349
2350#ifdef MEM_DEBUG
2351 memset(&memory->body, INIT_BYTE, size);
2352 memset(&memory->body + size, GUARD_BYTE, memory->getSize() - offsetof(MemBlock,body) - size);
2353#endif
2354
2355 fb_assert((U_IPTR)(&memory->body) % ALLOC_ALIGNMENT == 0);
2356 return memory;
2357}
2358
2359
2360void* MemPool::allocate(size_t size ALLOC_PARAMS)

Callers

nothing calls this directly

Calls 1

getSizeMethod · 0.45

Tested by

no test coverage detected