Code: Select all
int someFunction() {
assert(!m_path.empty());
if (m_path.empty()) {
return global_error;
}
std::vector<unsigned char> data;
int err = OpenFile(m_path, data);
if (err != 0) {
m_path /= "/add/some/path";
err = OpenFile(m_path, data);
if (err != 0) {
return err;
}
}
uint8_t* pb = &data[0];
int cb = static_cast<int>(data.size());
uint32_t tagMask = 0;
while (cb > 0) {
uint8_t tag = *pb;
cb--;
pb++;
uint32_t length = 0;
fileReadInt(...);
if (length > static_cast<uint32_t>(cb)) {
break;
}
if (tag == 2) {
fileReadInt(...);
length = 0;
}
else if (tag == 3) {
if (...) {
assert (...);
memmove (...);
memmove (...);
}
}
else if (tag == 4) {
if (...) {
assert (...);
memmove (...);
}
}
else if (tag == 5) {
if (...) {
assert (...);
memmove (...);
}
}
else if (tag == 6) {
fileReadInt(...);
length = 0;
}
pb += length;
cb -= length;
};
if (...) {
return global_error;
}
return 0;
}