Skip to content

Commit 1f9a6e0

Browse files
committed
Fix warnings found from gcc-analyzer and clang-analyzer
1 parent 6602b58 commit 1f9a6e0

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/util/yp_string.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@ yp_string_ensure_owned(yp_string_t *string) {
6969
size_t length = yp_string_length(string);
7070
const char *source = yp_string_source(string);
7171

72-
yp_string_owned_init(string, malloc(length), length);
72+
char *memory = malloc(length);
73+
if (!memory) return;
74+
75+
yp_string_owned_init(string, memory, length);
7376
memcpy(string->source, source, length);
7477
}
7578

src/yarp.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -505,10 +505,15 @@ yp_statements_node_body_append(yp_statements_node_t *node, yp_node_t *statement)
505505
// implement our own arena allocation.
506506
static inline void *
507507
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;
509514
}
510515

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))
512517

513518
// Allocate a new MissingNode node.
514519
static yp_missing_node_t *
@@ -12277,7 +12282,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
1227712282
node = parse_target(parser, node, &operator, NULL);
1227812283

1227912284
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);
1228112286
}
1228212287
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
1228312288
parser_lex(parser);
@@ -12382,7 +12387,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
1238212387
node = parse_target(parser, node, &operator, NULL);
1238312388

1238412389
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);
1238612391
}
1238712392
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
1238812393
parser_lex(parser);
@@ -12496,7 +12501,7 @@ parse_expression_infix(yp_parser_t *parser, yp_node_t *node, yp_binding_power_t
1249612501

1249712502
parser_lex(parser);
1249812503
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);
1250012505
}
1250112506
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
1250212507
parser_lex(parser);

0 commit comments

Comments
 (0)