@@ -540,15 +540,20 @@ static zend_always_inline size_t php_url_encode_impl(unsigned char *to, const ch
540
540
}
541
541
/* }}} */
542
542
543
- /* {{{ php_url_encode */
544
- PHPAPI zend_string * php_url_encode (char const * s , size_t len )
543
+ static zend_always_inline zend_string * php_url_encode_helper (char const * s , size_t len , bool raw )
545
544
{
546
545
zend_string * result = zend_string_safe_alloc (3 , len , 0 , false);
547
- size_t length = php_url_encode_impl ((unsigned char * ) ZSTR_VAL (result ), s , len , false );
546
+ size_t length = php_url_encode_impl ((unsigned char * ) ZSTR_VAL (result ), s , len , raw );
548
547
ZSTR_VAL (result )[length ] = '\0' ;
549
548
ZEND_ASSERT (!ZSTR_IS_INTERNED (result ) && GC_REFCOUNT (result ) == 1 );
550
549
return zend_string_truncate (result , length , false);
551
550
}
551
+
552
+ /* {{{ php_url_encode */
553
+ PHPAPI zend_string * php_url_encode (char const * s , size_t len )
554
+ {
555
+ return php_url_encode_helper (s , len , false);
556
+ }
552
557
/* }}} */
553
558
554
559
/* {{{ URL-encodes string */
@@ -614,11 +619,7 @@ PHPAPI size_t php_url_decode(char *str, size_t len)
614
619
/* {{{ php_raw_url_encode */
615
620
PHPAPI zend_string * php_raw_url_encode (char const * s , size_t len )
616
621
{
617
- zend_string * result = zend_string_safe_alloc (3 , len , 0 , false);
618
- size_t length = php_url_encode_impl ((unsigned char * ) ZSTR_VAL (result ), s , len , true);
619
- ZSTR_VAL (result )[length ] = '\0' ;
620
- ZEND_ASSERT (!ZSTR_IS_INTERNED (result ) && GC_REFCOUNT (result ) == 1 );
621
- return zend_string_truncate (result , length , false);
622
+ return php_url_encode_helper (s , len , true);
622
623
}
623
624
/* }}} */
624
625
0 commit comments