Title: [120663] trunk/Source/_javascript_Core
- Revision
- 120663
- Author
- [email protected]
- Date
- 2012-06-18 20:32:30 -0700 (Mon, 18 Jun 2012)
Log Message
[JSC] In JSGlobalData.cpp, enableAssembler() sometimes leaks two CF objects
https://bugs.webkit.org/show_bug.cgi?id=89415
Reviewed by Sam Weinig.
In the case where canUseJIT was a non-NULL CFBooleanRef,
enableAssembler() would leak both canUseJITKey and canUseJIT by
returning before calling CFRelease. Fix this by using RetainPtr.
* runtime/JSGlobalData.cpp:
(JSC::enableAssembler):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (120662 => 120663)
--- trunk/Source/_javascript_Core/ChangeLog 2012-06-19 03:20:53 UTC (rev 120662)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-06-19 03:32:30 UTC (rev 120663)
@@ -1,3 +1,17 @@
+2012-06-18 Andy Estes <[email protected]>
+
+ [JSC] In JSGlobalData.cpp, enableAssembler() sometimes leaks two CF objects
+ https://bugs.webkit.org/show_bug.cgi?id=89415
+
+ Reviewed by Sam Weinig.
+
+ In the case where canUseJIT was a non-NULL CFBooleanRef,
+ enableAssembler() would leak both canUseJITKey and canUseJIT by
+ returning before calling CFRelease. Fix this by using RetainPtr.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::enableAssembler):
+
2012-06-17 Geoffrey Garen <[email protected]>
GC copy phase spends needless cycles zero-filling blocks
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (120662 => 120663)
--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp 2012-06-19 03:20:53 UTC (rev 120662)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp 2012-06-19 03:32:30 UTC (rev 120663)
@@ -54,6 +54,7 @@
#include "RegExpObject.h"
#include "StrictEvalActivation.h"
#include "StrongInlines.h"
+#include <wtf/RetainPtr.h>
#include <wtf/Threading.h>
#include <wtf/WTFThreadData.h>
@@ -100,13 +101,10 @@
return false;
#if USE(CF)
- CFStringRef canUseJITKey = CFStringCreateWithCString(0 , "_javascript_CoreUseJIT", kCFStringEncodingMacRoman);
- CFBooleanRef canUseJIT = (CFBooleanRef)CFPreferencesCopyAppValue(canUseJITKey, kCFPreferencesCurrentApplication);
- if (canUseJIT) {
+ RetainPtr<CFStringRef> canUseJITKey(AdoptCF, CFStringCreateWithCString(0 , "_javascript_CoreUseJIT", kCFStringEncodingMacRoman));
+ RetainPtr<CFBooleanRef> canUseJIT(AdoptCF, (CFBooleanRef)CFPreferencesCopyAppValue(canUseJITKey.get(), kCFPreferencesCurrentApplication));
+ if (canUseJIT)
return kCFBooleanTrue == canUseJIT;
- CFRelease(canUseJIT);
- }
- CFRelease(canUseJITKey);
#endif
#if USE(CF) || OS(UNIX)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes