Skip to content

Commit 37f7722

Browse files
nicalweb-flow
authored andcommitted
Bug 1769492 - Don't assume that get_surface_rect returns a non-empty rect. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D204228
1 parent 95d6dc5 commit 37f7722

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

Diff for: webrender/src/prepare.rs

+16-8
Original file line numberDiff line numberDiff line change
@@ -803,10 +803,12 @@ fn prepare_interned_prim_for_render(
803803
}
804804
QuadRenderStrategy::Indirect => {
805805
let surface = &frame_state.surfaces[pic_context.surface_index.0];
806-
let clipped_surface_rect = surface.get_surface_rect(
806+
let Some(clipped_surface_rect) = surface.get_surface_rect(
807807
&prim_instance.vis.clip_chain.pic_coverage_rect,
808808
frame_context.spatial_tree,
809-
).expect("bug: what can cause this?");
809+
) else {
810+
return;
811+
};
810812

811813
let p0 = clipped_surface_rect.min.to_f32();
812814
let p1 = clipped_surface_rect.max.to_f32();
@@ -842,10 +844,12 @@ fn prepare_interned_prim_for_render(
842844
QuadRenderStrategy::Tiled { x_tiles, y_tiles } => {
843845
let surface = &frame_state.surfaces[pic_context.surface_index.0];
844846

845-
let clipped_surface_rect = surface.get_surface_rect(
847+
let Some(clipped_surface_rect) = surface.get_surface_rect(
846848
&prim_instance.vis.clip_chain.pic_coverage_rect,
847849
frame_context.spatial_tree,
848-
).expect("bug: what can cause this?");
850+
) else {
851+
return;
852+
};
849853

850854
let unclipped_surface_rect = surface.map_to_device_rect(
851855
&prim_instance.vis.clip_chain.pic_coverage_rect,
@@ -921,10 +925,12 @@ fn prepare_interned_prim_for_render(
921925
}
922926
QuadRenderStrategy::NinePatch { clip_rect, radius } => {
923927
let surface = &frame_state.surfaces[pic_context.surface_index.0];
924-
let clipped_surface_rect = surface.get_surface_rect(
928+
let Some(clipped_surface_rect) = surface.get_surface_rect(
925929
&prim_instance.vis.clip_chain.pic_coverage_rect,
926930
frame_context.spatial_tree,
927-
).expect("bug: what can cause this?");
931+
) else {
932+
return;
933+
};
928934

929935
let unclipped_surface_rect = surface.map_to_device_rect(
930936
&prim_instance.vis.clip_chain.pic_coverage_rect,
@@ -1355,10 +1361,12 @@ fn prepare_interned_prim_for_render(
13551361
let device_pixel_scale = surface.device_pixel_scale;
13561362
let raster_spatial_node_index = surface.raster_spatial_node_index;
13571363

1358-
let clipped_surface_rect = surface.get_surface_rect(
1364+
let Some(clipped_surface_rect) = surface.get_surface_rect(
13591365
&coverage_rect,
13601366
frame_context.spatial_tree,
1361-
).expect("bug: what can cause this?");
1367+
) else {
1368+
return;
1369+
};
13621370

13631371
// Draw a normal screens-space mask to an alpha target that
13641372
// can be sampled when compositing this picture.

0 commit comments

Comments
 (0)