From 9940366e4bbb9ab9c28b99c9f8ee8a585f635736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 11 Oct 2018 18:09:07 +0200 Subject: [PATCH] Ensure we always end up with a texture after calling update(). --- webrender/src/renderer.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/webrender/src/renderer.rs b/webrender/src/renderer.rs index 5e8cc6fa50..7b779ab3d8 100644 --- a/webrender/src/renderer.rs +++ b/webrender/src/renderer.rs @@ -1324,14 +1324,18 @@ impl VertexDataTexture { } fn update(&mut self, device: &mut Device, data: &mut Vec) { - if data.is_empty() { - return; - } - debug_assert!(mem::size_of::() % 16 == 0); let texels_per_item = mem::size_of::() / 16; let items_per_row = MAX_VERTEX_TEXTURE_WIDTH / texels_per_item; + // Ensure we always end up with a texture when leaving this method. + if data.is_empty() { + if self.texture.is_some() { + return; + } + data.push(unsafe { mem::uninitialized() }); + } + // Extend the data array to be a multiple of the row size. // This ensures memory safety when the array is passed to // OpenGL to upload to the GPU.