From 4a87c9099a5cab981ae0382593d42b7dcc122bd3 Mon Sep 17 00:00:00 2001 From: James Willcox Date: Fri, 5 Apr 2013 07:30:00 -0400 Subject: [PATCH] Bug 858039 - Make SurfaceStream_TripleBuffer_Async use the correct SurfaceStreamType. r=jgilbert --- gfx/gl/GLScreenBuffer.cpp | 2 +- gfx/gl/SurfaceStream.cpp | 1 + gfx/gl/SurfaceStream.h | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gfx/gl/GLScreenBuffer.cpp b/gfx/gl/GLScreenBuffer.cpp index aa6247e6d32c..4ce9e616a77d 100644 --- a/gfx/gl/GLScreenBuffer.cpp +++ b/gfx/gl/GLScreenBuffer.cpp @@ -315,7 +315,7 @@ GLScreenBuffer::Morph(SurfaceFactory_GL* newFactory, SurfaceStreamType streamTyp mFactory = newFactory; } - if (mStream->mType == streamType) + if (mStream->Type() == streamType) return; SurfaceStream* newStream = SurfaceStream::CreateForType(streamType, mStream); diff --git a/gfx/gl/SurfaceStream.cpp b/gfx/gl/SurfaceStream.cpp index a292cece1fd7..790586685516 100644 --- a/gfx/gl/SurfaceStream.cpp +++ b/gfx/gl/SurfaceStream.cpp @@ -433,6 +433,7 @@ SurfaceStream_TripleBuffer::SwapConsumer_NoWait() SurfaceStream_TripleBuffer_Async::SurfaceStream_TripleBuffer_Async(SurfaceStream* prevStream) : SurfaceStream_TripleBuffer(prevStream) { + mType = SurfaceStreamType::TripleBuffer_Async; } SurfaceStream_TripleBuffer_Async::~SurfaceStream_TripleBuffer_Async() diff --git a/gfx/gl/SurfaceStream.h b/gfx/gl/SurfaceStream.h index ae8666a6b341..53f73687d0ce 100644 --- a/gfx/gl/SurfaceStream.h +++ b/gfx/gl/SurfaceStream.h @@ -41,10 +41,11 @@ public: return (SurfaceStream*)handle; } - const SurfaceStreamType mType; + SurfaceStreamType Type() { return mType; } protected: // |mProd| is owned by us, but can be ripped away when // creating a new GLStream from this one. + SurfaceStreamType mType; SharedSurface* mProducer; std::set mSurfaces; std::stack mScraps; @@ -59,7 +60,7 @@ protected: , mMonitor("SurfaceStream monitor") , mIsAlive(true) { - MOZ_ASSERT(!prevStream || mType != prevStream->mType, + MOZ_ASSERT(!prevStream || mType != prevStream->Type(), "We should not need to create a SurfaceStream from another " "of the same type."); }