mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 00:04:10 -08:00
Fix a few more issues
This commit is contained in:
parent
2fcaaa5313
commit
59f87c4f2c
|
@ -71,7 +71,8 @@ public final class LaxMalloc {
|
||||||
// Intrinsic function to get the maximum direct malloc heap segment ending address
|
// Intrinsic function to get the maximum direct malloc heap segment ending address
|
||||||
private static native Address getHeapMaxAddr();
|
private static native Address getHeapMaxAddr();
|
||||||
|
|
||||||
@Import(name = "teavm_notifyHeapResized")
|
// Function called to resize the JavaScript typed arrays wrapping the WebAssembly.Memory
|
||||||
|
@Import(name = "notifyHeapResized")
|
||||||
private static native void notifyHeapResized();
|
private static native void notifyHeapResized();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -129,7 +130,7 @@ public final class LaxMalloc {
|
||||||
long bucketMask = addrHeap(ADDR_HEAP_BUCKETS_FREE_MASK).getLong();
|
long bucketMask = addrHeap(ADDR_HEAP_BUCKETS_FREE_MASK).getLong();
|
||||||
|
|
||||||
// mask away the buckets that we know are too small for this allocation
|
// mask away the buckets that we know are too small for this allocation
|
||||||
bucketMask = bucketMask & (0xFFFFFFFFFFFFFFFFL << bucket);
|
bucketMask &= 0xFFFFFFFFFFFFFFFFL << bucket;
|
||||||
|
|
||||||
// there are no more buckets with free chunks
|
// there are no more buckets with free chunks
|
||||||
// need to sbrk
|
// need to sbrk
|
||||||
|
@ -464,7 +465,7 @@ public final class LaxMalloc {
|
||||||
private static void unlinkChunkFromFreeList(Address chunkPtr, int chunkSize) {
|
private static void unlinkChunkFromFreeList(Address chunkPtr, int chunkSize) {
|
||||||
Address prevChunkPtr = readChunkPrevFreeAddr(chunkPtr);
|
Address prevChunkPtr = readChunkPrevFreeAddr(chunkPtr);
|
||||||
Address nextChunkPtr = readChunkNextFreeAddr(chunkPtr);
|
Address nextChunkPtr = readChunkNextFreeAddr(chunkPtr);
|
||||||
if (prevChunkPtr.toInt() == nextChunkPtr.toInt()) {
|
if (prevChunkPtr.toInt() == chunkPtr.toInt() && nextChunkPtr.toInt() == chunkPtr.toInt()) {
|
||||||
// chunk is the only one currently in its bucket
|
// chunk is the only one currently in its bucket
|
||||||
|
|
||||||
int chunkBucket = getListBucket(chunkSize - 8); // size - 2 ints
|
int chunkBucket = getListBucket(chunkSize - 8); // size - 2 ints
|
||||||
|
|
Loading…
Reference in New Issue
Block a user