42 if (spec.find(
'=') == std::string::npos) {
48 while (
pos <= spec.size()) {
49 auto end = spec.find(
';',
pos);
50 auto entry = spec.substr(
pos,
end == std::string::npos ? std::string::npos :
end -
pos);
51 pos = (
end == std::string::npos) ? spec.size() + 1 :
end + 1;
55 auto eq =
entry.find(
'=');
56 if (eq == std::string::npos) {
61 auto bounds =
entry.substr(0, eq);
62 auto dash = bounds.find(
'-');
63 if (dash == std::string::npos) {
64 LOGP(fatal, R
"(Malformed CCDB path mapping "{}": expected "lo-hi=path")", entry);
66 auto loStr = bounds.substr(0, dash);
67 auto hiStr = bounds.substr(dash + 1);
68 table.
ranges.push_back({loStr.empty() ? std::numeric_limits<int64_t>::min() : std::stoll(loStr),
69 hiStr.empty() ? std::numeric_limits<int64_t>::max() : std::stoll(hiStr),
70 entry.substr(eq + 1)});