Remove CachedImageManual class
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Feb 2014 19:34:30 +0000 (19:34 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Feb 2014 19:34:30 +0000 (19:34 +0000)
commit8b0a9f7b00a451484a0786a5ca53adfa5419aad5
tree63ad8df7ed0a90878ab3c184f83c2e64b4f6be99
parentbf90ef61dfc3e12e4aa32a220251a572f09b230a
Remove CachedImageManual class
<http://webkit.org/b/128043>

Reviewed by Darin Adler.

Get rid of the CachedImageManual class by inlining its
functionality into CachedImage.  This makes it possible to
de-virtual-ize isManual() (renamed to isManuallyCached()) and to
make CachedImage final.  The size of CachedImage does not
increase because we turn an existing bool into a bitfield to add
an m_isManuallyCached bit, and create a static CachedImageClient
in MemoryCache.cpp as the "fake" client to keep the manually
cached image alive in the cache.

* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage): Set m_isManuallyCached
bitfield.  For one overloaded constructor, move the
CachedImageManual code into the CachedImage constructor.
(WebCore::CachedImageManual::CachedImageManual): Remove.
(WebCore::CachedImage::mustRevalidateDueToCacheHeaders): Move
method from CachedImageManual to CachedImage, and put
ManuallyCached behavior behind a check.
* loader/cache/CachedImage.h: Update includes.  Make CachedImage
final.  Add CachedImage::CacheBehaviorType enum when manually
cached images are created.  Move CachedImageManual methods into
CachedImage, remove addFakeClient() and removeFakeClient()
methods (MemoryCache methods use addClient() and removeClient()
with a static CachedImageClient), and remove the
CachedImageManual class definition.  Change
m_shouldPaintBrokenImage to a bitfield and add
m_isManuallyCached bitfield.

* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::addImageToCache): Use std::unique_ptr and
remove useless NULL check after calling CachedImage constructor.
(WebCore::MemoryCache::removeImageFromCache):
- Update to use CachedImage class instead of CachedImageManual.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@163318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/loader/cache/CachedImage.cpp
Source/WebCore/loader/cache/CachedImage.h
Source/WebCore/loader/cache/MemoryCache.cpp