mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
uri: Do not pass uri_internal_t to property handlers (#19805)
* uri: Do not pass `uri_internal_t` to property handlers Within an individual property handler, the `parser` is already implicitly known, which just leaves the `->uri` field which must contain the entire state necessary for the handlers to work with. Pass the `->uri` directly. It avoids one pointer indirection, since the handlers do not need to follow the pointer to the `uri_internal_t` just to follow the pointer to the URI state. Instead the URI pointer can directly be passed using a register with the dereferences (if necessary) happening in the caller, providing more insight for the compiler to work with. It also makes it more convenient to use the handlers directly for code that already knows that it needs a specific URI parser, since no `uri_internal_t` needs to be constructed to store the already-known information about which parser to use. * uri: Use local variable for the URI in `uri_get_debug_properties()` This makes the code a little less verbose.
This commit is contained in:
@@ -58,42 +58,43 @@ static HashTable *uri_get_debug_properties(zend_object *object)
|
||||
HashTable *std_properties = zend_std_get_properties(object);
|
||||
HashTable *result = zend_array_dup(std_properties);
|
||||
|
||||
if (UNEXPECTED(internal_uri->uri == NULL)) {
|
||||
const php_uri_parser * const parser = internal_uri->parser;
|
||||
void * const uri = internal_uri->uri;
|
||||
|
||||
if (UNEXPECTED(uri == NULL)) {
|
||||
return result;
|
||||
}
|
||||
|
||||
const php_uri_parser *parser = internal_uri->parser;
|
||||
|
||||
zval tmp;
|
||||
if (parser->property_handler.scheme.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.scheme.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_SCHEME), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.username.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.username.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_USERNAME), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.password.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.password.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_PASSWORD), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.host.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.host.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_HOST), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.port.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.port.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_PORT), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.path.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.path.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_PATH), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.query.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.query.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_QUERY), &tmp);
|
||||
}
|
||||
|
||||
if (parser->property_handler.fragment.read(internal_uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
if (parser->property_handler.fragment.read(uri, PHP_URI_COMPONENT_READ_MODE_RAW, &tmp) == SUCCESS) {
|
||||
zend_hash_update(result, ZSTR_KNOWN(ZEND_STR_FRAGMENT), &tmp);
|
||||
}
|
||||
|
||||
@@ -130,7 +131,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_get_property(const uri_interna
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
return property_handler->read(internal_uri, read_mode, zv);
|
||||
return property_handler->read(internal_uri->uri, read_mode, zv);
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_scheme(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
|
||||
@@ -536,7 +537,7 @@ static void rfc3986_userinfo_read(INTERNAL_FUNCTION_PARAMETERS, php_uri_componen
|
||||
uri_internal_t *internal_uri = Z_URI_INTERNAL_P(ZEND_THIS);
|
||||
URI_ASSERT_INITIALIZATION(internal_uri);
|
||||
|
||||
if (UNEXPECTED(php_uri_parser_rfc3986_userinfo_read(internal_uri, read_mode, return_value) == FAILURE)) {
|
||||
if (UNEXPECTED(php_uri_parser_rfc3986_userinfo_read(internal_uri->uri, read_mode, return_value) == FAILURE)) {
|
||||
zend_throw_error(NULL, "The userinfo component cannot be retrieved");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
@@ -583,7 +584,7 @@ PHP_METHOD(Uri_Rfc3986_Uri, withUserInfo)
|
||||
uri_internal_t *new_internal_uri = uri_internal_from_obj(new_object);
|
||||
URI_ASSERT_INITIALIZATION(new_internal_uri);
|
||||
|
||||
if (UNEXPECTED(php_uri_parser_rfc3986_userinfo_write(new_internal_uri, &zv, NULL) == FAILURE)) {
|
||||
if (UNEXPECTED(php_uri_parser_rfc3986_userinfo_write(new_internal_uri->uri, &zv, NULL) == FAILURE)) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ void uri_read_component(INTERNAL_FUNCTION_PARAMETERS, php_uri_property_name prop
|
||||
const php_uri_property_handler *property_handler = uri_property_handler_from_internal_uri(internal_uri, property_name);
|
||||
ZEND_ASSERT(property_handler != NULL);
|
||||
|
||||
if (UNEXPECTED(property_handler->read(internal_uri, component_read_mode, return_value) == FAILURE)) {
|
||||
if (UNEXPECTED(property_handler->read(internal_uri->uri, component_read_mode, return_value) == FAILURE)) {
|
||||
zend_throw_error(NULL, "The %s component cannot be retrieved", ZSTR_VAL(get_known_string_by_property_name(property_name)));
|
||||
RETURN_THROWS();
|
||||
}
|
||||
@@ -109,7 +109,7 @@ static void uri_write_component_ex(INTERNAL_FUNCTION_PARAMETERS, php_uri_propert
|
||||
|
||||
zval errors;
|
||||
ZVAL_UNDEF(&errors);
|
||||
if (UNEXPECTED(property_handler->write(new_internal_uri, property_zv, &errors) == FAILURE)) {
|
||||
if (UNEXPECTED(property_handler->write(new_internal_uri->uri, property_zv, &errors) == FAILURE)) {
|
||||
zval_ptr_dtor(&errors);
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
@@ -41,11 +41,9 @@ typedef enum php_uri_component_read_mode {
|
||||
PHP_URI_COMPONENT_READ_MODE_NORMALIZED_UNICODE,
|
||||
} php_uri_component_read_mode;
|
||||
|
||||
struct uri_internal_t;
|
||||
typedef zend_result (*php_uri_property_handler_read)(void *uri, php_uri_component_read_mode read_mode, zval *retval);
|
||||
|
||||
typedef zend_result (*php_uri_property_handler_read)(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval);
|
||||
|
||||
typedef zend_result (*php_uri_property_handler_write)(struct uri_internal_t *internal_uri, zval *value, zval *errors);
|
||||
typedef zend_result (*php_uri_property_handler_write)(void *uri, zval *value, zval *errors);
|
||||
|
||||
typedef enum php_uri_property_name {
|
||||
PHP_URI_PROPERTY_NAME_SCHEME,
|
||||
|
||||
@@ -38,9 +38,9 @@ static zend_string *decode_component(zend_string *in, php_uri_component_read_mod
|
||||
}
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_scheme_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_scheme_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->scheme) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->scheme, read_mode));
|
||||
@@ -51,9 +51,9 @@ static zend_result uri_parser_php_parse_url_scheme_read(const uri_internal_t *in
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_username_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_username_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->user) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->user, read_mode));
|
||||
@@ -64,9 +64,9 @@ static zend_result uri_parser_php_parse_url_username_read(const uri_internal_t *
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_password_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_password_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->pass) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->pass, read_mode));
|
||||
@@ -77,9 +77,9 @@ static zend_result uri_parser_php_parse_url_password_read(const uri_internal_t *
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_host_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_host_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->host) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->host, read_mode));
|
||||
@@ -90,9 +90,9 @@ static zend_result uri_parser_php_parse_url_host_read(const uri_internal_t *inte
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_port_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_port_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->port) {
|
||||
ZVAL_LONG(retval, parse_url_uri->port);
|
||||
@@ -103,9 +103,9 @@ static zend_result uri_parser_php_parse_url_port_read(const uri_internal_t *inte
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_path_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_path_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->path) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->path, read_mode));
|
||||
@@ -116,9 +116,9 @@ static zend_result uri_parser_php_parse_url_path_read(const uri_internal_t *inte
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_query_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_query_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->query) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->query, read_mode));
|
||||
@@ -129,9 +129,9 @@ static zend_result uri_parser_php_parse_url_query_read(const uri_internal_t *int
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result uri_parser_php_parse_url_fragment_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result uri_parser_php_parse_url_fragment_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const php_url *parse_url_uri = internal_uri->uri;
|
||||
const php_url *parse_url_uri = uri;
|
||||
|
||||
if (parse_url_uri->fragment) {
|
||||
ZVAL_STR(retval, decode_component(parse_url_uri->fragment, read_mode));
|
||||
|
||||
@@ -99,16 +99,14 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *get_uri_for_reading(php_uri_parser_rfc398
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static UriUriA *get_uri_for_writing(uri_internal_t *internal_uri)
|
||||
ZEND_ATTRIBUTE_NONNULL static UriUriA *get_uri_for_writing(php_uri_parser_rfc3986_uris *uriparser_uris)
|
||||
{
|
||||
php_uri_parser_rfc3986_uris *uriparser_uris = internal_uri->uri;
|
||||
|
||||
return &uriparser_uris->uri;
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->scheme)) {
|
||||
ZVAL_STRINGL(retval, uriparser_uri->scheme.first, get_text_range_length(&uriparser_uri->scheme));
|
||||
@@ -119,9 +117,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read(con
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_scheme_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_scheme_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
@@ -143,9 +141,9 @@ static zend_result php_uri_parser_rfc3986_scheme_write(struct uri_internal_t *in
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->userInfo)) {
|
||||
ZVAL_STRINGL(retval, uriparser_uri->userInfo.first, get_text_range_length(&uriparser_uri->userInfo));
|
||||
@@ -156,9 +154,9 @@ ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read(const ur
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
zend_result php_uri_parser_rfc3986_userinfo_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
zend_result php_uri_parser_rfc3986_userinfo_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
@@ -183,9 +181,9 @@ zend_result php_uri_parser_rfc3986_userinfo_write(struct uri_internal_t *interna
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->userInfo)) {
|
||||
size_t length = get_text_range_length(&uriparser_uri->userInfo);
|
||||
@@ -205,9 +203,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read(c
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->userInfo)) {
|
||||
const char *c = memchr(uriparser_uri->userInfo.first, ':', get_text_range_length(&uriparser_uri->userInfo));
|
||||
@@ -224,9 +222,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read(c
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->hostText)) {
|
||||
if (uriparser_uri->hostData.ip6 != NULL || uriparser_uri->hostData.ipFuture.first != NULL) {
|
||||
@@ -248,9 +246,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read(const
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_host_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_host_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
@@ -296,9 +294,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_long port_str_to_zend_long_checked(const char
|
||||
return (zend_long)result;
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->portText) && get_text_range_length(&uriparser_uri->portText) > 0) {
|
||||
ZVAL_LONG(retval, port_str_to_zend_long_checked(uriparser_uri->portText.first, get_text_range_length(&uriparser_uri->portText)));
|
||||
@@ -309,9 +307,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read(const
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_port_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_port_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
@@ -338,9 +336,9 @@ static zend_result php_uri_parser_rfc3986_port_write(struct uri_internal_t *inte
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (uriparser_uri->pathHead != NULL) {
|
||||
smart_str str = {0};
|
||||
@@ -366,9 +364,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read(const
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_path_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_path_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_STRLEN_P(value) == 0) {
|
||||
@@ -390,9 +388,9 @@ static zend_result php_uri_parser_rfc3986_path_write(struct uri_internal_t *inte
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->query)) {
|
||||
ZVAL_STRINGL(retval, uriparser_uri->query.first, get_text_range_length(&uriparser_uri->query));
|
||||
@@ -403,9 +401,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read(cons
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_query_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_query_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
@@ -427,9 +425,9 @@ static zend_result php_uri_parser_rfc3986_query_write(struct uri_internal_t *int
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(internal_uri->uri, read_mode);
|
||||
const UriUriA *uriparser_uri = get_uri_for_reading(uri, read_mode);
|
||||
|
||||
if (has_text_range(&uriparser_uri->fragment)) {
|
||||
ZVAL_STRINGL(retval, uriparser_uri->fragment.first, get_text_range_length(&uriparser_uri->fragment));
|
||||
@@ -440,9 +438,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read(c
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_rfc3986_fragment_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_rfc3986_fragment_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(internal_uri);
|
||||
UriUriA *uriparser_uri = get_uri_for_writing(uri);
|
||||
int result;
|
||||
|
||||
if (Z_TYPE_P(value) == IS_NULL) {
|
||||
|
||||
@@ -28,8 +28,8 @@ typedef struct php_uri_parser_rfc3986_uris {
|
||||
bool normalized_uri_initialized;
|
||||
} php_uri_parser_rfc3986_uris;
|
||||
|
||||
zend_result php_uri_parser_rfc3986_userinfo_read(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval);
|
||||
zend_result php_uri_parser_rfc3986_userinfo_write(struct uri_internal_t *internal_uri, zval *value, zval *errors);
|
||||
zend_result php_uri_parser_rfc3986_userinfo_read(void *uri, php_uri_component_read_mode read_mode, zval *retval);
|
||||
zend_result php_uri_parser_rfc3986_userinfo_write(void *uri, zval *value, zval *errors);
|
||||
|
||||
php_uri_parser_rfc3986_uris *php_uri_parser_rfc3986_parse_ex(const char *uri_str, size_t uri_str_len, const php_uri_parser_rfc3986_uris *uriparser_base_url, bool silent);
|
||||
|
||||
|
||||
@@ -247,9 +247,9 @@ static lxb_status_t serialize_to_smart_str_callback(const lxb_char_t *data, size
|
||||
return LXB_STATUS_OK;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_scheme_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_scheme_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
ZEND_ASSERT(lexbor_uri->scheme.type != LXB_URL_SCHEMEL_TYPE__UNDEF);
|
||||
|
||||
@@ -258,9 +258,9 @@ static zend_result php_uri_parser_whatwg_scheme_read(const struct uri_internal_t
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_scheme_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_scheme_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -274,9 +274,9 @@ static zend_result php_uri_parser_whatwg_scheme_write(struct uri_internal_t *int
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_username_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_username_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->username.length) {
|
||||
ZVAL_STRINGL(retval, (const char *) lexbor_uri->username.data, lexbor_uri->username.length);
|
||||
@@ -287,9 +287,9 @@ static zend_result php_uri_parser_whatwg_username_read(const struct uri_internal
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_username_write(uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_username_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -303,9 +303,9 @@ static zend_result php_uri_parser_whatwg_username_write(uri_internal_t *internal
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_password_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_password_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->password.length > 0) {
|
||||
ZVAL_STRINGL(retval, (const char *) lexbor_uri->password.data, lexbor_uri->password.length);
|
||||
@@ -316,9 +316,9 @@ static zend_result php_uri_parser_whatwg_password_read(const struct uri_internal
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_password_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_password_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -332,9 +332,9 @@ static zend_result php_uri_parser_whatwg_password_write(struct uri_internal_t *i
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_host_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_host_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->host.type == LXB_URL_HOST_TYPE_IPV4) {
|
||||
smart_str host_str = {0};
|
||||
@@ -376,9 +376,9 @@ static zend_result php_uri_parser_whatwg_host_read(const struct uri_internal_t *
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_host_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_host_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -392,9 +392,9 @@ static zend_result php_uri_parser_whatwg_host_write(struct uri_internal_t *inter
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_port_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_port_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->has_port) {
|
||||
ZVAL_LONG(retval, lexbor_uri->port);
|
||||
@@ -405,9 +405,9 @@ static zend_result php_uri_parser_whatwg_port_read(const struct uri_internal_t *
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_port_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_port_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_long_or_null_to_lexbor_str(value, &str);
|
||||
@@ -421,9 +421,9 @@ static zend_result php_uri_parser_whatwg_port_write(struct uri_internal_t *inter
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_path_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_path_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->path.str.length) {
|
||||
ZVAL_STRINGL(retval, (const char *) lexbor_uri->path.str.data, lexbor_uri->path.str.length);
|
||||
@@ -434,9 +434,9 @@ static zend_result php_uri_parser_whatwg_path_read(const struct uri_internal_t *
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_path_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_path_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -450,9 +450,9 @@ static zend_result php_uri_parser_whatwg_path_write(struct uri_internal_t *inter
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_query_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_query_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->query.length) {
|
||||
ZVAL_STRINGL(retval, (const char *) lexbor_uri->query.data, lexbor_uri->query.length);
|
||||
@@ -463,9 +463,9 @@ static zend_result php_uri_parser_whatwg_query_read(const struct uri_internal_t
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_query_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_query_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
@@ -479,9 +479,9 @@ static zend_result php_uri_parser_whatwg_query_write(struct uri_internal_t *inte
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_fragment_read(const struct uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
static zend_result php_uri_parser_whatwg_fragment_read(void *uri, php_uri_component_read_mode read_mode, zval *retval)
|
||||
{
|
||||
const lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
const lxb_url_t *lexbor_uri = uri;
|
||||
|
||||
if (lexbor_uri->fragment.length) {
|
||||
ZVAL_STRINGL(retval, (const char *) lexbor_uri->fragment.data, lexbor_uri->fragment.length);
|
||||
@@ -492,9 +492,9 @@ static zend_result php_uri_parser_whatwg_fragment_read(const struct uri_internal
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static zend_result php_uri_parser_whatwg_fragment_write(struct uri_internal_t *internal_uri, zval *value, zval *errors)
|
||||
static zend_result php_uri_parser_whatwg_fragment_write(void *uri, zval *value, zval *errors)
|
||||
{
|
||||
lxb_url_t *lexbor_uri = internal_uri->uri;
|
||||
lxb_url_t *lexbor_uri = uri;
|
||||
lexbor_str_t str = {0};
|
||||
|
||||
zval_string_or_null_to_lexbor_str(value, &str);
|
||||
|
||||
Reference in New Issue
Block a user