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

Commit 6787b7c5 authored by Kenny Root's avatar Kenny Root Committed by Android (Google) Code Review
Browse files

Merge "Compact when NativeDaemonConnector hits buffer limit"

parents b83b556e 961aa8c8
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -48,6 +48,8 @@ final class NativeDaemonConnector implements Runnable {
    private String                mSocket;
    private INativeDaemonConnectorCallbacks mCallbacks;

    private final int BUFFER_SIZE = 4096;

    class ResponseCode {
        public static final int ActionInitiated                = 100;

@@ -100,13 +102,13 @@ final class NativeDaemonConnector implements Runnable {
            InputStream inputStream = socket.getInputStream();
            mOutputStream = socket.getOutputStream();

            byte[] buffer = new byte[4096];
            byte[] buffer = new byte[BUFFER_SIZE];
            int start = 0;

            while (true) {
                int count = inputStream.read(buffer);
                int count = inputStream.read(buffer, start, BUFFER_SIZE - start);
                if (count < 0) break;

                int start = 0;
                for (int i = 0; i < count; i++) {
                    if (buffer[i] == 0) {
                        String event = new String(buffer, start, i - start);
@@ -139,6 +141,13 @@ final class NativeDaemonConnector implements Runnable {
                        start = i + 1;
                    }
                }
                if (start != count) {
                    final int remaining = BUFFER_SIZE - start;
                    System.arraycopy(buffer, start, buffer, 0, remaining);
                    start = remaining;
                } else {
                    start = 0;
                }
            }
        } catch (IOException ex) {
            Slog.e(TAG, "Communications error", ex);