@@ -28,31 +28,24 @@ static inline size_t get_text_range_length(const UriTextRangeA *range)
2828 return range -> afterLast - range -> first ;
2929}
3030
31- static void uriparser_copy_uri (UriUriA * new_uriparser_uri , UriUriA * uriparser_uri )
31+ ZEND_ATTRIBUTE_NONNULL static void uriparser_copy_uri (UriUriA * new_uriparser_uri , UriUriA * uriparser_uri )
3232{
33- ZEND_ASSERT (new_uriparser_uri != NULL && uriparser_uri != NULL );
34-
3533 int result = uriCopyUriA (new_uriparser_uri , uriparser_uri );
36- ZEND_ASSERT (result == URI_SUCCESS && new_uriparser_uri != NULL );
37- }
38-
39- static void uriparser_normalize_uri (UriUriA * uriparser_uri )
40- {
41- int result = uriNormalizeSyntaxExA (uriparser_uri , (unsigned int )-1 );
4234 ZEND_ASSERT (result == URI_SUCCESS );
4335}
4436
45- static UriUriA * get_normalized_uri (uriparser_uris_t * uriparser_uris ) {
37+ ZEND_ATTRIBUTE_NONNULL static UriUriA * get_normalized_uri (uriparser_uris_t * uriparser_uris ) {
4638 if (!uriparser_uris -> normalized_uri_initialized ) {
4739 uriparser_copy_uri (& uriparser_uris -> normalized_uri , & uriparser_uris -> uri );
48- uriparser_normalize_uri (& uriparser_uris -> normalized_uri );
40+ int result = uriNormalizeSyntaxExA (& uriparser_uris -> normalized_uri , (unsigned int )-1 );
41+ ZEND_ASSERT (result == URI_SUCCESS );
4942 uriparser_uris -> normalized_uri_initialized = true;
5043 }
5144
5245 return & uriparser_uris -> normalized_uri ;
5346}
5447
55- static UriUriA * uriparser_read_uri (uriparser_uris_t * uriparser_uris , uri_component_read_mode_t read_mode )
48+ ZEND_ATTRIBUTE_NONNULL static UriUriA * uriparser_read_uri (uriparser_uris_t * uriparser_uris , uri_component_read_mode_t read_mode )
5649{
5750 switch (read_mode ) {
5851 case URI_COMPONENT_READ_RAW :
@@ -65,7 +58,7 @@ static UriUriA *uriparser_read_uri(uriparser_uris_t *uriparser_uris, uri_compone
6558 }
6659}
6760
68- static zend_result uriparser_read_scheme (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
61+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_scheme (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
6962{
7063 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
7164 ZEND_ASSERT (uriparser_uri != NULL );
@@ -80,7 +73,7 @@ static zend_result uriparser_read_scheme(const uri_internal_t *internal_uri, uri
8073 return SUCCESS ;
8174}
8275
83- zend_result uriparser_read_userinfo (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
76+ ZEND_ATTRIBUTE_NONNULL zend_result uriparser_read_userinfo (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
8477{
8578 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
8679 ZEND_ASSERT (uriparser_uri != NULL );
@@ -94,7 +87,7 @@ zend_result uriparser_read_userinfo(const uri_internal_t *internal_uri, uri_comp
9487 return SUCCESS ;
9588}
9689
97- static zend_result uriparser_read_username (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
90+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_username (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
9891{
9992 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
10093 ZEND_ASSERT (uriparser_uri != NULL );
@@ -117,7 +110,7 @@ static zend_result uriparser_read_username(const uri_internal_t *internal_uri, u
117110 return SUCCESS ;
118111}
119112
120- static zend_result uriparser_read_password (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
113+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_password (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
121114{
122115 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
123116 ZEND_ASSERT (uriparser_uri != NULL );
@@ -137,7 +130,7 @@ static zend_result uriparser_read_password(const uri_internal_t *internal_uri, u
137130 return SUCCESS ;
138131}
139132
140- static zend_result uriparser_read_host (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
133+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_host (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
141134{
142135 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
143136 ZEND_ASSERT (uriparser_uri != NULL );
@@ -162,18 +155,18 @@ static zend_result uriparser_read_host(const uri_internal_t *internal_uri, uri_c
162155 return SUCCESS ;
163156}
164157
165- static size_t str_to_int (const char * str , size_t len )
158+ ZEND_ATTRIBUTE_NONNULL static size_t str_to_int (const char * str , size_t len )
166159{
167160 int result = 0 ;
168161
169- for (int i = 0 ; i < len ; ++ i ) {
162+ for (size_t i = 0 ; i < len ; ++ i ) {
170163 result = result * 10 + (str [i ] - '0' );
171164 }
172165
173166 return result ;
174167}
175168
176- static zend_result uriparser_read_port (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
169+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_port (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
177170{
178171 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
179172 ZEND_ASSERT (uriparser_uri != NULL );
@@ -187,24 +180,23 @@ static zend_result uriparser_read_port(const uri_internal_t *internal_uri, uri_c
187180 return SUCCESS ;
188181}
189182
190- static zend_result uriparser_read_path (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
183+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_path (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
191184{
192185 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
193186 ZEND_ASSERT (uriparser_uri != NULL );
194187
195188 if (uriparser_uri -> pathHead != NULL ) {
196- const UriPathSegmentA * p ;
197189 smart_str str = {0 };
198190
199191 if (uriparser_uri -> absolutePath || uriHasHostA (uriparser_uri )) {
200192 smart_str_appendc (& str , '/' );
201193 }
202194
203- smart_str_appendl (& str , uriparser_uri -> pathHead -> text .first , get_text_range_length (& uriparser_uri -> pathHead -> text ));
204-
205- for (p = uriparser_uri -> pathHead -> next ; p != NULL ; p = p -> next ) {
206- smart_str_appendc (& str , '/' );
195+ for (const UriPathSegmentA * p = uriparser_uri -> pathHead ; p ; p = p -> next ) {
207196 smart_str_appendl (& str , p -> text .first , get_text_range_length (& p -> text ));
197+ if (p -> next ) {
198+ smart_str_appendc (& str , '/' );
199+ }
208200 }
209201
210202 ZVAL_NEW_STR (retval , smart_str_extract (& str ));
@@ -217,7 +209,7 @@ static zend_result uriparser_read_path(const uri_internal_t *internal_uri, uri_c
217209 return SUCCESS ;
218210}
219211
220- static zend_result uriparser_read_query (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
212+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_query (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
221213{
222214 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
223215 ZEND_ASSERT (uriparser_uri != NULL );
@@ -231,7 +223,7 @@ static zend_result uriparser_read_query(const uri_internal_t *internal_uri, uri_
231223 return SUCCESS ;
232224}
233225
234- static zend_result uriparser_read_fragment (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
226+ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_fragment (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
235227{
236228 UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
237229 ZEND_ASSERT (uriparser_uri != NULL );
@@ -345,11 +337,11 @@ void *uriparser_parse_uri(const zend_string *uri_str, const void *base_url, zval
345337 return uriparser_parse_uri_ex (uri_str , base_url , silent );
346338}
347339
348- /* TODO make the clone handler accept a flag to distingish between clone() calls and withers.
340+ /* TODO make the clone handler accept a flag to distinguish between clone() calls and withers.
349341 * When calling a wither successfully, the normalized URI is surely invalidated, therefore
350- * it doesn't make sense to copy it. In case of failure, an exeption is thrown, and the URI object
342+ * it doesn't make sense to copy it. In case of failure, an exception is thrown, and the URI object
351343 * is discarded altogether. */
352- static void * uriparser_clone_uri (void * uri )
344+ ZEND_ATTRIBUTE_NONNULL static void * uriparser_clone_uri (void * uri )
353345{
354346 uriparser_uris_t * uriparser_uris = uri ;
355347
@@ -363,7 +355,7 @@ static void *uriparser_clone_uri(void *uri)
363355 return new_uriparser_uris ;
364356}
365357
366- static zend_string * uriparser_uri_to_string (void * uri , uri_recomposition_mode_t recomposition_mode , bool exclude_fragment )
358+ ZEND_ATTRIBUTE_NONNULL static zend_string * uriparser_uri_to_string (void * uri , uri_recomposition_mode_t recomposition_mode , bool exclude_fragment )
367359{
368360 uriparser_uris_t * uriparser_uris = uri ;
369361 UriUriA * uriparser_uri ;
@@ -394,7 +386,7 @@ static zend_string *uriparser_uri_to_string(void *uri, uri_recomposition_mode_t
394386 return uri_string ;
395387}
396388
397- static void uriparser_free_uri (void * uri )
389+ ZEND_ATTRIBUTE_NONNULL static void uriparser_free_uri (void * uri )
398390{
399391 uriparser_uris_t * uriparser_uris = uri ;
400392
0 commit comments