diff --git a/zion/capability/capability_table.cpp b/zion/capability/capability_table.cpp index c1ad7fd..e157508 100644 --- a/zion/capability/capability_table.cpp +++ b/zion/capability/capability_table.cpp @@ -13,7 +13,7 @@ RefPtr CapabilityTable::GetCapability(uint64_t id) { MutexHolder h(lock_); auto iter = capabilities_.begin(); while (iter != capabilities_.end()) { - if (*iter && iter->id() == id) { + if (*iter && (*iter)->id() == id) { return *iter; } ++iter; @@ -27,7 +27,7 @@ RefPtr CapabilityTable::ReleaseCapability(uint64_t id) { MutexHolder h(lock_); auto iter = capabilities_.begin(); while (iter != capabilities_.end()) { - if (*iter && iter->id() == id) { + if (*iter && (*iter)->id() == id) { // FIXME: Do an actual release here. auto cap = *iter; *iter = {nullptr}; diff --git a/zion/lib/linked_list.h b/zion/lib/linked_list.h index e7c34f5..b6d5570 100644 --- a/zion/lib/linked_list.h +++ b/zion/lib/linked_list.h @@ -88,7 +88,7 @@ class LinkedList { } T& operator*() { return item_->item; } - T& operator->() { return item_->item; } + T* operator->() { return &item_->item; } bool operator==(const Iterator& other) { return item_ == other.item_; } bool operator!=(const Iterator& other) { return item_ != other.item_; } diff --git a/zion/object/process.cpp b/zion/object/process.cpp index 0867a71..b32729c 100644 --- a/zion/object/process.cpp +++ b/zion/object/process.cpp @@ -42,7 +42,7 @@ RefPtr Process::GetThread(uint64_t tid) { MutexHolder lock(mutex_); auto iter = threads_.begin(); while (iter != threads_.end()) { - if (iter->tid() == tid) { + if ((*iter)->tid() == tid) { return *iter; } ++iter; @@ -55,7 +55,7 @@ void Process::CheckState() { MutexHolder lock(mutex_); auto iter = threads_.begin(); while (iter != threads_.end()) { - if (iter->GetState() != Thread::FINISHED) { + if ((*iter)->GetState() != Thread::FINISHED) { return; } ++iter; diff --git a/zion/scheduler/process_manager.cpp b/zion/scheduler/process_manager.cpp index 70148a3..586171b 100644 --- a/zion/scheduler/process_manager.cpp +++ b/zion/scheduler/process_manager.cpp @@ -14,7 +14,7 @@ void ProcessManager::InsertProcess(const RefPtr& proc) { Process& ProcessManager::FromId(uint64_t pid) { auto iter = proc_list_.begin(); while (iter != proc_list_.end()) { - if (iter->id() == pid) { + if ((*iter)->id() == pid) { return **iter; } ++iter; @@ -28,7 +28,7 @@ void ProcessManager::DumpProcessStates() { dbgln("Process States: %u", proc_list_.size()); auto iter = proc_list_.begin(); while (iter != proc_list_.end()) { - dbgln("%u: %u", iter->id(), iter->GetState()); + dbgln("%u: %u", (*iter)->id(), (*iter)->GetState()); ++iter; } }