Title: [111834] trunk/Source
Revision
111834
Author
[email protected]
Date
2012-03-23 00:14:29 -0700 (Fri, 23 Mar 2012)

Log Message

BitVector::resizeOutOfLine doesn't memset when converting an inline buffer
https://bugs.webkit.org/show_bug.cgi?id=82012

Reviewed by Filip Pizlo.

Initialize out-of-line buffers while extending an inline buffer. Also export symbols to be used in WebCore.

* wtf/BitVector.cpp:
(WTF::BitVector::resizeOutOfLine):
* wtf/BitVector.h:
(BitVector):
(OutOfLineBits):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (111833 => 111834)


--- trunk/Source/_javascript_Core/ChangeLog	2012-03-23 06:33:02 UTC (rev 111833)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-03-23 07:14:29 UTC (rev 111834)
@@ -1,3 +1,18 @@
+2012-03-23  Ryosuke Niwa  <[email protected]>
+
+        BitVector::resizeOutOfLine doesn't memset when converting an inline buffer
+        https://bugs.webkit.org/show_bug.cgi?id=82012
+
+        Reviewed by Filip Pizlo.
+
+        Initialize out-of-line buffers while extending an inline buffer. Also export symbols to be used in WebCore.
+
+        * wtf/BitVector.cpp:
+        (WTF::BitVector::resizeOutOfLine):
+        * wtf/BitVector.h:
+        (BitVector):
+        (OutOfLineBits):
+
 2012-03-22  Michael Saboff  <[email protected]>
 
         ExecutableAllocator::memoryPressureMultiplier() might can return NaN

Modified: trunk/Source/WTF/wtf/BitVector.cpp (111833 => 111834)


--- trunk/Source/WTF/wtf/BitVector.cpp	2012-03-23 06:33:02 UTC (rev 111833)
+++ trunk/Source/WTF/wtf/BitVector.cpp	2012-03-23 07:14:29 UTC (rev 111834)
@@ -89,13 +89,14 @@
 {
     ASSERT(numBits > maxInlineBits());
     OutOfLineBits* newOutOfLineBits = OutOfLineBits::create(numBits);
+    size_t newNumWords = newOutOfLineBits->numWords();
     if (isInline()) {
         // Make sure that all of the bits are zero in case we do a no-op resize.
         *newOutOfLineBits->bits() = m_bitsOrPointer & ~(static_cast<uintptr_t>(1) << maxInlineBits());
+        memset(newOutOfLineBits->bits() + 1, 0, (newNumWords - 1) * sizeof(void*));
     } else {
         if (numBits > size()) {
             size_t oldNumWords = outOfLineBits()->numWords();
-            size_t newNumWords = newOutOfLineBits->numWords();
             memcpy(newOutOfLineBits->bits(), outOfLineBits()->bits(), oldNumWords * sizeof(void*));
             memset(newOutOfLineBits->bits() + oldNumWords, 0, (newNumWords - oldNumWords) * sizeof(void*));
         } else

Modified: trunk/Source/WTF/wtf/BitVector.h (111833 => 111834)


--- trunk/Source/WTF/wtf/BitVector.h	2012-03-23 06:33:02 UTC (rev 111833)
+++ trunk/Source/WTF/wtf/BitVector.h	2012-03-23 07:14:29 UTC (rev 111834)
@@ -104,9 +104,9 @@
     }
     
     // Like ensureSize(), but supports reducing the size of the bitvector.
-    void resize(size_t numBits);
+    WTF_EXPORT_PRIVATE void resize(size_t numBits);
     
-    void clearAll();
+    WTF_EXPORT_PRIVATE void clearAll();
 
     bool quickGet(size_t bit) const
     {
@@ -193,9 +193,9 @@
         uintptr_t* bits() { return bitwise_cast<uintptr_t*>(this + 1); }
         const uintptr_t* bits() const { return bitwise_cast<const uintptr_t*>(this + 1); }
         
-        static OutOfLineBits* create(size_t numBits);
+        static WTF_EXPORT_PRIVATE OutOfLineBits* create(size_t numBits);
         
-        static void destroy(OutOfLineBits*);
+        static WTF_EXPORT_PRIVATE void destroy(OutOfLineBits*);
 
     private:
         OutOfLineBits(size_t numBits)
@@ -211,8 +211,8 @@
     const OutOfLineBits* outOfLineBits() const { return bitwise_cast<const OutOfLineBits*>(m_bitsOrPointer << 1); }
     OutOfLineBits* outOfLineBits() { return bitwise_cast<OutOfLineBits*>(m_bitsOrPointer << 1); }
     
-    void resizeOutOfLine(size_t numBits);
-    void setSlow(const BitVector& other);
+    WTF_EXPORT_PRIVATE void resizeOutOfLine(size_t numBits);
+    WTF_EXPORT_PRIVATE void setSlow(const BitVector& other);
     
     uintptr_t* bits()
     {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to