From 2136d8d77e40a6712ed2cc9314a2fb74201136b1 Mon Sep 17 00:00:00 2001 From: Robert Wu Date: Tue, 25 Jan 2022 19:36:02 +0000 Subject: [PATCH] amidi: Don't create extra write buffer When sendWithTimestamp is called, a ~1000 byte buffer is created even if nothing is sent. This CL adds a check to the size to save space in the buffer if it's not needed. Bug: 216328047 Test: atest NativeMidiEchoTest Change-Id: I0bfddb6ca7416c5df5e938bdd09a5f1efdacaf5c --- media/native/midi/amidi.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/media/native/midi/amidi.cpp b/media/native/midi/amidi.cpp index aa076e85e30d2..fd8a06da5c6d1 100644 --- a/media/native/midi/amidi.cpp +++ b/media/native/midi/amidi.cpp @@ -401,10 +401,14 @@ ssize_t AMIDI_API AMidiInputPort_send(const AMidiInputPort *inputPort, const uin ssize_t AMIDI_API AMidiInputPort_sendWithTimestamp(const AMidiInputPort *inputPort, const uint8_t *data, size_t numBytes, int64_t timestamp) { - if (inputPort == nullptr || data == nullptr) { + if (inputPort == nullptr || data == nullptr || numBytes < 0 || timestamp < 0) { return AMEDIA_ERROR_INVALID_PARAMETER; } + if (numBytes == 0) { + return 0; + } + // AMIDI_logBuffer(data, numBytes); uint8_t writeBuffer[AMIDI_BUFFER_SIZE + AMIDI_PACKET_OVERHEAD];