| 138 | } |
| 139 | |
| 140 | bool Checker::process_queue() |
| 141 | { |
| 142 | if (queue.empty()) |
| 143 | { |
| 144 | return false; |
| 145 | } |
| 146 | |
| 147 | auto item = std::move(queue.front()); |
| 148 | queue.pop_front(); |
| 149 | |
| 150 | auto cs = data.find(item.ptr); |
| 151 | if (cs == data.end()) |
| 152 | { |
| 153 | // happens if pointer is determined to be part of a larger structure |
| 154 | return true; |
| 155 | } |
| 156 | |
| 157 | dispatch_item(item, cs->second.second); |
| 158 | |
| 159 | return true; |
| 160 | } |
| 161 | |
| 162 | |
| 163 | void Checker::dispatch_item(const QueueItem & base, const CheckedStructure & cs) |