Skip to content

Commit fcb568f

Browse files
committed
uri: Eliminate php_uri_get_property() entirely
Spelling out the effective implementation explicitly is not much longer than going through `php_uri_get_property()`, but much more explicit in what is happening.
1 parent dbd7186 commit fcb568f

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

ext/uri/php_uri.c

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -124,51 +124,44 @@ ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t *php_uri_parse(const php_uri_parser
124124
return internal_uri;
125125
}
126126

127-
ZEND_ATTRIBUTE_NONNULL static inline zend_result php_uri_get_property(const uri_internal_t *internal_uri, php_uri_property_name property_name, php_uri_component_read_mode read_mode, zval *zv)
128-
{
129-
const php_uri_property_handler *property_handler = php_uri_parser_property_handler_by_name(internal_uri->parser, property_name);
130-
131-
return property_handler->read(internal_uri->uri, read_mode, zv);
132-
}
133-
134127
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)
135128
{
136-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_SCHEME, read_mode, zv);
129+
return internal_uri->parser->property_handler.scheme.read(internal_uri->uri, read_mode, zv);
137130
}
138131

139132
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_username(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
140133
{
141-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_USERNAME, read_mode, zv);
134+
return internal_uri->parser->property_handler.username.read(internal_uri->uri, read_mode, zv);
142135
}
143136

144137
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_password(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
145138
{
146-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_PASSWORD, read_mode, zv);
139+
return internal_uri->parser->property_handler.password.read(internal_uri->uri, read_mode, zv);
147140
}
148141

149142
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_host(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
150143
{
151-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_HOST, read_mode, zv);
144+
return internal_uri->parser->property_handler.host.read(internal_uri->uri, read_mode, zv);
152145
}
153146

154147
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_port(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
155148
{
156-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_PORT, read_mode, zv);
149+
return internal_uri->parser->property_handler.port.read(internal_uri->uri, read_mode, zv);
157150
}
158151

159152
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_path(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
160153
{
161-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_PATH, read_mode, zv);
154+
return internal_uri->parser->property_handler.path.read(internal_uri->uri, read_mode, zv);
162155
}
163156

164157
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_query(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
165158
{
166-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_QUERY, read_mode, zv);
159+
return internal_uri->parser->property_handler.query.read(internal_uri->uri, read_mode, zv);
167160
}
168161

169162
ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_fragment(const uri_internal_t *internal_uri, php_uri_component_read_mode read_mode, zval *zv)
170163
{
171-
return php_uri_get_property(internal_uri, PHP_URI_PROPERTY_NAME_FRAGMENT, read_mode, zv);
164+
return internal_uri->parser->property_handler.fragment.read(internal_uri->uri, read_mode, zv);
172165
}
173166

174167
ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_free(uri_internal_t *internal_uri)

0 commit comments

Comments
 (0)