Index: Source/core/html/canvas/CanvasRenderingContext2D.h |
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.h b/Source/core/html/canvas/CanvasRenderingContext2D.h |
index 0428bdcac6fef5dd5ab1fca4e329b158c4a5ffc5..0f4739c23c298813c5b2825f613b5f3aa2aa3505 100644 |
--- a/Source/core/html/canvas/CanvasRenderingContext2D.h |
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.h |
@@ -115,7 +115,7 @@ public: |
String globalCompositeOperation() const; |
void setGlobalCompositeOperation(const String&); |
- void save() { ++m_stateStack.last().m_unrealizedSaveCount; } |
+ void save() { ++m_stateStack.last()->m_unrealizedSaveCount; } |
void restore(); |
PassRefPtr<SVGMatrixTearOff> currentTransform() const |
@@ -266,6 +266,8 @@ private: |
float m_lineDashOffset; |
bool m_imageSmoothingEnabled; |
+ virtual void trace(Visitor*) OVERRIDE { } |
+ |
// Text state. |
TextAlign m_textAlign; |
TextBaseline m_textBaseline; |
@@ -277,8 +279,8 @@ private: |
CanvasRenderingContext2D(HTMLCanvasElement*, const Canvas2DContextAttributes* attrs, bool usesCSSCompatibilityParseMode); |
- State& modifiableState() { ASSERT(!state().m_unrealizedSaveCount); return m_stateStack.last(); } |
- const State& state() const { return m_stateStack.last(); } |
+ State& modifiableState() { ASSERT(!state().m_unrealizedSaveCount); return *m_stateStack.last(); } |
+ const State& state() const { return *m_stateStack.last(); } |
void applyLineDash() const; |
void setShadow(const FloatSize& offset, float blur, RGBA32 color); |
@@ -332,7 +334,9 @@ private: |
virtual blink::WebLayer* platformLayer() const OVERRIDE; |
- Vector<State, 1> m_stateStack; |
+ // FIXME: Oilpan: Make this a vector of embedded State objects rather than pointers |
+ // once we support having vectors with objects using a vtable in oilpan. |
+ WillBePersistentHeapVector<OwnPtrWillBeMember<State> > m_stateStack; |
bool m_usesCSSCompatibilityParseMode; |
bool m_hasAlpha; |
MutableStylePropertyMap m_fetchedFonts; |