mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-22 11:12:07 +00:00
Fix BANK(@) outside sections causing crashes
This commit is contained in:
@@ -143,7 +143,10 @@ void rpn_BankSelf(struct Expression *expr)
|
||||
{
|
||||
rpn_Init(expr);
|
||||
|
||||
if (pCurrentSection->nBank == -1) {
|
||||
if (!pCurrentSection) {
|
||||
yyerror("PC has no bank outside a section");
|
||||
expr->nVal = 1;
|
||||
} else if (pCurrentSection->nBank == -1) {
|
||||
makeUnknown(expr, "Current section's bank is not known");
|
||||
expr->nRPNPatchSize++;
|
||||
*reserveSpace(expr, 1) = RPN_BANK_SELF;
|
||||
|
||||
@@ -282,7 +282,12 @@ static int32_t computeRPNExpr(struct Patch const *patch,
|
||||
break;
|
||||
|
||||
case RPN_BANK_SELF:
|
||||
value = patch->pcSection->bank;
|
||||
if (!patch->pcSection) {
|
||||
error("%s: PC has no bank outside a section");
|
||||
value = 1;
|
||||
} else {
|
||||
value = patch->pcSection->bank;
|
||||
}
|
||||
break;
|
||||
|
||||
case RPN_HRAM:
|
||||
|
||||
Reference in New Issue
Block a user