aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-08-04 05:50:27 -0600
committerbors-servo <metajack+bors@gmail.com>2015-08-04 05:50:27 -0600
commit0565df859684560b525b0361476d334f79db8474 (patch)
tree6c2f02729f58b2d8a3fdafa8978bf4e66cb95ad5
parent672b38e83ac0eb70c6e5b625752e7e3a57029176 (diff)
parent0f0de57936902e819b087420e9e2ed9032552ddd (diff)
downloadservo-0565df859684560b525b0361476d334f79db8474.tar.gz
servo-0565df859684560b525b0361476d334f79db8474.zip
Auto merge of #6950 - servo:struct-pattern, r=glennw
Add a comment to explain the struct pattern trick. https://github.com/servo/servo/issues/6912#issuecomment-127429643 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6950) <!-- Reviewable:end -->
-rw-r--r--components/util/mem.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/components/util/mem.rs b/components/util/mem.rs
index 370840b7a16..eb5785a40df 100644
--- a/components/util/mem.rs
+++ b/components/util/mem.rs
@@ -103,6 +103,8 @@ impl<T: HeapSizeOf> HeapSizeOf for Option<T> {
impl HeapSizeOf for url::Url {
fn heap_size_of_children(&self) -> usize {
+ // Using a struct pattern without `..` rather than `foo.bar` field access
+ // makes sure this will be updated if a field is added.
let &url::Url { ref scheme, ref scheme_data, ref query, ref fragment } = self;
scheme.heap_size_of_children() +
scheme_data.heap_size_of_children() +
@@ -122,6 +124,8 @@ impl HeapSizeOf for url::SchemeData {
impl HeapSizeOf for url::RelativeSchemeData {
fn heap_size_of_children(&self) -> usize {
+ // Using a struct pattern without `..` rather than `foo.bar` field access
+ // makes sure this will be updated if a field is added.
let &url::RelativeSchemeData { ref username, ref password, ref host,
ref port, ref default_port, ref path } = self;
username.heap_size_of_children() +