5#include <QtQml/private/qv4functiontable_p.h>
7#include <wtf/StdLibExtras.h>
8#include <wtf/PageAllocation.h>
14 return reinterpret_cast<void*
>(
addr);
24 return reinterpret_cast<void*
>(
addr);
35 allocator->
free(
this);
44 next->prev = remainder;
46 remainder->next =
next;
49 remainder->prev =
this;
51 remainder->size =
size - dividingSize;
52 remainder->free =
free;
53 remainder->addr =
addr + dividingSize;
65 allocator->freeAllocations.remove(
size,
this);
66 allocator->freeAllocations.remove(
next->size,
next);
69 Allocation *newNext =
next->next;
75 allocator->freeAllocations.insert(
size,
this);
82 if (!prev || !prev->free)
85 allocator->freeAllocations.remove(
size,
this);
86 allocator->freeAllocations.remove(prev->size, prev);
93 allocator->freeAllocations.insert(prev->size, prev);
146 if (
it != freeAllocations.end()) {
148 freeAllocations.erase(
it);
153 size_t allocSize = WTF::roundUpToMultipleOf(WTF::pageSize(),
size);
154 chunk->
pages =
new WTF::PageAllocation(WTF::PageAllocation::allocate(allocSize, OSAllocator::JSJITCodePages));
155 chunks.insert(
reinterpret_cast<quintptr>(chunk->
pages->base()) - 1, chunk);
170 remainder->free =
true;
171 if (!remainder->mergeNext(
this))
172 freeAllocations.insert(remainder->size, remainder);
187 if (
it != chunks.begin())
213 if (
it != chunks.begin())
215 if (
it == chunks.end())
void free(Allocation *allocation)
Allocation * allocate(size_t size)
ChunkOfPages * chunkForAllocation(Allocation *allocation) const
qDeleteAll(list.begin(), list.end())
QSet< QString >::iterator it
\qmltype Particle \inqmlmodule QtQuick.Particles
size_t exceptionHandlerSize()
GLenum GLuint GLintptr GLsizeiptr size
[1]
std::unique_ptr< ThunkPool::ThunkAllocation > allocation
size_t exceptionHandlerSize() const
void deallocate(ExecutableAllocator *allocator)
void * exceptionHandlerStart() const
void * memoryStart() const
WTF::PageAllocation * pages
bool contains(Allocation *alloc) const
Allocation * firstAllocation