@@ -505,10 +505,15 @@ yp_statements_node_body_append(yp_statements_node_t *node, yp_node_t *statement)
505
505
// implement our own arena allocation.
506
506
static inline void *
507
507
yp_alloc_node(YP_ATTRIBUTE_UNUSED yp_parser_t *parser, size_t size) {
508
- return malloc(size);
508
+ void *memory = malloc(size);
509
+ if (memory == NULL) {
510
+ fprintf(stderr, "Failed to allocate %zu bytes\n", size);
511
+ abort();
512
+ }
513
+ return memory;
509
514
}
510
515
511
- #define YP_ALLOC_NODE(parser, type) (type *) yp_alloc_node(parser, sizeof(type)); if (node == NULL) return NULL
516
+ #define YP_ALLOC_NODE(parser, type) (type *) yp_alloc_node(parser, sizeof(type))
512
517
513
518
// Allocate a new MissingNode node.
514
519
static yp_missing_node_t *
@@ -12277,7 +12282,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
12277
12282
node = parse_target(parser, node, &operator, NULL);
12278
12283
12279
12284
yp_node_t *value = parse_expression(parser, binding_power, "Expected a value after &&=");
12280
- return (yp_node_t *) yp_call_operator_and_write_node_create(parser, call_node , &token, value);
12285
+ return (yp_node_t *) yp_call_operator_and_write_node_create(parser, (yp_call_node_t *) node , &token, value);
12281
12286
}
12282
12287
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
12283
12288
parser_lex(parser);
@@ -12382,7 +12387,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
12382
12387
node = parse_target(parser, node, &operator, NULL);
12383
12388
12384
12389
yp_node_t *value = parse_expression(parser, binding_power, "Expected a value after ||=");
12385
- return (yp_node_t *) yp_call_operator_or_write_node_create(parser, call_node , &token, value);
12390
+ return (yp_node_t *) yp_call_operator_or_write_node_create(parser, (yp_call_node_t *) node , &token, value);
12386
12391
}
12387
12392
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
12388
12393
parser_lex(parser);
@@ -12496,7 +12501,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
12496
12501
12497
12502
parser_lex(parser);
12498
12503
yp_node_t *value = parse_expression(parser, binding_power, "Expected a value after the operator.");
12499
- return (yp_node_t *) yp_call_operator_write_node_create(parser, call_node , &token, value);
12504
+ return (yp_node_t *) yp_call_operator_write_node_create(parser, (yp_call_node_t *) node , &token, value);
12500
12505
}
12501
12506
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
12502
12507
parser_lex(parser);
0 commit comments