- add a copy assignment operator to FontPlatformData on Mac to properly
retain the m_font data member.
* platform/graphics/mac/FontPlatformData.h:
* platform/graphics/mac/FontPlatformDataMac.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::~FontPlatformData):
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::setFont):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33030
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2008-05-10 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Jessica Kahn.
+
+ - add a copy assignment operator to FontPlatformData on Mac to properly
+ retain the m_font data member.
+
+ * platform/graphics/mac/FontPlatformData.h:
+ * platform/graphics/mac/FontPlatformDataMac.mm:
+ (WebCore::FontPlatformData::FontPlatformData):
+ (WebCore::~FontPlatformData):
+ (WebCore::FontPlatformData::operator=):
+ (WebCore::FontPlatformData::setFont):
+
2008-05-10 Adele Peterson <adele@apple.com>
Reviewed by Tim Hatcher.
{
}
- FontPlatformData(NSFont* = 0, bool syntheticBold = false, bool syntheticOblique = false);
+ FontPlatformData(NSFont * = 0, bool syntheticBold = false, bool syntheticOblique = false);
FontPlatformData(CGFontRef f, ATSUFontID fontID, float s, bool b , bool o)
: m_syntheticBold(b), m_syntheticOblique(o), m_atsuFontID(fontID), m_size(s), m_font(0), m_cgFont(f)
return StringImpl::computeHash(reinterpret_cast<UChar*>(hashCodes), sizeof(hashCodes) / sizeof(UChar));
}
+ const FontPlatformData& operator=(const FontPlatformData& f);
+
bool operator==(const FontPlatformData& other) const
{
return m_font == other.m_font && m_syntheticBold == other.m_syntheticBold && m_syntheticOblique == other.m_syntheticOblique &&
}
NSFont *font() const { return m_font; }
- void setFont(NSFont* font);
+ void setFont(NSFont *font);
#ifndef BUILDING_ON_TIGER
CGFontRef cgFont() const { return m_cgFont.get(); }
namespace WebCore {
-FontPlatformData::FontPlatformData(NSFont* f, bool b , bool o)
+FontPlatformData::FontPlatformData(NSFont *f, bool b , bool o)
: m_syntheticBold(b), m_syntheticOblique(o), m_font(f)
{
if (f)
FontPlatformData::FontPlatformData(const FontPlatformData& f)
{
- m_font = (f.m_font && f.m_font != (NSFont*)-1) ? (NSFont*)CFRetain(f.m_font) : f.m_font;
+ m_font = f.m_font && f.m_font != reinterpret_cast<NSFont *>(-1) ? static_cast<const NSFont *>(CFRetain(f.m_font)) : f.m_font;
m_syntheticBold = f.m_syntheticBold;
m_syntheticOblique = f.m_syntheticOblique;
m_size = f.m_size;
FontPlatformData:: ~FontPlatformData()
{
- if (m_font && m_font != (NSFont*)-1)
+ if (m_font && m_font != reinterpret_cast<NSFont *>(-1))
CFRelease(m_font);
}
-void FontPlatformData::setFont(NSFont* font) {
+const FontPlatformData& FontPlatformData::operator=(const FontPlatformData& f)
+{
+ m_syntheticBold = f.m_syntheticBold;
+ m_syntheticOblique = f.m_syntheticOblique;
+ m_size = f.m_size;
+ m_cgFont = f.m_cgFont;
+ m_atsuFontID = f.m_atsuFontID;
+ if (m_font == f.m_font)
+ return *this;
+ if (f.m_font && f.m_font != reinterpret_cast<NSFont *>(-1))
+ CFRetain(f.m_font);
+ if (m_font && m_font != reinterpret_cast<NSFont *>(-1))
+ CFRelease(m_font);
+ m_font = f.m_font;
+ return *this;
+}
+
+void FontPlatformData::setFont(NSFont *font) {
if (m_font == font)
return;
if (font)
CFRetain(font);
- if (m_font && m_font != (NSFont*)-1)
+ if (m_font && m_font != reinterpret_cast<NSFont *>(-1))
CFRelease(m_font);
m_font = font;
m_size = font ? [font pointSize] : 0.0f;