Bug 1607419 - Avoid option.expect(&format in hot code. r=jrmuizel
authorNicolas Silva <nsilva@mozilla.com>
Wed, 08 Jan 2020 02:53:49 +0000
changeset 509303 031a2ee21fa6e2b2983b1619ebdf65caa2b882a6
parent 509302 6f33d915fcf503f8d200430d6e0496b59d3bf82f
child 509304 c31f51b3d5e3f563d324453857b76321a7e8983a
push id36994
push userccoroiu@mozilla.com
push dateWed, 08 Jan 2020 16:45:33 +0000
treeherdermozilla-central@6378942bfb04 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1607419
milestone74.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1607419 - Avoid option.expect(&format in hot code. r=jrmuizel Easy to miss that the slow formatting code is run unconditionally. The remaining instances are in recording and startup code. Differential Revision: https://phabricator.services.mozilla.com/D58920
gfx/wr/webrender/src/prim_store/mod.rs
gfx/wr/webrender/src/renderer.rs
--- a/gfx/wr/webrender/src/prim_store/mod.rs
+++ b/gfx/wr/webrender/src/prim_store/mod.rs
@@ -1075,17 +1075,17 @@ impl BrushSegment {
                     device_pixel_scale,
                     frame_context.fb_config,
                 );
 
                 let clip_task_id = frame_state.render_tasks.add(clip_task);
                 let port = frame_state
                     .surfaces[surface_index.0]
                     .render_tasks
-                    .expect(&format!("bug: no task for surface {:?}", surface_index))
+                    .unwrap_or_else(|| panic!("bug: no task for surface {:?}", surface_index))
                     .port;
                 frame_state.render_tasks.add_dependency(port, clip_task_id);
                 ClipMaskKind::Mask(clip_task_id)
             }
             None => {
                 ClipMaskKind::Clipped
             }
         }
--- a/gfx/wr/webrender/src/renderer.rs
+++ b/gfx/wr/webrender/src/renderer.rs
@@ -1151,17 +1151,17 @@ impl TextureResolver {
                 };
                 let swizzle = Swizzle::default();
                 device.bind_texture(sampler, texture, swizzle);
                 swizzle
             }
             TextureSource::External(external_image) => {
                 let texture = self.external_images
                     .get(&(external_image.id, external_image.channel_index))
-                    .expect(&format!("BUG: External image should be resolved by now"));
+                    .expect("BUG: External image should be resolved by now");
                 device.bind_external_texture(sampler, texture);
                 Swizzle::default()
             }
             TextureSource::TextureCache(index, swizzle) => {
                 let texture = &self.texture_cache_map[&index];
                 device.bind_texture(sampler, texture, swizzle);
                 swizzle
             }