]> git.lizzy.rs Git - rust.git/commitdiff
Fix json output in the self-profiler
authorWesley Wiser <wwiser@gmail.com>
Tue, 20 Nov 2018 04:26:00 +0000 (23:26 -0500)
committerWesley Wiser <wwiser@gmail.com>
Tue, 20 Nov 2018 04:26:00 +0000 (23:26 -0500)
Fix missing ',' array element separators and convert NaN's to 0.

src/librustc/util/profiling.rs

index 37073b6e82080a616db922205dc26b990e4d5310..dfd3f2ee184cebd87cb0490e06783bed66178cec 100644 (file)
@@ -93,16 +93,27 @@ fn json(&self) -> String {
                 $(
                     let (hits, total) = self.query_counts.$name;
 
+                    //normalize hits to 0%
+                    let hit_percent =
+                        if total > 0 {
+                            ((hits as f32) / (total as f32)) * 100.0
+                        } else {
+                            0.0
+                        };
+
                     json.push_str(&format!(
                         "{{ \"category\": {}, \"time_ms\": {},
-                            \"query_count\": {}, \"query_hits\": {} }}",
+                            \"query_count\": {}, \"query_hits\": {} }},",
                         stringify!($name),
                         self.times.$name / 1_000_000,
                         total,
-                        format!("{:.2}", (((hits as f32) / (total as f32)) * 100.0))
+                        format!("{:.2}", hit_percent)
                     ));
                 )*
 
+                //remove the trailing ',' character
+                json.pop();
+
                 json.push(']');
 
                 json