Basic string comparison functions still use old parameter parsing API

From: Date: Wed, 07 Jun 2017 17:15:01 +0000
Subject: Basic string comparison functions still use old parameter parsing API
Groups: php.internals 
Request: Send a blank email to internals+get-99436@lists.php.net to get a copy of this message
Hi Dmitry, I just noticed that all basic string comparison functions in Zend/zend_builtin_functions.c, especially "strcmp", "strncmp", "strcasecmp", "strncasecmp" still use the old and inefficient parameter parsing API, unlike similar functions in ext/standard/string.c such as "substr_compare", "strtok", "str(i)str", "str(i)pos", "strr(i)pos", "strrchr" that already consistently use the new efficient macro-based API. I think one can consider "str(n)cmp" and "str(n)casecmp", etc. at least as important as "substr_compare", especially considering that these are wrappers around very basic functions that often get called in very hot code or inside tight loops (e..g. sorting). I therefore recommend changing those 4 functions in Zend/zend_builtin_functions.c to use ZEND_PARSE_PARAMETERS_* macros for PHP 7.2. What do you think? -- Benjamin Coutu ZeyOS, Inc.

« previous php.internals (#99436) next »