add android support (#171)

* adjust for android

* update docs

* add const qualifier to `alloc_size`

* check const qualifier in cmake
This commit is contained in:
SchrodingerZhu
2020-04-18 14:58:13 +08:00
committed by GitHub
parent 0f5cc165e8
commit a43773c5b7
8 changed files with 43 additions and 10 deletions

View File

@@ -457,7 +457,7 @@ namespace snmalloc
return pointer_cast<void>(external_address<location>(p));
}
static size_t alloc_size(void* p)
static size_t alloc_size(const void* p)
{
// This must be called on an external pointer.
size_t size = ChunkMap::get(address_cast(p));

View File

@@ -39,9 +39,10 @@ namespace snmalloc
return OS_PAGE_SIZE;
}
static Mediumslab* get(void* p)
static Mediumslab* get(const void* p)
{
return pointer_align_down<SUPERSLAB_SIZE, Mediumslab>(p);
return pointer_align_down<SUPERSLAB_SIZE, Mediumslab>(
const_cast<void*>(p));
}
void init(RemoteAllocator* alloc, sizeclass_t sc, size_t rsize)

View File

@@ -140,9 +140,9 @@ namespace snmalloc
return (slab_end - allocation_start) % size == 0;
}
static Slab* get_slab(void* p)
static Slab* get_slab(const void* p)
{
return pointer_align_down<SLAB_SIZE, Slab>(p);
return pointer_align_down<SLAB_SIZE, Slab>(const_cast<void*>(p));
}
static bool is_short(Slab* p)

View File

@@ -65,9 +65,10 @@ namespace snmalloc
StatusChange = 2
};
static Superslab* get(void* p)
static Superslab* get(const void* p)
{
return pointer_align_down<SUPERSLAB_SIZE, Superslab>(p);
return pointer_align_down<SUPERSLAB_SIZE, Superslab>(
const_cast<void*>(p));
}
static bool is_short_sizeclass(sizeclass_t sizeclass)