summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java12
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java10
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java2
3 files changed, 18 insertions, 6 deletions
diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
index a7260bb7c14b..c34730fdef04 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
@@ -49,8 +49,13 @@ public class RemoteComposeBuffer {
this.mRemoteComposeState = remoteComposeState;
}
- public void reset() {
- mBuffer.reset();
+ /**
+ * Reset the internal buffers
+ *
+ * @param expectedSize provided hint for the main buffer size
+ */
+ public void reset(int expectedSize) {
+ mBuffer.reset(expectedSize);
mRemoteComposeState.reset();
}
@@ -288,8 +293,7 @@ public class RemoteComposeBuffer {
public static void read(InputStream fd, RemoteComposeBuffer buffer) {
try {
byte[] bytes = readAllBytes(fd);
- buffer.reset();
- buffer.mBuffer.resize(bytes.length);
+ buffer.reset(bytes.length);
System.arraycopy(bytes, 0, buffer.mBuffer.mBuffer, 0, bytes.length);
buffer.mBuffer.mSize = bytes.length;
} catch (Exception e) {
diff --git a/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java b/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java
index 4518d94498d6..b7cb3926d936 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java
@@ -83,10 +83,18 @@ public class WireBuffer {
mIndex = currentIndex;
}
- public void reset() {
+ /**
+ * Reset the internal buffer
+ *
+ * @param expectedSize provided hint for the buffer size
+ */
+ public void reset(int expectedSize) {
mIndex = 0;
mStartingIndex = 0;
mSize = 0;
+ if (expectedSize > mMaxSize) {
+ resize(expectedSize);
+ }
}
public int size() {
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
index 4bfdc59aad3a..76b714443990 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
@@ -33,7 +33,7 @@ public class BitmapData implements Operation {
int mImageWidth;
int mImageHeight;
byte[] mBitmap;
- public static final int MAX_IMAGE_DIMENSION = 6000;
+ public static final int MAX_IMAGE_DIMENSION = 8000;
public static final Companion COMPANION = new Companion();