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

Commit a054db0b authored by Robert Wu's avatar Robert Wu
Browse files

MidiService: Add GuardedBy Annotation to USB MIDI

As a follow-up to ag/16835029, adding GuardedBy annotation
to new USB specific classes. This should help with identifying
potential races

Bug: 219763493
Test: Tested on MIDI 2.0 keyboard
Change-Id: I3d77db0d741cca8f79a759d2dcc99e8254b0298c
parent 4769e90c
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.os.UserHandle;
import android.util.EventLog;
import android.util.Log;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.content.PackageMonitor;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.IndentingPrintWriter;
@@ -136,10 +137,12 @@ public class MidiService extends IMidiManager.Stub {
    private final Object mUsbMidiLock = new Object();

    // Number of times a USB MIDI 1.0 device has opened, based on the device name.
    @GuardedBy("mUsbMidiLock")
    private final HashMap<String, Integer> mUsbMidiLegacyDeviceOpenCount =
            new HashMap<String, Integer>();

    // Whether a USB MIDI device has opened, based on the device name.
    @GuardedBy("mUsbMidiLock")
    private final HashSet<String> mUsbMidiUniversalDeviceInUse = new HashSet<String>();

    // UID of BluetoothMidiService
@@ -1247,7 +1250,7 @@ public class MidiService extends IMidiManager.Stub {
        pw.decreaseIndent();
    }

    // hold mUsbMidiLock before calling this
    @GuardedBy("mUsbMidiLock")
    private boolean isUsbMidiDeviceInUseLocked(MidiDeviceInfo info) {
        String name = info.getProperties().getString(MidiDeviceInfo.PROPERTY_NAME);
        if (name.length() < MIDI_LEGACY_STRING.length()) {
@@ -1266,7 +1269,7 @@ public class MidiService extends IMidiManager.Stub {
        return false;
    }

    // hold mUsbMidiLock before calling this
    @GuardedBy("mUsbMidiLock")
    void addUsbMidiDeviceLocked(MidiDeviceInfo info) {
        String name = info.getProperties().getString(MidiDeviceInfo.PROPERTY_NAME);
        if (name.length() < MIDI_LEGACY_STRING.length()) {
@@ -1283,7 +1286,7 @@ public class MidiService extends IMidiManager.Stub {
        }
    }

    // hold mUsbMidiLock before calling this
    @GuardedBy("mUsbMidiLock")
    void removeUsbMidiDeviceLocked(MidiDeviceInfo info) {
        String name = info.getProperties().getString(MidiDeviceInfo.PROPERTY_NAME);
        if (name.length() < MIDI_LEGACY_STRING.length()) {