@@ -64,6 +64,11 @@ static inline size_t get_text_range_length(const UriTextRangeA *range)
64
64
return range -> afterLast - range -> first ;
65
65
}
66
66
67
+ static inline bool has_text_range (const UriTextRangeA * range )
68
+ {
69
+ return range -> first != NULL && range -> afterLast != NULL ;
70
+ }
71
+
67
72
ZEND_ATTRIBUTE_NONNULL static void copy_uri (UriUriA * new_uriparser_uri , const UriUriA * uriparser_uri )
68
73
{
69
74
int result = uriCopyUriMmA (new_uriparser_uri , uriparser_uri , mm );
@@ -97,11 +102,9 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *get_uri_for_reading(php_uri_parser_rfc398
97
102
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
98
103
{
99
104
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
100
- ZEND_ASSERT (uriparser_uri != NULL );
101
105
102
106
if (uriparser_uri -> scheme .first != NULL && uriparser_uri -> scheme .afterLast != NULL ) {
103
- zend_string * str = zend_string_init (uriparser_uri -> scheme .first , get_text_range_length (& uriparser_uri -> scheme ), false);
104
- ZVAL_NEW_STR (retval , str );
107
+ ZVAL_STRINGL (retval , uriparser_uri -> scheme .first , get_text_range_length (& uriparser_uri -> scheme ));
105
108
} else {
106
109
ZVAL_NULL (retval );
107
110
}
@@ -112,9 +115,8 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read(con
112
115
ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
113
116
{
114
117
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
115
- ZEND_ASSERT (uriparser_uri != NULL );
116
118
117
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
119
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
118
120
ZVAL_STRINGL (retval , uriparser_uri -> userInfo .first , get_text_range_length (& uriparser_uri -> userInfo ));
119
121
} else {
120
122
ZVAL_NULL (retval );
@@ -126,9 +128,8 @@ ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read(const ur
126
128
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
127
129
{
128
130
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
129
- ZEND_ASSERT (uriparser_uri != NULL );
130
131
131
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
132
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
132
133
size_t length = get_text_range_length (& uriparser_uri -> userInfo );
133
134
const char * c = memchr (uriparser_uri -> userInfo .first , ':' , length );
134
135
@@ -149,9 +150,8 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read(c
149
150
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
150
151
{
151
152
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
152
- ZEND_ASSERT (uriparser_uri != NULL );
153
153
154
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
154
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
155
155
const char * c = memchr (uriparser_uri -> userInfo .first , ':' , get_text_range_length (& uriparser_uri -> userInfo ));
156
156
157
157
if (c != NULL && uriparser_uri -> userInfo .afterLast - c - 1 > 0 ) {
@@ -169,9 +169,8 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read(c
169
169
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
170
170
{
171
171
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
172
- ZEND_ASSERT (uriparser_uri != NULL );
173
172
174
- if (uriparser_uri -> hostText . first != NULL && uriparser_uri -> hostText . afterLast != NULL ) {
173
+ if (has_text_range ( & uriparser_uri -> hostText ) ) {
175
174
if (uriparser_uri -> hostData .ip6 != NULL || uriparser_uri -> hostData .ipFuture .first != NULL ) {
176
175
/* the textual representation of the host is always accessible in the .hostText field no matter what the host is */
177
176
smart_str host_str = {0 };
@@ -205,9 +204,8 @@ ZEND_ATTRIBUTE_NONNULL static size_t str_to_int(const char *str, size_t len)
205
204
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
206
205
{
207
206
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
208
- ZEND_ASSERT (uriparser_uri != NULL );
209
207
210
- if (uriparser_uri -> portText . first != NULL && uriparser_uri -> portText . afterLast != NULL ) {
208
+ if (has_text_range ( & uriparser_uri -> portText ) ) {
211
209
ZVAL_LONG (retval , str_to_int (uriparser_uri -> portText .first , get_text_range_length (& uriparser_uri -> portText )));
212
210
} else {
213
211
ZVAL_NULL (retval );
@@ -219,7 +217,6 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read(const
219
217
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
220
218
{
221
219
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
222
- ZEND_ASSERT (uriparser_uri != NULL );
223
220
224
221
if (uriparser_uri -> pathHead != NULL ) {
225
222
smart_str str = {0 };
@@ -248,9 +245,8 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read(const
248
245
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
249
246
{
250
247
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
251
- ZEND_ASSERT (uriparser_uri != NULL );
252
248
253
- if (uriparser_uri -> query . first != NULL && uriparser_uri -> query . afterLast != NULL ) {
249
+ if (has_text_range ( & uriparser_uri -> query ) ) {
254
250
ZVAL_STRINGL (retval , uriparser_uri -> query .first , get_text_range_length (& uriparser_uri -> query ));
255
251
} else {
256
252
ZVAL_NULL (retval );
@@ -262,9 +258,8 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read(cons
262
258
ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
263
259
{
264
260
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
265
- ZEND_ASSERT (uriparser_uri != NULL );
266
261
267
- if (uriparser_uri -> fragment . first != NULL && uriparser_uri -> fragment . afterLast != NULL ) {
262
+ if (has_text_range ( & uriparser_uri -> fragment ) ) {
268
263
ZVAL_STRINGL (retval , uriparser_uri -> fragment .first , get_text_range_length (& uriparser_uri -> fragment ));
269
264
} else {
270
265
ZVAL_NULL (retval );
0 commit comments