Fixes ReflectionAllocator for android

This commit is contained in:
Nehon 2017-12-01 08:40:41 +01:00
parent 676251b4d5
commit 5c9ef17e73

View File

@ -151,16 +151,9 @@ public final class ReflectionAllocator implements BufferAllocator {
if (viewedBuffer != null) {
if (viewedBuffer instanceof Buffer) {
destroyDirectBuffer((Buffer) viewedBuffer);
} else {
//on android there is an internal MemoryRef class that is returned and has a "free" method.
Method freeMethod = loadMethod(viewedBuffer.getClass().getName(), "free");
if (freeMethod != null) {
freeMethod.invoke(viewedBuffer);
} else {
Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE,
"Buffer cannot be destroyed: {0}, {1}", new Object[]{toBeDestroyed, viewedBuffer});
}
}
// Else nothing to do, we may be on android which has an
// internal system for freeing direct buffers
} else {
Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE,
"Buffer cannot be destroyed: {0}", toBeDestroyed);