summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Tab.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/Tab.java')
-rw-r--r--src/com/android/browser/Tab.java9
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();
}
}