Unreviewed, rolling out r124179.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 31 Jul 2012 09:41:08 +0000 (09:41 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 31 Jul 2012 09:41:08 +0000 (09:41 +0000)
http://trac.webkit.org/changeset/124179
https://bugs.webkit.org/show_bug.cgi?id=92730

Breaks Chromium Linux 32 bots with "error: integer constant is
too large for 'long' type" in IDBLevelDBCodingTest.cpp
(Requested by apavlov on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-31

Source/WebCore:

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeByte):
(WebCore::IDBLevelDBCoding::encodeBool):
(WebCore::IDBLevelDBCoding::encodeInt):
(WebCore::IDBLevelDBCoding::encodeVarInt):
(WebCore::IDBLevelDBCoding::encodeString):
(WebCore::IDBLevelDBCoding::encodeDouble):
(WebCore::IDBLevelDBCoding::encodeIDBKey):
(WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
(WebCore::IDBLevelDBCoding::KeyPrefix::encode):
* Modules/indexeddb/IDBLevelDBCoding.h:
(IDBLevelDBCoding):

Source/WebKit/chromium:

* tests/IDBLevelDBCodingTest.cpp:
(IDBLevelDBCoding::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124185 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp
Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp

index ad12798..75ff6e1 100644 (file)
@@ -1,3 +1,26 @@
+2012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r124179.
+        http://trac.webkit.org/changeset/124179
+        https://bugs.webkit.org/show_bug.cgi?id=92730
+
+        Breaks Chromium Linux 32 bots with "error: integer constant is
+        too large for 'long' type" in IDBLevelDBCodingTest.cpp
+        (Requested by apavlov on #webkit).
+
+        * Modules/indexeddb/IDBLevelDBCoding.cpp:
+        (WebCore::IDBLevelDBCoding::encodeByte):
+        (WebCore::IDBLevelDBCoding::encodeBool):
+        (WebCore::IDBLevelDBCoding::encodeInt):
+        (WebCore::IDBLevelDBCoding::encodeVarInt):
+        (WebCore::IDBLevelDBCoding::encodeString):
+        (WebCore::IDBLevelDBCoding::encodeDouble):
+        (WebCore::IDBLevelDBCoding::encodeIDBKey):
+        (WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
+        (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
+        * Modules/indexeddb/IDBLevelDBCoding.h:
+        (IDBLevelDBCoding):
+
 2012-07-31  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
 
         add Farstream flags/deps to WebKit, for WebRTC
index 7e37be7..3af454f 100644 (file)
@@ -167,10 +167,8 @@ static const unsigned char IndexMetaDataTypeMaximum = 255;
 
 Vector<char> encodeByte(unsigned char c)
 {
-    Vector<char, DefaultInlineBufferSize> v;
+    Vector<char> v;
     v.append(c);
-
-    ASSERT(v.size() <= DefaultInlineBufferSize);
     return v;
 }
 
@@ -186,10 +184,8 @@ Vector<char> minIDBKey()
 
 Vector<char> encodeBool(bool b)
 {
-    Vector<char, DefaultInlineBufferSize> ret;
-    ret.append(b ? 1 : 0);
-
-    ASSERT(ret.size() <= DefaultInlineBufferSize);
+    Vector<char> ret(1);
+    ret[0] = b ? 1 : 0;
     return ret;
 }
 
@@ -203,7 +199,7 @@ Vector<char> encodeInt(int64_t nParam)
 {
     ASSERT(nParam >= 0);
     uint64_t n = static_cast<uint64_t>(nParam);
-    Vector<char, DefaultInlineBufferSize> ret;
+    Vector<char> ret; // FIXME: Size this at creation.
 
     do {
         unsigned char c = n;
@@ -211,7 +207,6 @@ Vector<char> encodeInt(int64_t nParam)
         n >>= 8;
     } while (n);
 
-    ASSERT(ret.size() <= DefaultInlineBufferSize);
     return ret;
 }
 
@@ -247,7 +242,7 @@ Vector<char> encodeVarInt(int64_t nParam)
 {
     ASSERT(nParam >= 0);
     uint64_t n = static_cast<uint64_t>(nParam);
-    Vector<char, DefaultInlineBufferSize> ret;
+    Vector<char> ret; // FIXME: Size this at creation.
 
     do {
         unsigned char c = n & 0x7f;
@@ -257,7 +252,6 @@ Vector<char> encodeVarInt(int64_t nParam)
         ret.append(c);
     } while (n);
 
-    ASSERT(ret.size() <= DefaultInlineBufferSize);
     return ret;
 }
 
@@ -280,14 +274,14 @@ const char* decodeVarInt(const char* p, const char* limit, int64_t& foundInt)
 
 Vector<char> encodeString(const String& s)
 {
-    Vector<char> ret(s.length() * 2);
+    Vector<char> ret; // FIXME: Size this at creation.
 
     for (unsigned i = 0; i < s.length(); ++i) {
         UChar u = s[i];
         unsigned char hi = u >> 8;
         unsigned char lo = u;
-        ret[2 * i] = hi;
-        ret[2 * i + 1] = lo;
+        ret.append(hi);
+        ret.append(lo);
     }
 
     return ret;
@@ -370,10 +364,9 @@ Vector<char> encodeDouble(double x)
 {
     // FIXME: It would be nice if we could be byte order independent.
     const char* p = reinterpret_cast<char*>(&x);
-    Vector<char, DefaultInlineBufferSize> v;
+    Vector<char> v;
     v.append(p, sizeof(x));
-
-    ASSERT(v.size() <= DefaultInlineBufferSize);
+    ASSERT(v.size() == sizeof(x));
     return v;
 }
 
@@ -390,12 +383,12 @@ const char* decodeDouble(const char* p, const char* limit, double* d)
 
 Vector<char> encodeIDBKey(const IDBKey& key)
 {
-    Vector<char, DefaultInlineBufferSize> ret;
+    Vector<char> ret;
     encodeIDBKey(key, ret);
     return ret;
 }
 
-void encodeIDBKey(const IDBKey& key, Vector<char, DefaultInlineBufferSize>& into)
+void encodeIDBKey(const IDBKey& key, Vector<char>& into)
 {
     size_t previousSize = into.size();
     ASSERT(key.isValid());
@@ -647,7 +640,7 @@ Vector<char> encodeIDBKeyPath(const IDBKeyPath& keyPath)
     // May be typed, or may be a raw string. An invalid leading
     // byte is used to identify typed coding. New records are
     // always written as typed.
-    Vector<char, DefaultInlineBufferSize> ret;
+    Vector<char> ret;
     ret.append(IDBKeyPathTypeCodedByte1);
     ret.append(IDBKeyPathTypeCodedByte2);
     ret.append(static_cast<char>(keyPath.type()));
@@ -891,13 +884,12 @@ Vector<char> KeyPrefix::encode() const
 
 
     unsigned char firstByte = (databaseIdString.size() - 1) << 5 | (objectStoreIdString.size() - 1) << 2 | (indexIdString.size() - 1);
-    Vector<char, DefaultInlineBufferSize> ret;
+    Vector<char> ret;
     ret.append(firstByte);
     ret.append(databaseIdString);
     ret.append(objectStoreIdString);
     ret.append(indexIdString);
 
-    ASSERT(ret.size() <= DefaultInlineBufferSize);
     return ret;
 }
 
index 267f63d..3113e7d 100644 (file)
@@ -43,10 +43,6 @@ namespace IDBLevelDBCoding {
 
 const unsigned char MinimumIndexId = 30;
 
-// As most of the IDBKeys and encoded values are short, we initialize some Vectors with a default inline buffer size
-// to reduce the memory re-allocations when the Vectors are appended.
-static const size_t DefaultInlineBufferSize = 32;
-
 Vector<char> encodeByte(unsigned char);
 Vector<char> maxIDBKey();
 Vector<char> minIDBKey();
@@ -63,7 +59,7 @@ const char* decodeStringWithLength(const char* p, const char* limit, String& fou
 int compareEncodedStringsWithLength(const char*& p, const char* limitP, const char*& q, const char* limitQ);
 Vector<char> encodeDouble(double);
 const char* decodeDouble(const char* p, const char* limit, double*);
-void encodeIDBKey(const IDBKey&, Vector<char, DefaultInlineBufferSize>& into);
+void encodeIDBKey(const IDBKey&, Vector<char>& into);
 Vector<char> encodeIDBKey(const IDBKey&);
 const char* decodeIDBKey(const char* p, const char* limit, RefPtr<IDBKey>& foundKey);
 const char* extractEncodedIDBKey(const char* start, const char* limit, Vector<char>* result);
index f3a5d7d..5d07817 100644 (file)
@@ -1,3 +1,16 @@
+2012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r124179.
+        http://trac.webkit.org/changeset/124179
+        https://bugs.webkit.org/show_bug.cgi?id=92730
+
+        Breaks Chromium Linux 32 bots with "error: integer constant is
+        too large for 'long' type" in IDBLevelDBCodingTest.cpp
+        (Requested by apavlov on #webkit).
+
+        * tests/IDBLevelDBCodingTest.cpp:
+        (IDBLevelDBCoding::TEST):
+
 2012-07-30  Keishi Hattori  <keishi@webkit.org>
 
         Implement datalist UI for input type color for Chromium
index 5f0f92d..137699c 100644 (file)
@@ -187,10 +187,8 @@ TEST(IDBLevelDBCodingTest, EncodeVarInt)
     EXPECT_EQ(static_cast<size_t>(2), encodeVarInt(255).size());
     EXPECT_EQ(static_cast<size_t>(2), encodeVarInt(256).size());
     EXPECT_EQ(static_cast<size_t>(5), encodeVarInt(0xffffffff).size());
-    EXPECT_EQ(static_cast<size_t>(8), encodeVarInt(0xfffffffffffff).size());
-    EXPECT_EQ(static_cast<size_t>(9), encodeVarInt(0x7fffffffffffffff).size());
 #ifdef NDEBUG
-    EXPECT_EQ(static_cast<size_t>(10), encodeVarInt(-100).size());
+    EXPECT_EQ(static_cast<size_t>(8), encodeInt(-100).size());
 #endif
 }