// optimization by changing it now without testing how GCC
// behaves.
- do {
- if (*tbl->guid == new_guid_first &&
+ while (true) {
+ if (tbl->guid[0] == new_guid_first &&
tbl->guid[1] == new_guid[1] &&
(sizeof(long) == 8 ||
(tbl->guid[2] == new_guid[2] &&
break;
tbl++;
- } while (tbl->guid);
-
+ if (__builtin_expect(!tbl->guid, 0))
+ return 0;
+ }
+
uintptr_t ptr = reinterpret_cast<uintptr_t>(obj);
ptr += obj->info->concrete;