@@ -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 );
@@ -111,7 +116,7 @@ ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read(const ur
111
116
{
112
117
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
113
118
114
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
119
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
115
120
ZVAL_STRINGL (retval , uriparser_uri -> userInfo .first , get_text_range_length (& uriparser_uri -> userInfo ));
116
121
} else {
117
122
ZVAL_NULL (retval );
@@ -124,7 +129,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read(c
124
129
{
125
130
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
126
131
127
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
132
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
128
133
size_t length = get_text_range_length (& uriparser_uri -> userInfo );
129
134
const char * c = memchr (uriparser_uri -> userInfo .first , ':' , length );
130
135
@@ -146,7 +151,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read(c
146
151
{
147
152
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
148
153
149
- if (uriparser_uri -> userInfo . first != NULL && uriparser_uri -> userInfo . afterLast != NULL ) {
154
+ if (has_text_range ( & uriparser_uri -> userInfo ) ) {
150
155
const char * c = memchr (uriparser_uri -> userInfo .first , ':' , get_text_range_length (& uriparser_uri -> userInfo ));
151
156
152
157
if (c != NULL && uriparser_uri -> userInfo .afterLast - c - 1 > 0 ) {
@@ -165,7 +170,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read(const
165
170
{
166
171
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
167
172
168
- if (uriparser_uri -> hostText . first != NULL && uriparser_uri -> hostText . afterLast != NULL ) {
173
+ if (has_text_range ( & uriparser_uri -> hostText ) ) {
169
174
if (uriparser_uri -> hostData .ip6 != NULL || uriparser_uri -> hostData .ipFuture .first != NULL ) {
170
175
/* the textual representation of the host is always accessible in the .hostText field no matter what the host is */
171
176
smart_str host_str = {0 };
@@ -200,7 +205,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read(const
200
205
{
201
206
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
202
207
203
- if (uriparser_uri -> portText . first != NULL && uriparser_uri -> portText . afterLast != NULL ) {
208
+ if (has_text_range ( & uriparser_uri -> portText ) ) {
204
209
ZVAL_LONG (retval , str_to_int (uriparser_uri -> portText .first , get_text_range_length (& uriparser_uri -> portText )));
205
210
} else {
206
211
ZVAL_NULL (retval );
@@ -241,7 +246,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read(cons
241
246
{
242
247
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
243
248
244
- if (uriparser_uri -> query . first != NULL && uriparser_uri -> query . afterLast != NULL ) {
249
+ if (has_text_range ( & uriparser_uri -> query ) ) {
245
250
ZVAL_STRINGL (retval , uriparser_uri -> query .first , get_text_range_length (& uriparser_uri -> query ));
246
251
} else {
247
252
ZVAL_NULL (retval );
@@ -254,7 +259,7 @@ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read(c
254
259
{
255
260
const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
256
261
257
- if (uriparser_uri -> fragment . first != NULL && uriparser_uri -> fragment . afterLast != NULL ) {
262
+ if (has_text_range ( & uriparser_uri -> fragment ) ) {
258
263
ZVAL_STRINGL (retval , uriparser_uri -> fragment .first , get_text_range_length (& uriparser_uri -> fragment ));
259
264
} else {
260
265
ZVAL_NULL (retval );
0 commit comments