Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6147b389 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "FileBridge: use a ByteBuffer for the temp buffer" into sc-dev am: 64dcdac6

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15100555

Change-Id: I897955ec9d20d0d42db5fdf8b7034ed7ed52b8b6
parents 4447edff 64dcdac6
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import libcore.io.Streams;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
@@ -95,9 +96,11 @@ public class FileBridge extends Thread {

    @Override
    public void run() {
        final byte[] temp = new byte[8192];
        final ByteBuffer tempBuffer = ByteBuffer.allocateDirect(8192);
        final byte[] temp = tempBuffer.hasArray() ? tempBuffer.array() : new byte[8192];
        try {
            while (IoBridge.read(mServer.getFileDescriptor(), temp, 0, MSG_LENGTH) == MSG_LENGTH) {
            while (IoBridge.read(mServer.getFileDescriptor(), temp,
                                 0, MSG_LENGTH) == MSG_LENGTH) {
                final int cmd = Memory.peekInt(temp, 0, ByteOrder.BIG_ENDIAN);
                if (cmd == CMD_WRITE) {
                    // Shuttle data into local file
@@ -138,7 +141,10 @@ public class FileBridge extends Thread {
    public static class FileBridgeOutputStream extends OutputStream {
        private final ParcelFileDescriptor mClientPfd;
        private final FileDescriptor mClient;
        private final byte[] mTemp = new byte[MSG_LENGTH];
        private final ByteBuffer mTempBuffer = ByteBuffer.allocateDirect(MSG_LENGTH);
        private final byte[] mTemp = mTempBuffer.hasArray()
                                     ? mTempBuffer.array()
                                     : new byte[MSG_LENGTH];

        public FileBridgeOutputStream(ParcelFileDescriptor clientPfd) {
            mClientPfd = clientPfd;