Skip to content

Commit 5471f3d

Browse files
authored
Don't open-code string value accesses in xpath (#15007)
1 parent efe4e6d commit 5471f3d

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

ext/dom/xpath.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -486,22 +486,22 @@ PHP_METHOD(DOMXPath, quote) {
486486
}
487487
if (memchr(input, '\'', input_len) == NULL) {
488488
zend_string *const output = zend_string_safe_alloc(1, input_len, 2, false);
489-
output->val[0] = '\'';
490-
memcpy(output->val + 1, input, input_len);
491-
output->val[input_len + 1] = '\'';
492-
output->val[input_len + 2] = '\0';
489+
ZSTR_VAL(output)[0] = '\'';
490+
memcpy(ZSTR_VAL(output) + 1, input, input_len);
491+
ZSTR_VAL(output)[input_len + 1] = '\'';
492+
ZSTR_VAL(output)[input_len + 2] = '\0';
493493
RETURN_STR(output);
494494
} else if (memchr(input, '"', input_len) == NULL) {
495495
zend_string *const output = zend_string_safe_alloc(1, input_len, 2, false);
496-
output->val[0] = '"';
497-
memcpy(output->val + 1, input, input_len);
498-
output->val[input_len + 1] = '"';
499-
output->val[input_len + 2] = '\0';
496+
ZSTR_VAL(output)[0] = '"';
497+
memcpy(ZSTR_VAL(output) + 1, input, input_len);
498+
ZSTR_VAL(output)[input_len + 1] = '"';
499+
ZSTR_VAL(output)[input_len + 2] = '\0';
500500
RETURN_STR(output);
501501
} else {
502502
smart_str output = {0};
503503
// need to use the concat() trick published by Robert Rossney at https://stackoverflow.com/a/1352556/1067003
504-
smart_str_appendl(&output, "concat(", 7);
504+
smart_str_appendl(&output, ZEND_STRL("concat("));
505505
const char *ptr = input;
506506
const char *const end = input + input_len;
507507
while (ptr < end) {
@@ -518,7 +518,7 @@ PHP_METHOD(DOMXPath, quote) {
518518
smart_str_appendc(&output, ',');
519519
}
520520
ZEND_ASSERT(ptr == end);
521-
output.s->val[output.s->len - 1] = ')';
521+
ZSTR_VAL(output.s)[output.s->len - 1] = ')';
522522
RETURN_STR(smart_str_extract(&output));
523523
}
524524
}

0 commit comments

Comments
 (0)