mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(§ion->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));
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ static void writeBank(std::deque<struct Section const *> *bankSections, uint16_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Output the section itself
|
// Output the section itself
|
||||||
fwrite(§ion->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++)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user