@@ -110,6 +110,7 @@ PHPAPI const php_uri_parser *php_uri_get_parser(zend_string *uri_parser_name)
110
110
return zend_hash_find_ptr (& uri_parsers , uri_parser_name );
111
111
}
112
112
113
+ <<<<<<< HEAD
113
114
ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t * php_uri_parse (const php_uri_parser * uri_parser , const char * uri_str , size_t uri_str_len , bool silent )
114
115
{
115
116
void * parsed = uri_parser -> parse (uri_str , uri_str_len , NULL , NULL , silent );
@@ -123,6 +124,42 @@ ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t *php_uri_parse(const php_uri_parser
123
124
internal_uri -> uri = parsed ;
124
125
125
126
return internal_uri ;
127
+ || || || | parent of c5c6f7b15ec (uri : Remove `php_uri_parse ()` and `php_uri_free ()`)
128
+ ZEND_ATTRIBUTE_NONNULL PHPAPI uri_internal_t * php_uri_parse (const php_uri_parser * uri_parser , const char * uri_str , size_t uri_str_len , bool silent )
129
+ {
130
+ void * parsed = uri_parser -> parse (uri_str , uri_str_len , NULL , NULL , silent );
131
+
132
+ if (parsed == NULL ) {
133
+ return NULL ;
134
+ }
135
+
136
+ uri_internal_t * internal_uri = emalloc (sizeof (* internal_uri ));
137
+ internal_uri -> parser = uri_parser ;
138
+ internal_uri -> uri = parsed ;
139
+
140
+ return internal_uri ;
141
+ }
142
+
143
+ ZEND_ATTRIBUTE_NONNULL static 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 )
144
+ {
145
+ const php_uri_property_handler * property_handler = uri_property_handler_from_internal_uri (internal_uri , property_name );
146
+ if (property_handler == NULL ) {
147
+ return FAILURE ;
148
+ }
149
+
150
+ return property_handler -> read (internal_uri , read_mode , zv );
151
+ }
152
+
153
+ = == == ==
154
+ ZEND_ATTRIBUTE_NONNULL static 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 )
155
+ {
156
+ const php_uri_property_handler * property_handler = uri_property_handler_from_internal_uri (internal_uri , property_name );
157
+ if (property_handler == NULL ) {
158
+ return FAILURE ;
159
+ }
160
+
161
+ return property_handler -> read (internal_uri , read_mode , zv );
162
+ >>>>>>> c5c6f7b15ec (uri : Remove `php_uri_parse ()` and `php_uri_free ()`)
126
163
}
127
164
128
165
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 )
@@ -165,96 +202,95 @@ ZEND_ATTRIBUTE_NONNULL PHPAPI zend_result php_uri_get_fragment(const uri_interna
165
202
return internal_uri -> parser -> property_handler .fragment .read (internal_uri -> uri , read_mode , zv );
166
203
}
167
204
168
- ZEND_ATTRIBUTE_NONNULL PHPAPI void php_uri_free (uri_internal_t * internal_uri )
169
- {
170
- internal_uri -> parser -> free (internal_uri -> uri );
171
- internal_uri -> uri = NULL ;
172
- internal_uri -> parser = NULL ;
173
- efree (internal_uri );
174
- }
175
-
176
205
ZEND_ATTRIBUTE_NONNULL PHPAPI php_uri * php_uri_parse_to_struct (
177
206
const php_uri_parser * uri_parser , const char * uri_str , size_t uri_str_len , php_uri_component_read_mode read_mode , bool silent
178
207
) {
179
- uri_internal_t * uri_internal = php_uri_parse (uri_parser , uri_str , uri_str_len , silent );
180
- if (uri_internal == NULL ) {
208
+ void * parsed = uri_parser -> parse (uri_str , uri_str_len ,
209
+ /* base_url */ NULL , /* errors */ NULL , silent );
210
+ if (parsed == NULL ) {
181
211
return NULL ;
182
212
}
183
213
214
+ uri_internal_t uri_internal = {
215
+ .parser = uri_parser ,
216
+ .uri = parsed ,
217
+ };
218
+
184
219
php_uri * uri = ecalloc (1 , sizeof (* uri ));
185
220
zval tmp ;
186
221
zend_result result ;
187
222
188
- result = php_uri_get_scheme (uri_internal , read_mode , & tmp );
223
+ result = php_uri_get_scheme (& uri_internal , read_mode , & tmp );
189
224
if (result == FAILURE ) {
190
225
goto error ;
191
226
}
192
227
if (Z_TYPE (tmp ) == IS_STRING ) {
193
228
uri -> scheme = Z_STR (tmp );
194
229
}
195
230
196
- result = php_uri_get_username (uri_internal , read_mode , & tmp );
231
+ result = php_uri_get_username (& uri_internal , read_mode , & tmp );
197
232
if (result == FAILURE ) {
198
233
goto error ;
199
234
}
200
235
if (Z_TYPE (tmp ) == IS_STRING ) {
201
236
uri -> user = Z_STR (tmp );
202
237
}
203
238
204
- result = php_uri_get_password (uri_internal , read_mode , & tmp );
239
+ result = php_uri_get_password (& uri_internal , read_mode , & tmp );
205
240
if (result == FAILURE ) {
206
241
goto error ;
207
242
}
208
243
if (Z_TYPE (tmp ) == IS_STRING ) {
209
244
uri -> password = Z_STR (tmp );
210
245
}
211
246
212
- result = php_uri_get_host (uri_internal , read_mode , & tmp );
247
+ result = php_uri_get_host (& uri_internal , read_mode , & tmp );
213
248
if (result == FAILURE ) {
214
249
goto error ;
215
250
}
216
251
if (Z_TYPE (tmp ) == IS_STRING ) {
217
252
uri -> host = Z_STR (tmp );
218
253
}
219
254
220
- result = php_uri_get_port (uri_internal , read_mode , & tmp );
255
+ result = php_uri_get_port (& uri_internal , read_mode , & tmp );
221
256
if (result == FAILURE ) {
222
257
goto error ;
223
258
}
224
259
if (Z_TYPE (tmp ) == IS_LONG ) {
225
260
uri -> port = Z_LVAL (tmp );
226
261
}
227
262
228
- result = php_uri_get_path (uri_internal , read_mode , & tmp );
263
+ result = php_uri_get_path (& uri_internal , read_mode , & tmp );
229
264
if (result == FAILURE ) {
230
265
goto error ;
231
266
}
232
267
if (Z_TYPE (tmp ) == IS_STRING ) {
233
268
uri -> path = Z_STR (tmp );
234
269
}
235
270
236
- result = php_uri_get_query (uri_internal , read_mode , & tmp );
271
+ result = php_uri_get_query (& uri_internal , read_mode , & tmp );
237
272
if (result == FAILURE ) {
238
273
goto error ;
239
274
}
240
275
if (Z_TYPE (tmp ) == IS_STRING ) {
241
276
uri -> query = Z_STR (tmp );
242
277
}
243
278
244
- result = php_uri_get_fragment (uri_internal , read_mode , & tmp );
279
+ result = php_uri_get_fragment (& uri_internal , read_mode , & tmp );
245
280
if (result == FAILURE ) {
246
281
goto error ;
247
282
}
248
283
if (Z_TYPE (tmp ) == IS_STRING ) {
249
284
uri -> fragment = Z_STR (tmp );
250
285
}
251
286
252
- php_uri_free ( uri_internal );
287
+ uri_parser -> free ( parsed );
253
288
254
289
return uri ;
255
290
256
291
error :
257
- php_uri_free (uri_internal );
292
+
293
+ uri_parser -> free (parsed );
258
294
php_uri_struct_free (uri );
259
295
260
296
return NULL ;
@@ -351,7 +387,8 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 2) PHPAPI void php_uri_instantiate_uri(
351
387
base_url = internal_base_url -> uri ;
352
388
}
353
389
354
- void * uri = uri_parser -> parse (ZSTR_VAL (uri_str ), ZSTR_LEN (uri_str ), base_url , errors_zv != NULL ? & errors : NULL , !should_throw );
390
+ void * uri = uri_parser -> parse (ZSTR_VAL (uri_str ), ZSTR_LEN (uri_str ),
391
+ base_url , errors_zv != NULL ? & errors : NULL , !should_throw );
355
392
if (UNEXPECTED (uri == NULL )) {
356
393
if (should_throw ) {
357
394
zval_ptr_dtor (& errors );
@@ -853,7 +890,8 @@ static void uri_unserialize(INTERNAL_FUNCTION_PARAMETERS)
853
890
zend_throw_exception_ex (NULL , 0 , "Invalid serialization data for %s object" , ZSTR_VAL (object -> ce -> name ));
854
891
RETURN_THROWS ();
855
892
}
856
- internal_uri -> uri = internal_uri -> parser -> parse (Z_STRVAL_P (uri_zv ), Z_STRLEN_P (uri_zv ), NULL , NULL , true);
893
+ internal_uri -> uri = internal_uri -> parser -> parse (Z_STRVAL_P (uri_zv ), Z_STRLEN_P (uri_zv ),
894
+ /* base_url */ NULL , /* errors */ NULL , /* silent */ true);
857
895
if (internal_uri -> uri == NULL ) {
858
896
zend_throw_exception_ex (NULL , 0 , "Invalid serialization data for %s object" , ZSTR_VAL (object -> ce -> name ));
859
897
RETURN_THROWS ();
0 commit comments