- add jemalloc allocatordefine_list_fix
parent
4b5c945d80
commit
dea6f6ab1c
@ -0,0 +1,55 @@ |
|||||||
|
package com.jme3.util; |
||||||
|
|
||||||
|
import static org.lwjgl.system.jemalloc.JEmalloc.*; |
||||||
|
|
||||||
|
import java.nio.Buffer; |
||||||
|
import java.nio.ByteBuffer; |
||||||
|
import java.nio.DoubleBuffer; |
||||||
|
import java.nio.FloatBuffer; |
||||||
|
import java.nio.IntBuffer; |
||||||
|
import java.nio.LongBuffer; |
||||||
|
import java.nio.ShortBuffer; |
||||||
|
|
||||||
|
/** |
||||||
|
* This class contains a <code>jemalloc</code> allocator which is a general purpose <code>malloc(3)</code> implementation. |
||||||
|
* <p> |
||||||
|
* <b>LWJGL 3 is required</b> because it includes the jemalloc bindings and binaries. |
||||||
|
* </p> |
||||||
|
*/ |
||||||
|
public final class JemallocAllocator implements BufferAllocator |
||||||
|
{ |
||||||
|
@Override |
||||||
|
public void destroyDirectBuffer(Buffer buffer) |
||||||
|
{ |
||||||
|
if (buffer instanceof ByteBuffer) |
||||||
|
{ |
||||||
|
je_free((ByteBuffer) buffer); |
||||||
|
} |
||||||
|
else if (buffer instanceof ShortBuffer) |
||||||
|
{ |
||||||
|
je_free((ShortBuffer) buffer); |
||||||
|
} |
||||||
|
else if (buffer instanceof IntBuffer) |
||||||
|
{ |
||||||
|
je_free((IntBuffer) buffer); |
||||||
|
} |
||||||
|
else if (buffer instanceof LongBuffer) |
||||||
|
{ |
||||||
|
je_free((LongBuffer) buffer); |
||||||
|
} |
||||||
|
else if (buffer instanceof FloatBuffer) |
||||||
|
{ |
||||||
|
je_free((FloatBuffer) buffer); |
||||||
|
} |
||||||
|
else if (buffer instanceof DoubleBuffer) |
||||||
|
{ |
||||||
|
je_free((DoubleBuffer) buffer); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ByteBuffer allocate(int size) |
||||||
|
{ |
||||||
|
return je_malloc(size); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue