@@ -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
@@ -303,6 +316,8 @@ static zend_result php_uri_parser_rfc3986_port_write(struct uri_internal_t *inte
303316 return FAILURE ;
304317 }
305318
319+ reset_normalized_uri_after_writing (internal_uri );
320+
306321 return SUCCESS ;
307322}
308323
@@ -350,6 +365,8 @@ static zend_result php_uri_parser_rfc3986_path_write(struct uri_internal_t *inte
350365 return FAILURE ;
351366 }
352367
368+ reset_normalized_uri_after_writing (internal_uri );
369+
353370 return SUCCESS ;
354371}
355372
@@ -382,6 +399,8 @@ static zend_result php_uri_parser_rfc3986_query_write(struct uri_internal_t *int
382399 return FAILURE ;
383400 }
384401
402+ reset_normalized_uri_after_writing (internal_uri );
403+
385404 return SUCCESS ;
386405}
387406
@@ -414,6 +433,8 @@ static zend_result php_uri_parser_rfc3986_fragment_write(struct uri_internal_t *
414433 return FAILURE ;
415434 }
416435
436+ reset_normalized_uri_after_writing (internal_uri );
437+
417438 return SUCCESS ;
418439}
419440
0 commit comments