diff options
author | 2019-07-10 15:54:34 -0700 | |
---|---|---|
committer | 2019-07-12 11:22:21 -0700 | |
commit | a03f0debad92921ba52d33e7e06f0064703e85ad (patch) | |
tree | 4b91e4dd1d1fdeb4a6a735e054bc2a3f09173b55 | |
parent | c5ae0dc56d828a85b8b609ca29923e58dea3b807 (diff) |
Use std::set instead of SortedVector
We only care whether a certain input device is present in a list or not.
For that, we can just use an std::set and not have to use custom
SortedVector data structure. This makes it easier for someone already
familiar with c++ but not necessarily Android to follow the code. It
also ensures that the data structure is properly maintained going
forward.
Bug: 137212522
Test: atest libinput_tests inputflinger_tests
Change-Id: I7808b41524ae0b87dbf1aaf7a49afa64b14b3eb9
-rw-r--r-- | services/inputflinger/InputReader.cpp | 4 | ||||
-rw-r--r-- | services/inputflinger/include/InputReaderBase.h | 6 | ||||
-rw-r--r-- | services/inputflinger/tests/InputReader_test.cpp | 16 |
3 files changed, 7 insertions, 19 deletions
diff --git a/services/inputflinger/InputReader.cpp b/services/inputflinger/InputReader.cpp index eee49d5e2a..2de5ffa0eb 100644 --- a/services/inputflinger/InputReader.cpp +++ b/services/inputflinger/InputReader.cpp @@ -1094,8 +1094,8 @@ void InputDevice::configure(nsecs_t when, const InputReaderConfiguration* config } if (!changes || (changes & InputReaderConfiguration::CHANGE_ENABLED_STATE)) { - ssize_t index = config->disabledDevices.indexOf(mId); - bool enabled = index < 0; + auto it = config->disabledDevices.find(mId); + bool enabled = it == config->disabledDevices.end(); setEnabled(enabled, when); } diff --git a/services/inputflinger/include/InputReaderBase.h b/services/inputflinger/include/InputReaderBase.h index c7720cbf59..271051499c 100644 --- a/services/inputflinger/include/InputReaderBase.h +++ b/services/inputflinger/include/InputReaderBase.h @@ -27,11 +27,11 @@ #include <utils/KeyedVector.h> #include <utils/Thread.h> #include <utils/RefBase.h> -#include <utils/SortedVector.h> -#include <optional> #include <stddef.h> #include <unistd.h> +#include <optional> +#include <set> #include <unordered_map> #include <vector> @@ -250,7 +250,7 @@ struct InputReaderConfiguration { bool pointerCapture; // The set of currently disabled input devices. - SortedVector<int32_t> disabledDevices; + std::set<int32_t> disabledDevices; InputReaderConfiguration() : virtualKeyQuietTime(0), diff --git a/services/inputflinger/tests/InputReader_test.cpp b/services/inputflinger/tests/InputReader_test.cpp index e10883485a..541de99623 100644 --- a/services/inputflinger/tests/InputReader_test.cpp +++ b/services/inputflinger/tests/InputReader_test.cpp @@ -202,21 +202,9 @@ public: mConfig.portAssociations.insert({inputPort, displayPort}); } - void addDisabledDevice(int32_t deviceId) { - ssize_t index = mConfig.disabledDevices.indexOf(deviceId); - bool currentlyEnabled = index < 0; - if (currentlyEnabled) { - mConfig.disabledDevices.add(deviceId); - } - } + void addDisabledDevice(int32_t deviceId) { mConfig.disabledDevices.insert(deviceId); } - void removeDisabledDevice(int32_t deviceId) { - ssize_t index = mConfig.disabledDevices.indexOf(deviceId); - bool currentlyEnabled = index < 0; - if (!currentlyEnabled) { - mConfig.disabledDevices.remove(deviceId); - } - } + void removeDisabledDevice(int32_t deviceId) { mConfig.disabledDevices.erase(deviceId); } void setPointerController(int32_t deviceId, const sp<FakePointerController>& controller) { mPointerControllers.add(deviceId, controller); |