mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Avoid double copying and string length recalculation
This commit is contained in:
parent
a98eb1ec2c
commit
4d75504d4f
5 changed files with 17 additions and 29 deletions
|
@ -111,7 +111,6 @@ PHP_NAMED_FUNCTION(php_if_md5)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char md5str[33];
|
||||
PHP_MD5_CTX context;
|
||||
unsigned char digest[16];
|
||||
|
||||
|
@ -119,15 +118,14 @@ PHP_NAMED_FUNCTION(php_if_md5)
|
|||
return;
|
||||
}
|
||||
|
||||
md5str[0] = '\0';
|
||||
PHP_MD5Init(&context);
|
||||
PHP_MD5Update(&context, arg, arg_len);
|
||||
PHP_MD5Final(digest, &context);
|
||||
if (raw_output) {
|
||||
RETURN_STRINGL(digest, 16);
|
||||
} else {
|
||||
make_digest(md5str, digest);
|
||||
RETVAL_STRING(md5str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(32, 0));
|
||||
make_digest(Z_STRVAL_P(return_value), digest);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -140,7 +138,6 @@ PHP_NAMED_FUNCTION(php_if_md5_file)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char md5str[33];
|
||||
unsigned char buf[1024];
|
||||
unsigned char digest[16];
|
||||
PHP_MD5_CTX context;
|
||||
|
@ -173,8 +170,8 @@ PHP_NAMED_FUNCTION(php_if_md5_file)
|
|||
if (raw_output) {
|
||||
RETURN_STRINGL(digest, 16);
|
||||
} else {
|
||||
make_digest(md5str, digest);
|
||||
RETVAL_STRING(md5str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(32, 0));
|
||||
make_digest(Z_STRVAL_P(return_value), digest);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -92,7 +92,6 @@ PHP_FUNCTION(sha1)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char sha1str[41];
|
||||
PHP_SHA1_CTX context;
|
||||
unsigned char digest[20];
|
||||
|
||||
|
@ -100,15 +99,14 @@ PHP_FUNCTION(sha1)
|
|||
return;
|
||||
}
|
||||
|
||||
sha1str[0] = '\0';
|
||||
PHP_SHA1Init(&context);
|
||||
PHP_SHA1Update(&context, arg, arg_len);
|
||||
PHP_SHA1Final(digest, &context);
|
||||
if (raw_output) {
|
||||
RETURN_STRINGL(digest, 20);
|
||||
} else {
|
||||
make_sha1_digest(sha1str, digest);
|
||||
RETVAL_STRING(sha1str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(40, 0));
|
||||
make_sha1_digest(Z_STRVAL_P(return_value), digest);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -122,7 +120,6 @@ PHP_FUNCTION(sha1_file)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char sha1str[41];
|
||||
unsigned char buf[1024];
|
||||
unsigned char digest[20];
|
||||
PHP_SHA1_CTX context;
|
||||
|
@ -155,8 +152,8 @@ PHP_FUNCTION(sha1_file)
|
|||
if (raw_output) {
|
||||
RETURN_STRINGL(digest, 20);
|
||||
} else {
|
||||
make_sha1_digest(sha1str, digest);
|
||||
RETVAL_STRING(sha1str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(40, 0));
|
||||
make_sha1_digest(Z_STRVAL_P(return_value), digest);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -76,7 +76,7 @@ PHP_FUNCTION(readlink)
|
|||
/* Append NULL to the end of the string */
|
||||
buff[ret] = '\0';
|
||||
|
||||
RETURN_STRING(buff);
|
||||
RETURN_STRINGL(buff, ret);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
|
|
@ -48,7 +48,6 @@ PHP_NAMED_FUNCTION(php_if_md5)
|
|||
{
|
||||
zend_string *arg;
|
||||
zend_bool raw_output = 0;
|
||||
char md5str[33];
|
||||
PHP_MD5_CTX context;
|
||||
unsigned char digest[16];
|
||||
|
||||
|
@ -58,15 +57,14 @@ PHP_NAMED_FUNCTION(php_if_md5)
|
|||
Z_PARAM_BOOL(raw_output)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
md5str[0] = '\0';
|
||||
PHP_MD5Init(&context);
|
||||
PHP_MD5Update(&context, ZSTR_VAL(arg), ZSTR_LEN(arg));
|
||||
PHP_MD5Final(digest, &context);
|
||||
if (raw_output) {
|
||||
RETURN_STRINGL((char *) digest, 16);
|
||||
} else {
|
||||
make_digest_ex(md5str, digest, 16);
|
||||
RETVAL_STRING(md5str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(32, 0));
|
||||
make_digest_ex(Z_STRVAL_P(return_value), digest, 16);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -79,7 +77,6 @@ PHP_NAMED_FUNCTION(php_if_md5_file)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char md5str[33];
|
||||
unsigned char buf[1024];
|
||||
unsigned char digest[16];
|
||||
PHP_MD5_CTX context;
|
||||
|
@ -118,8 +115,8 @@ PHP_NAMED_FUNCTION(php_if_md5_file)
|
|||
if (raw_output) {
|
||||
RETURN_STRINGL((char *) digest, 16);
|
||||
} else {
|
||||
make_digest_ex(md5str, digest, 16);
|
||||
RETVAL_STRING(md5str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(32, 0));
|
||||
make_digest_ex(Z_STRVAL_P(return_value), digest, 16);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -36,7 +36,6 @@ PHP_FUNCTION(sha1)
|
|||
{
|
||||
zend_string *arg;
|
||||
zend_bool raw_output = 0;
|
||||
char sha1str[41];
|
||||
PHP_SHA1_CTX context;
|
||||
unsigned char digest[20];
|
||||
|
||||
|
@ -46,15 +45,14 @@ PHP_FUNCTION(sha1)
|
|||
Z_PARAM_BOOL(raw_output)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
sha1str[0] = '\0';
|
||||
PHP_SHA1Init(&context);
|
||||
PHP_SHA1Update(&context, (unsigned char *) ZSTR_VAL(arg), ZSTR_LEN(arg));
|
||||
PHP_SHA1Final(digest, &context);
|
||||
if (raw_output) {
|
||||
RETURN_STRINGL((char *) digest, 20);
|
||||
} else {
|
||||
make_digest_ex(sha1str, digest, 20);
|
||||
RETVAL_STRING(sha1str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(40, 0));
|
||||
make_digest_ex(Z_STRVAL_P(return_value), digest, 20);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -69,7 +67,6 @@ PHP_FUNCTION(sha1_file)
|
|||
char *arg;
|
||||
size_t arg_len;
|
||||
zend_bool raw_output = 0;
|
||||
char sha1str[41];
|
||||
unsigned char buf[1024];
|
||||
unsigned char digest[20];
|
||||
PHP_SHA1_CTX context;
|
||||
|
@ -100,8 +97,8 @@ PHP_FUNCTION(sha1_file)
|
|||
if (raw_output) {
|
||||
RETURN_STRINGL((char *) digest, 20);
|
||||
} else {
|
||||
make_digest_ex(sha1str, digest, 20);
|
||||
RETVAL_STRING(sha1str);
|
||||
RETVAL_NEW_STR(zend_string_alloc(40, 0));
|
||||
make_digest_ex(Z_STRVAL_P(return_value), digest, 20);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue