Skip to content

Commit 4988816

Browse files
authored
Use zend_call_known_function() to call #[\SensitiveParameter]’s constructor (#14254)
`zend_call_method_with_1_params()` causes needless overhead, due to the capability of looking up the function by name. It’s also very rarely used (only in ext/spl). `zend_call_known_function()` is the standard methodology to call a known function and going through `Z_OBJCE_P()` avoids the repeated hardcoding of the CE name.
1 parent 596fdad commit 4988816

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

Zend/zend_builtin_functions.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,7 +1650,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16501650
if (is_sensitive) {
16511651
zval redacted_arg;
16521652
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
1653-
zend_call_method_with_1_params(Z_OBJ_P(&redacted_arg), zend_ce_sensitive_parameter_value, &zend_ce_sensitive_parameter_value->constructor, "__construct", NULL, &original_arg);
1653+
zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
16541654
ZEND_HASH_FILL_SET(&redacted_arg);
16551655
} else {
16561656
Z_TRY_ADDREF_P(&original_arg);
@@ -1682,7 +1682,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16821682
if (is_sensitive) {
16831683
zval redacted_arg;
16841684
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
1685-
zend_call_method_with_1_params(Z_OBJ_P(&redacted_arg), zend_ce_sensitive_parameter_value, &zend_ce_sensitive_parameter_value->constructor, "__construct", NULL, &original_arg);
1685+
zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
16861686
ZEND_HASH_FILL_SET(&redacted_arg);
16871687
} else {
16881688
Z_TRY_ADDREF_P(&original_arg);
@@ -1722,7 +1722,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
17221722
if (is_sensitive) {
17231723
zval redacted_arg;
17241724
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
1725-
zend_call_method_with_1_params(Z_OBJ_P(&redacted_arg), zend_ce_sensitive_parameter_value, &zend_ce_sensitive_parameter_value->constructor, "__construct", NULL, &original_arg);
1725+
zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
17261726
ZEND_HASH_FILL_SET(&redacted_arg);
17271727
} else {
17281728
Z_TRY_ADDREF_P(&original_arg);

0 commit comments

Comments
 (0)