+2007-08-12 Adam Roben <aroben@apple.com>
+
+ Use RetainPtr to store WebPreferences::m_privatePrefs
+
+ Reviewed by Darin.
+
+ * WebPreferences.cpp:
+ (WebPreferences::setStringValue):
+ (WebPreferences::setIntegerValue):
+ (WebPreferences::setBoolValue):
+ (WebPreferences::initWithIdentifier):
+ * WebPreferences.h:
+
2007-08-12 Adam Roben <aroben@apple.com>
Fix <rdar://problem/5278790> Hole for find-on-page match in subframe isn't clipped by frame bounds
#include <WebKitSystemInterface/WebKitSystemInterface.h>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
-#include <wtf/RetainPtr.h>
#include <wtf/Vector.h>
static unsigned long long WebSystemMainMemory()
WebPreferences::WebPreferences()
: m_refCount(0)
-, m_privatePrefs(0)
, m_autoSaves(0)
{
gClassCount++;
WebPreferences::~WebPreferences()
{
- if (m_privatePrefs)
- CFRelease(m_privatePrefs);
gClassCount--;
}
const void* WebPreferences::valueForKey(CFStringRef key)
{
- const void* value = CFDictionaryGetValue(m_privatePrefs, key);
+ const void* value = CFDictionaryGetValue(m_privatePrefs.get(), key);
if (!value)
value = CFDictionaryGetValue(m_standardUserDefaults, key);
RetainPtr<CFStringRef> valueRef(AdoptCF,
CFStringCreateWithCharactersNoCopy(0, (UniChar*)_wcsdup(value), (CFIndex)_tcslen(value), kCFAllocatorMalloc));
- CFDictionarySetValue(m_privatePrefs, key, valueRef.get());
+ CFDictionarySetValue(m_privatePrefs.get(), key, valueRef.get());
if (m_autoSaves) {
CFDictionarySetValue(m_standardUserDefaults, key, valueRef.get());
save();
return;
RetainPtr<CFNumberRef> valueRef(AdoptCF, CFNumberCreate(0, kCFNumberSInt32Type, &value));
- CFDictionarySetValue(m_privatePrefs, key, valueRef.get());
+ CFDictionarySetValue(m_privatePrefs.get(), key, valueRef.get());
if (m_autoSaves) {
CFDictionarySetValue(m_standardUserDefaults, key, valueRef.get());
save();
if (boolValueForKey(key) == value)
return;
- CFDictionarySetValue(m_privatePrefs, key, value ? kCFBooleanTrue : kCFBooleanFalse);
+ CFDictionarySetValue(m_privatePrefs.get(), key, value ? kCFBooleanTrue : kCFBooleanFalse);
if (m_autoSaves) {
CFDictionarySetValue(m_standardUserDefaults, key, value ? kCFBooleanTrue : kCFBooleanFalse);
save();
load();
- if (m_privatePrefs)
- CFRelease(m_privatePrefs);
- m_privatePrefs = CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+ m_privatePrefs.adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
*preferences = this;
AddRef();
#include "IWebPreferences.h"
#include <CoreFoundation/CoreFoundation.h>
#include <WebCore/BString.h>
+#include <wtf/RetainPtr.h>
-class WebPreferences : public IWebPreferences
-{
+class WebPreferences : public IWebPreferences {
public:
static WebPreferences* createInstance();
protected:
protected:
ULONG m_refCount;
- CFMutableDictionaryRef m_privatePrefs;
+ RetainPtr<CFMutableDictionaryRef> m_privatePrefs;
bool m_autoSaves;
WebCore::BString m_identifier;
static CFMutableDictionaryRef m_standardUserDefaults;