Title: [136638] trunk/Source/WebCore
Revision
136638
Author
[email protected]
Date
2012-12-04 21:36:06 -0800 (Tue, 04 Dec 2012)

Log Message

[V8] Use ScopedPersistent for IntegerCache::smallIntegers
https://bugs.webkit.org/show_bug.cgi?id=104066

Reviewed by Adam Barth.

We can use ScopedPersistent for IntegerCache::smallIntegers
instead of manual Persistent::New().

I confirmed no performance regression in Bindings/scroll-top.html

No tests. No change in behavior.

* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::V8PerIsolateData):
* bindings/v8/V8ValueCache.cpp:
(WebCore::IntegerCache::IntegerCache):
* bindings/v8/V8ValueCache.h:
(IntegerCache):
(WebCore::IntegerCache::v8Integer):
(WebCore::IntegerCache::v8UnsignedInteger):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (136637 => 136638)


--- trunk/Source/WebCore/ChangeLog	2012-12-05 05:20:58 UTC (rev 136637)
+++ trunk/Source/WebCore/ChangeLog	2012-12-05 05:36:06 UTC (rev 136638)
@@ -1,3 +1,26 @@
+2012-12-04  Kentaro Hara  <[email protected]>
+
+        [V8] Use ScopedPersistent for IntegerCache::smallIntegers
+        https://bugs.webkit.org/show_bug.cgi?id=104066
+
+        Reviewed by Adam Barth.
+
+        We can use ScopedPersistent for IntegerCache::smallIntegers
+        instead of manual Persistent::New().
+
+        I confirmed no performance regression in Bindings/scroll-top.html
+
+        No tests. No change in behavior.
+
+        * bindings/v8/V8PerIsolateData.cpp:
+        (WebCore::V8PerIsolateData::V8PerIsolateData):
+        * bindings/v8/V8ValueCache.cpp:
+        (WebCore::IntegerCache::IntegerCache):
+        * bindings/v8/V8ValueCache.h:
+        (IntegerCache):
+        (WebCore::IntegerCache::v8Integer):
+        (WebCore::IntegerCache::v8UnsignedInteger):
+
 2012-12-04  Eugene Klyuchnikov  <[email protected]>
 
         Web Inspector: Resources: domain cookies are not shown for sub-sub domain pages.

Modified: trunk/Source/WebCore/bindings/v8/V8ValueCache.cpp (136637 => 136638)


--- trunk/Source/WebCore/bindings/v8/V8ValueCache.cpp	2012-12-05 05:20:58 UTC (rev 136637)
+++ trunk/Source/WebCore/bindings/v8/V8ValueCache.cpp	2012-12-05 05:36:06 UTC (rev 136638)
@@ -104,15 +104,7 @@
 {
     v8::HandleScope handleScope;
     for (int value = 0; value < numberOfCachedSmallIntegers; value++)
-        m_smallIntegers[value] = v8::Persistent<v8::Integer>::New(v8::Integer::New(value));
+        m_smallIntegers[value].set(v8::Integer::New(value));
 }
 
-IntegerCache::~IntegerCache()
-{
-    for (int value = 0; value < numberOfCachedSmallIntegers; value++) {
-        m_smallIntegers[value].Dispose();
-        m_smallIntegers[value].Clear();
-    }
-}
-
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/V8ValueCache.h (136637 => 136638)


--- trunk/Source/WebCore/bindings/v8/V8ValueCache.h	2012-12-05 05:20:58 UTC (rev 136637)
+++ trunk/Source/WebCore/bindings/v8/V8ValueCache.h	2012-12-05 05:36:06 UTC (rev 136638)
@@ -26,6 +26,7 @@
 #ifndef V8ValueCache_h
 #define V8ValueCache_h
 
+#include "ScopedPersistent.h"
 #include <v8.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefPtr.h>
@@ -71,24 +72,23 @@
 class IntegerCache {
 public:
     IntegerCache();
-    ~IntegerCache();
 
     v8::Handle<v8::Integer> v8Integer(int value, v8::Isolate* isolate)
     {
         if (0 <= value && value < numberOfCachedSmallIntegers)
-            return m_smallIntegers[value];
+            return m_smallIntegers[value].get();
         return v8::Integer::New(value, isolate);
     }
 
     v8::Handle<v8::Integer> v8UnsignedInteger(unsigned value, v8::Isolate* isolate)
     {
         if (value < static_cast<unsigned>(numberOfCachedSmallIntegers))
-            return m_smallIntegers[value];
+            return m_smallIntegers[value].get();
         return v8::Integer::NewFromUnsigned(value, isolate);
     }
 
 private:
-    v8::Persistent<v8::Integer> m_smallIntegers[numberOfCachedSmallIntegers];
+    ScopedPersistent<v8::Integer> m_smallIntegers[numberOfCachedSmallIntegers];
 };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to