summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-08 14:30:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-12 13:49:54 +0200
commitab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch)
tree498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
parent4ce69f7403811819800e7c5ae1318b2647e778d1 (diff)
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp b/chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
index fa3f22a05e6..41b0ea18c95 100644
--- a/chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
+++ b/chromium/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
@@ -44,9 +44,16 @@ CSSImageGeneratorValue::~CSSImageGeneratorValue()
void CSSImageGeneratorValue::addClient(RenderObject* renderer, const IntSize& size)
{
+ ASSERT(renderer);
+#if !ENABLE(OILPAN)
ref();
+#else
+ if (m_clients.isEmpty()) {
+ ASSERT(!m_keepAlive);
+ m_keepAlive = adoptPtr(new Persistent<CSSImageGeneratorValue>(this));
+ }
+#endif
- ASSERT(renderer);
if (!size.isEmpty())
m_sizes.add(size);
@@ -77,7 +84,14 @@ void CSSImageGeneratorValue::removeClient(RenderObject* renderer)
if (!--sizeCount.count)
m_clients.remove(renderer);
+#if !ENABLE(OILPAN)
deref();
+#else
+ if (m_clients.isEmpty()) {
+ ASSERT(m_keepAlive);
+ m_keepAlive = nullptr;
+ }
+#endif
}
Image* CSSImageGeneratorValue::getImage(RenderObject* renderer, const IntSize& size)
@@ -87,7 +101,9 @@ Image* CSSImageGeneratorValue::getImage(RenderObject* renderer, const IntSize& s
SizeAndCount& sizeCount = it->value;
IntSize oldSize = sizeCount.size;
if (oldSize != size) {
+#if !ENABLE_OILPAN
RefPtr<CSSImageGeneratorValue> protect(this);
+#endif
removeClient(renderer);
addClient(renderer, size);
}
@@ -120,7 +136,7 @@ PassRefPtr<Image> CSSImageGeneratorValue::image(RenderObject* renderer, const In
default:
ASSERT_NOT_REACHED();
}
- return 0;
+ return nullptr;
}
bool CSSImageGeneratorValue::isFixedSize() const