am 033f7e8e
: Merge "InputDispatcher: Optimize count()"
* commit '033f7e8e35ac76404fe823a67e07ba7c42bc357c': InputDispatcher: Optimize count()
This commit is contained in:
commit
106547c1e3
@ -3789,18 +3789,6 @@ void InputDispatcher::monitor() {
|
||||
}
|
||||
|
||||
|
||||
// --- InputDispatcher::Queue ---
|
||||
|
||||
template <typename T>
|
||||
uint32_t InputDispatcher::Queue<T>::count() const {
|
||||
uint32_t result = 0;
|
||||
for (const T* entry = head; entry; entry = entry->next) {
|
||||
result += 1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
// --- InputDispatcher::InjectionState ---
|
||||
|
||||
InputDispatcher::InjectionState::InjectionState(int32_t injectorPid, int32_t injectorUid) :
|
||||
|
@ -606,8 +606,9 @@ private:
|
||||
struct Queue {
|
||||
T* head;
|
||||
T* tail;
|
||||
uint32_t entryCount;
|
||||
|
||||
inline Queue() : head(NULL), tail(NULL) {
|
||||
inline Queue() : head(NULL), tail(NULL), entryCount(0) {
|
||||
}
|
||||
|
||||
inline bool isEmpty() const {
|
||||
@ -615,6 +616,7 @@ private:
|
||||
}
|
||||
|
||||
inline void enqueueAtTail(T* entry) {
|
||||
entryCount++;
|
||||
entry->prev = tail;
|
||||
if (tail) {
|
||||
tail->next = entry;
|
||||
@ -626,6 +628,7 @@ private:
|
||||
}
|
||||
|
||||
inline void enqueueAtHead(T* entry) {
|
||||
entryCount++;
|
||||
entry->next = head;
|
||||
if (head) {
|
||||
head->prev = entry;
|
||||
@ -637,6 +640,7 @@ private:
|
||||
}
|
||||
|
||||
inline void dequeue(T* entry) {
|
||||
entryCount--;
|
||||
if (entry->prev) {
|
||||
entry->prev->next = entry->next;
|
||||
} else {
|
||||
@ -650,6 +654,7 @@ private:
|
||||
}
|
||||
|
||||
inline T* dequeueAtHead() {
|
||||
entryCount--;
|
||||
T* entry = head;
|
||||
head = entry->next;
|
||||
if (head) {
|
||||
@ -660,7 +665,9 @@ private:
|
||||
return entry;
|
||||
}
|
||||
|
||||
uint32_t count() const;
|
||||
uint32_t count() const {
|
||||
return entryCount;
|
||||
}
|
||||
};
|
||||
|
||||
/* Specifies which events are to be canceled and why. */
|
||||
|
Loading…
Reference in New Issue
Block a user