Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5133)

Unified Diff: Source/platform/graphics/filters/FilterOperation.h

Issue 678163002: Oilpan: move SVG property hierarchy to the heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased upto r185213 Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/platform/graphics/filters/FilterOperation.h
diff --git a/Source/platform/graphics/filters/FilterOperation.h b/Source/platform/graphics/filters/FilterOperation.h
index 93bb10b6e46e4f45b7069165e0f45183eb7f85bc..b6270f3fe9d52240cbc60752a998725bc3c4d62d 100644
--- a/Source/platform/graphics/filters/FilterOperation.h
+++ b/Source/platform/graphics/filters/FilterOperation.h
@@ -31,6 +31,7 @@
#include "platform/graphics/Color.h"
#include "platform/graphics/filters/Filter.h"
#include "platform/graphics/filters/ReferenceFilter.h"
+#include "platform/heap/Handle.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/RefCounted.h"
@@ -40,7 +41,7 @@ namespace blink {
// CSS Filters
-class PLATFORM_EXPORT FilterOperation : public RefCounted<FilterOperation> {
+class PLATFORM_EXPORT FilterOperation : public RefCountedWillBeGarbageCollectedFinalized<FilterOperation> {
public:
enum OperationType {
REFERENCE, // url(#somefilter)
@@ -81,8 +82,9 @@ public:
}
virtual ~FilterOperation() { }
+ virtual void trace(Visitor*) { }
- static PassRefPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
+ static PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
virtual bool operator==(const FilterOperation&) const = 0;
bool operator!=(const FilterOperation& o) const { return !(*this == o); }
@@ -103,7 +105,7 @@ protected:
OperationType m_type;
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
};
#define DEFINE_FILTER_OPERATION_TYPE_CASTS(thisType, operationType) \
@@ -111,9 +113,9 @@ private:
class PLATFORM_EXPORT ReferenceFilterOperation : public FilterOperation {
public:
- static PassRefPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
+ static PassRefPtrWillBeRawPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
{
- return adoptRef(new ReferenceFilterOperation(url, fragment));
+ return adoptRefWillBeNoop(new ReferenceFilterOperation(url, fragment));
}
virtual bool affectsOpacity() const override { return true; }
@@ -123,10 +125,12 @@ public:
const AtomicString& fragment() const { return m_fragment; }
ReferenceFilter* filter() const { return m_filter.get(); }
- void setFilter(PassRefPtr<ReferenceFilter> filter) { m_filter = filter; }
+ void setFilter(PassRefPtrWillBeRawPtr<ReferenceFilter> filter) { m_filter = filter; }
+
+ virtual void trace(Visitor*) override;
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
{
ASSERT_NOT_REACHED();
return nullptr;
@@ -149,7 +153,7 @@ private:
String m_url;
AtomicString m_fragment;
- RefPtr<ReferenceFilter> m_filter;
+ RefPtrWillBeMember<ReferenceFilter> m_filter;
};
DEFINE_FILTER_OPERATION_TYPE_CASTS(ReferenceFilterOperation, REFERENCE);
@@ -158,16 +162,16 @@ DEFINE_FILTER_OPERATION_TYPE_CASTS(ReferenceFilterOperation, REFERENCE);
// For HUE_ROTATE, the angle of rotation is stored in m_amount.
class PLATFORM_EXPORT BasicColorMatrixFilterOperation : public FilterOperation {
public:
- static PassRefPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
+ static PassRefPtrWillBeRawPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
{
- return adoptRef(new BasicColorMatrixFilterOperation(amount, type));
+ return adoptRefWillBeNoop(new BasicColorMatrixFilterOperation(amount, type));
}
double amount() const { return m_amount; }
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
virtual bool operator==(const FilterOperation& o) const override
{
if (!isSameType(o))
@@ -196,9 +200,9 @@ DEFINE_TYPE_CASTS(BasicColorMatrixFilterOperation, FilterOperation, op, isBasicC
// INVERT, BRIGHTNESS, CONTRAST and OPACITY are variations on a basic component transfer effect.
class PLATFORM_EXPORT BasicComponentTransferFilterOperation : public FilterOperation {
public:
- static PassRefPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
+ static PassRefPtrWillBeRawPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
{
- return adoptRef(new BasicComponentTransferFilterOperation(amount, type));
+ return adoptRefWillBeNoop(new BasicComponentTransferFilterOperation(amount, type));
}
double amount() const { return m_amount; }
@@ -207,7 +211,7 @@ public:
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
virtual bool operator==(const FilterOperation& o) const override
{
if (!isSameType(o))
@@ -235,9 +239,9 @@ DEFINE_TYPE_CASTS(BasicComponentTransferFilterOperation, FilterOperation, op, is
class PLATFORM_EXPORT BlurFilterOperation : public FilterOperation {
public:
- static PassRefPtr<BlurFilterOperation> create(const Length& stdDeviation)
+ static PassRefPtrWillBeRawPtr<BlurFilterOperation> create(const Length& stdDeviation)
{
- return adoptRef(new BlurFilterOperation(stdDeviation));
+ return adoptRefWillBeNoop(new BlurFilterOperation(stdDeviation));
}
const Length& stdDeviation() const { return m_stdDeviation; }
@@ -247,7 +251,7 @@ public:
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
virtual bool operator==(const FilterOperation& o) const override
{
if (!isSameType(o))
@@ -269,9 +273,9 @@ DEFINE_FILTER_OPERATION_TYPE_CASTS(BlurFilterOperation, BLUR);
class PLATFORM_EXPORT DropShadowFilterOperation : public FilterOperation {
public:
- static PassRefPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
+ static PassRefPtrWillBeRawPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
{
- return adoptRef(new DropShadowFilterOperation(location, stdDeviation, color));
+ return adoptRefWillBeNoop(new DropShadowFilterOperation(location, stdDeviation, color));
}
int x() const { return m_location.x(); }
@@ -285,7 +289,7 @@ public:
private:
- virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
+ virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
virtual bool operator==(const FilterOperation& o) const override
{
if (!isSameType(o))
« no previous file with comments | « Source/platform/graphics/filters/FilterEffect.cpp ('k') | Source/platform/graphics/filters/FilterOperation.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698