Use vec.data() instead of &vec[0]

In general `vec.data()` is always safe, whereas `&vec[0]`
may fail when `vec` is empty.
This commit is contained in:
Rangi42
2024-02-28 21:05:06 -05:00
committed by Sylvie
parent d1fa5ccd4d
commit 2ff723f943
4 changed files with 5 additions and 5 deletions

View File

@@ -557,7 +557,7 @@ void rpn_BinaryOp(enum RPNCommand op, struct Expression *expr,
len = sizeof(bytes); len = sizeof(bytes);
patchSize = sizeof(bytes); patchSize = sizeof(bytes);
} else { } else {
ptr = &(*src2->rpn)[0]; // Pointer to the right RPN ptr = src2->rpn->data(); // Pointer to the right RPN
len = src2->rpn->size(); // Size of the right RPN len = src2->rpn->size(); // Size of the right RPN
patchSize = src2->rpnPatchSize; patchSize = src2->rpnPatchSize;
} }

View File

@@ -233,7 +233,7 @@ static void readPatch(FILE *file, struct Patch *patch, char const *fileName, std
fileName, sectName.c_str(), i); fileName, sectName.c_str(), i);
patch->rpnExpression.resize(rpnSize); patch->rpnExpression.resize(rpnSize);
size_t nbElementsRead = fread(&patch->rpnExpression[0], 1, rpnSize, file); size_t nbElementsRead = fread(patch->rpnExpression.data(), 1, rpnSize, file);
if (nbElementsRead != rpnSize) if (nbElementsRead != rpnSize)
errx("%s: Cannot read \"%s\"'s patch #%" PRIu32 "'s RPN expression: %s", errx("%s: Cannot read \"%s\"'s patch #%" PRIu32 "'s RPN expression: %s",
@@ -306,7 +306,7 @@ static void readSection(FILE *file, struct Section *section, char const *fileNam
if (sect_HasData(section->type)) { if (sect_HasData(section->type)) {
if (section->size) { if (section->size) {
section->data.resize(section->size); section->data.resize(section->size);
if (size_t nbRead = fread(&section->data[0], 1, section->size, file); if (size_t nbRead = fread(section->data.data(), 1, section->size, file);
nbRead != section->size) nbRead != section->size)
errx("%s: Cannot read \"%s\"'s data: %s", fileName, section->name.c_str(), errx("%s: Cannot read \"%s\"'s data: %s", fileName, section->name.c_str(),
feof(file) ? "Unexpected end of file" : strerror(errno)); feof(file) ? "Unexpected end of file" : strerror(errno));

View File

@@ -174,7 +174,7 @@ static void writeBank(std::deque<struct Section const *> *bankSections, uint16_t
} }
// Output the section itself // Output the section itself
fwrite(&section->data[0], 1, section->size, outputFile); fwrite(section->data.data(), 1, section->size, outputFile);
if (overlayFile) { if (overlayFile) {
// Skip bytes even with pipes // Skip bytes even with pipes
for (uint16_t i = 0; i < section->size; i++) for (uint16_t i = 0; i < section->size; i++)

View File

@@ -82,7 +82,7 @@ static int32_t computeRPNExpr(struct Patch const *patch,
// Small shortcut to avoid a lot of repetition // Small shortcut to avoid a lot of repetition
#define popRPN() popRPN(patch->src, patch->lineNo) #define popRPN() popRPN(patch->src, patch->lineNo)
uint8_t const *expression = &patch->rpnExpression[0]; uint8_t const *expression = patch->rpnExpression.data();
int32_t size = (int32_t)patch->rpnExpression.size(); int32_t size = (int32_t)patch->rpnExpression.size();
rpnStack.clear(); rpnStack.clear();