File tree Expand file tree Collapse file tree 3 files changed +16
-6
lines changed Expand file tree Collapse file tree 3 files changed +16
-6
lines changed Original file line number Diff line number Diff line change 22
33name = " url"
44# When updating version, also modify html_root_url in the lib.rs
5- version = " 1.6.0 "
5+ version = " 1.6.1 "
66authors = [" The rust-url developers" ]
77
88description = " URL library for Rust, based on the WHATWG URL Standard"
Original file line number Diff line number Diff line change @@ -257,8 +257,16 @@ impl<'a> Target for &'a mut String {
257257// * `Serializer` keeps its target in a private field
258258// * Unlike in other `Target` impls, `UrlQuery::finished` does not return `Self`.
259259impl < ' a > Target for :: UrlQuery < ' a > {
260- fn as_mut_string ( & mut self ) -> & mut String { & mut self . url . serialization }
261- fn finish ( self ) -> & ' a mut :: Url { self . url }
260+ fn as_mut_string ( & mut self ) -> & mut String {
261+ & mut self . url . as_mut ( ) . unwrap ( ) . serialization
262+ }
263+
264+ fn finish ( mut self ) -> & ' a mut :: Url {
265+ let url = self . url . take ( ) . unwrap ( ) ;
266+ url. restore_already_parsed_fragment ( self . fragment . take ( ) ) ;
267+ url
268+ }
269+
262270 type Finished = & ' a mut :: Url ;
263271}
264272
Original file line number Diff line number Diff line change @@ -1304,7 +1304,7 @@ impl Url {
13041304 self . serialization . push ( '?' ) ;
13051305 }
13061306
1307- let query = UrlQuery { url : self , fragment : fragment } ;
1307+ let query = UrlQuery { url : Some ( self ) , fragment : fragment } ;
13081308 form_urlencoded:: Serializer :: for_suffix ( query, query_start + "?" . len ( ) )
13091309 }
13101310
@@ -2373,13 +2373,15 @@ fn io_error<T>(reason: &str) -> io::Result<T> {
23732373/// Implementation detail of `Url::query_pairs_mut`. Typically not used directly.
23742374#[ derive( Debug ) ]
23752375pub struct UrlQuery < ' a > {
2376- url : & ' a mut Url ,
2376+ url : Option < & ' a mut Url > ,
23772377 fragment : Option < String > ,
23782378}
23792379
23802380impl < ' a > Drop for UrlQuery < ' a > {
23812381 fn drop ( & mut self ) {
2382- self . url . restore_already_parsed_fragment ( self . fragment . take ( ) )
2382+ if let Some ( url) = self . url . take ( ) {
2383+ url. restore_already_parsed_fragment ( self . fragment . take ( ) )
2384+ }
23832385 }
23842386}
23852387
You can’t perform that action at this time.
0 commit comments