Merge "ImageReader: free direct byte buffers once Image is returned" into lmp-mr1-dev

This commit is contained in:
Zhijun He
2014-12-02 01:44:42 +00:00
committed by Android (Google) Code Review

View File

@@ -26,6 +26,7 @@ import android.view.Surface;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.nio.NioUtils;
/** /**
* <p>The ImageReader class allows direct application access to image data * <p>The ImageReader class allows direct application access to image data
@@ -688,6 +689,15 @@ public class ImageReader implements AutoCloseable {
} }
private void clearBuffer() { private void clearBuffer() {
// Need null check first, as the getBuffer() may not be called before an image
// is closed.
if (mBuffer == null) {
return;
}
if (mBuffer.isDirect()) {
NioUtils.freeDirectBuffer(mBuffer);
}
mBuffer = null; mBuffer = null;
} }