bool DWARFAbbreviationDeclarationSet::extract(DataExtractor Data, uint32_t *OffsetPtr) { clear(); const uint32_t BeginOffset = *OffsetPtr; Offset = BeginOffset; DWARFAbbreviationDeclaration AbbrDecl; uint32_t PrevAbbrCode = 0; while (AbbrDecl.extract(Data, OffsetPtr)) { if (FirstAbbrCode == 0) { FirstAbbrCode = AbbrDecl.getCode(); } else { if (PrevAbbrCode + 1 != AbbrDecl.getCode()) { // Codes are not consecutive, can't do O(1) lookups. FirstAbbrCode = UINT32_MAX; } } PrevAbbrCode = AbbrDecl.getCode(); Decls.push_back(std::move(AbbrDecl)); } return BeginOffset != *OffsetPtr; }