summaryrefslogtreecommitdiffstats
path: root/gfx/layers/composite
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-06-07 06:21:57 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-06-07 06:21:57 +0200
commitbd0e550e63c646dc5c515caf52aedad8bc29f9bd (patch)
tree2a5131e409e23f73ef5a8f79fd3d53484c3f7a7f /gfx/layers/composite
parente810c8a5c0b116d7214c786186f0478a7f70ff64 (diff)
downloadUXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar
UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.gz
UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.lz
UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.xz
UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.zip
Account for offsets when creating buffers for image textures.
Diffstat (limited to 'gfx/layers/composite')
-rw-r--r--gfx/layers/composite/TextureHost.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/gfx/layers/composite/TextureHost.cpp b/gfx/layers/composite/TextureHost.cpp
index c93037384..e4a2ffd86 100644
--- a/gfx/layers/composite/TextureHost.cpp
+++ b/gfx/layers/composite/TextureHost.cpp
@@ -259,7 +259,9 @@ CreateBackendIndependentTextureHost(const SurfaceDescriptor& aDesc,
case BufferDescriptor::TYCbCrDescriptor: {
const YCbCrDescriptor& ycbcr = desc.get_YCbCrDescriptor();
reqSize =
- ImageDataSerializer::ComputeYCbCrBufferSize(ycbcr.ySize(), ycbcr.cbCrSize());
+ ImageDataSerializer::ComputeYCbCrBufferSize(ycbcr.ySize(), ycbcr.cbCrSize(),
+ ycbcr.yOffset(), ycbcr.cbOffset(),
+ ycbcr.crOffset());
break;
}
case BufferDescriptor::TRGBDescriptor: {
@@ -272,7 +274,7 @@ CreateBackendIndependentTextureHost(const SurfaceDescriptor& aDesc,
MOZ_CRASH("GFX: Bad descriptor");
}
- if (bufSize < reqSize) {
+ if (reqSize == 0 || bufSize < reqSize) {
NS_ERROR("A client process gave a shmem too small to fit for its descriptor!");
return nullptr;
}