Merge "InputDispatcher: Optimize count()"

This commit is contained in:
Narayan Kamath 2014-12-24 10:25:42 +00:00 committed by Gerrit Code Review
commit 033f7e8e35
2 changed files with 9 additions and 14 deletions

View File

@ -3814,18 +3814,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) :

View File

@ -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. */