@@ -106,6 +106,14 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *get_uri_for_writing(uri_internal_t *inter
106106 return & uriparser_uris -> uri ;
107107}
108108
109+ ZEND_ATTRIBUTE_NONNULL static void reset_normalized_uri_after_writing (uri_internal_t * internal_uri )
110+ {
111+ php_uri_parser_rfc3986_uris * uriparser_uris = internal_uri -> uri ;
112+
113+ uriFreeUriMembersMmA (& uriparser_uris -> normalized_uri , mm );
114+ uriparser_uris -> normalized_uri_initialized = false;
115+ }
116+
109117ZEND_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 )
110118{
111119 const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
@@ -135,6 +143,8 @@ static zend_result php_uri_parser_rfc3986_scheme_write(struct uri_internal_t *in
135143 return FAILURE ;
136144 }
137145
146+ reset_normalized_uri_after_writing (internal_uri );
147+
138148 return SUCCESS ;
139149}
140150
@@ -167,10 +177,11 @@ zend_result php_uri_parser_rfc3986_userinfo_write(struct uri_internal_t *interna
167177 return FAILURE ;
168178 }
169179
180+ reset_normalized_uri_after_writing (internal_uri );
181+
170182 return SUCCESS ;
171183}
172184
173-
174185ZEND_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 )
175186{
176187 const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
@@ -252,6 +263,8 @@ static zend_result php_uri_parser_rfc3986_host_write(struct uri_internal_t *inte
252263 return FAILURE ;
253264 }
254265
266+ reset_normalized_uri_after_writing (internal_uri );
267+
255268 return SUCCESS ;
256269}
257270
@@ -296,6 +309,8 @@ static zend_result php_uri_parser_rfc3986_port_write(struct uri_internal_t *inte
296309 return FAILURE ;
297310 }
298311
312+ reset_normalized_uri_after_writing (internal_uri );
313+
299314 return SUCCESS ;
300315}
301316
@@ -343,6 +358,8 @@ static zend_result php_uri_parser_rfc3986_path_write(struct uri_internal_t *inte
343358 return FAILURE ;
344359 }
345360
361+ reset_normalized_uri_after_writing (internal_uri );
362+
346363 return SUCCESS ;
347364}
348365
@@ -375,6 +392,8 @@ static zend_result php_uri_parser_rfc3986_query_write(struct uri_internal_t *int
375392 return FAILURE ;
376393 }
377394
395+ reset_normalized_uri_after_writing (internal_uri );
396+
378397 return SUCCESS ;
379398}
380399
@@ -407,6 +426,8 @@ static zend_result php_uri_parser_rfc3986_fragment_write(struct uri_internal_t *
407426 return FAILURE ;
408427 }
409428
429+ reset_normalized_uri_after_writing (internal_uri );
430+
410431 return SUCCESS ;
411432}
412433
0 commit comments