diff options
Diffstat (limited to 'src/com/android/browser/Tab.java')
| -rw-r--r-- | src/com/android/browser/Tab.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index f2aa529b1..839280ee5 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -2181,13 +2181,20 @@ class Tab implements PictureListener { } } + private static final ThreadLocal<ByteBuffer> sBuffer = new ThreadLocal<ByteBuffer>(); + private byte[] getCaptureBlob() { synchronized (Tab.this) { if (mCapture == null) { return null; } - ByteBuffer buffer = ByteBuffer.allocate(mCapture.getByteCount()); + ByteBuffer buffer = sBuffer.get(); + if (buffer == null || buffer.limit() < mCapture.getByteCount()) { + buffer = ByteBuffer.allocate(mCapture.getByteCount()); + sBuffer.set(buffer); + } mCapture.copyPixelsToBuffer(buffer); + buffer.rewind(); return buffer.array(); } } |
