MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / align_down

Function align_down

system/lib/libcxx/src/memory_resource.cpp:420–434  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

418constexpr size_t __default_growth_factor = 2;
419
420static void* align_down(size_t align, size_t size, void*& ptr, size_t& space) {
421 if (size > space)
422 return nullptr;
423
424 char* p1 = static_cast<char*>(ptr);
425 char* new_ptr = reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(p1 - size) & ~(align - 1));
426
427 if (new_ptr < (p1 - space))
428 return nullptr;
429
430 ptr = new_ptr;
431 space -= p1 - new_ptr;
432
433 return ptr;
434}
435
436template <bool is_initial, typename Chunk>
437void* __try_allocate_from_chunk(Chunk& self, size_t bytes, size_t align) {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected