Have SQLiteStatement::database() return a reference
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Feb 2015 03:06:58 +0000 (03:06 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Feb 2015 03:06:58 +0000 (03:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=141348

Reviewed by Andreas Kling.

Have SQLiteStatement::database() return a reference as it can never
return null.

Source/WebCore:

* loader/icon/IconDatabase.cpp:
(WebCore::readySQLiteStatement):
* platform/sql/SQLiteStatement.h:
(WebCore::SQLiteStatement::database):

Source/WebKit2:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::internalAdvanceOnce):

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

Source/WebCore/ChangeLog
Source/WebCore/loader/icon/IconDatabase.cpp
Source/WebCore/platform/sql/SQLiteStatement.h
Source/WebKit2/ChangeLog
Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp

index d3815b2..b76c3f9 100644 (file)
@@ -1,3 +1,18 @@
+2015-02-06  Chris Dumez  <cdumez@apple.com>
+
+        Have SQLiteStatement::database() return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=141348
+
+        Reviewed by Andreas Kling.
+
+        Have SQLiteStatement::database() return a reference as it can never
+        return null.
+
+        * loader/icon/IconDatabase.cpp:
+        (WebCore::readySQLiteStatement):
+        * platform/sql/SQLiteStatement.h:
+        (WebCore::SQLiteStatement::database):
+
 2015-02-06  Brent Fulgham  <bfulgham@apple.com>
 
         Add youtube-nocookie URL to isYouTubeURL predicate 
index 9838ea6..c2974f1 100644 (file)
@@ -1812,7 +1812,7 @@ void* IconDatabase::cleanupSyncThread()
 // 2 - Lazy construction of the Statement in the first place, in case we've never made this query before
 inline void readySQLiteStatement(std::unique_ptr<SQLiteStatement>& statement, SQLiteDatabase& db, const String& str)
 {
-    if (statement && (statement->database() != &db || statement->isExpired())) {
+    if (statement && (&statement->database() != &db || statement->isExpired())) {
         if (statement->isExpired())
             LOG(IconDatabase, "SQLiteStatement associated with %s is expired", str.ascii().data());
         statement = nullptr;
index 84535f7..4cbdd77 100644 (file)
@@ -90,7 +90,7 @@ public:
     bool returnInt64Results(int col, Vector<int64_t>&);
     bool returnDoubleResults(int col, Vector<double>&);
 
-    SQLiteDatabase* database() { return &m_database; }
+    SQLiteDatabase& database() { return m_database; }
     
     const String& query() const { return m_query; }
     
index 0ba96f6..b432a44 100644 (file)
@@ -1,3 +1,16 @@
+2015-02-06  Chris Dumez  <cdumez@apple.com>
+
+        Have SQLiteStatement::database() return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=141348
+
+        Reviewed by Andreas Kling.
+
+        Have SQLiteStatement::database() return a reference as it can never
+        return null.
+
+        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
+        (WebKit::SQLiteIDBCursor::internalAdvanceOnce):
+
 2015-02-06  Alexey Proskuryakov  <ap@apple.com>
 
         Report network process crashes during layout tests
index 253bd5c..66a564e 100644 (file)
@@ -329,12 +329,12 @@ SQLiteIDBCursor::AdvanceResult SQLiteIDBCursor::internalAdvanceOnce()
             return AdvanceResult::Failure;
         }
 
-        SQLiteStatement objectStoreStatement(*m_statement->database(), "SELECT value FROM Records WHERE key = CAST(? AS TEXT) and objectStoreID = ?;");
+        SQLiteStatement objectStoreStatement(m_statement->database(), "SELECT value FROM Records WHERE key = CAST(? AS TEXT) and objectStoreID = ?;");
 
         if (objectStoreStatement.prepare() != SQLResultOk
             || objectStoreStatement.bindBlob(1, m_currentValueBuffer.data(), m_currentValueBuffer.size()) != SQLResultOk
             || objectStoreStatement.bindInt64(2, m_objectStoreID) != SQLResultOk) {
-            LOG_ERROR("Could not create index cursor statement into object store records (%i) '%s'", m_statement->database()->lastError(), m_statement->database()->lastErrorMsg());
+            LOG_ERROR("Could not create index cursor statement into object store records (%i) '%s'", m_statement->database().lastError(), m_statement->database().lastErrorMsg());
             m_completed = true;
             m_errored = true;
             return AdvanceResult::Failure;
@@ -349,7 +349,7 @@ SQLiteIDBCursor::AdvanceResult SQLiteIDBCursor::internalAdvanceOnce()
             // Skip over it.
             return AdvanceResult::ShouldAdvanceAgain;
         } else {
-            LOG_ERROR("Could not step index cursor statement into object store records (%i) '%s'", m_statement->database()->lastError(), m_statement->database()->lastErrorMsg());
+            LOG_ERROR("Could not step index cursor statement into object store records (%i) '%s'", m_statement->database().lastError(), m_statement->database().lastErrorMsg());
             m_completed = true;
             m_errored = true;
             return AdvanceResult::Failure;