Index: Source/modules/webdatabase/DatabaseManager.cpp |
diff --git a/Source/modules/webdatabase/DatabaseManager.cpp b/Source/modules/webdatabase/DatabaseManager.cpp |
index 710c1788b7689a3d7a0a20b63fecea9110623835..a6bfc1a76ac64067876cf0fc74d1a7dcb415dfdf 100644 |
--- a/Source/modules/webdatabase/DatabaseManager.cpp |
+++ b/Source/modules/webdatabase/DatabaseManager.cpp |
@@ -102,8 +102,12 @@ DatabaseContext* DatabaseManager::existingDatabaseContextFor(ExecutionContext* c |
ASSERT(m_databaseContextRegisteredCount >= 0); |
ASSERT(m_databaseContextInstanceCount >= 0); |
ASSERT(m_databaseContextRegisteredCount <= m_databaseContextInstanceCount); |
- |
+#if ENABLE(OILPAN) |
+ const Persistent<DatabaseContext>* databaseContext = m_contextMap.get(context); |
+ return databaseContext ? databaseContext->get() : 0; |
+#else |
return m_contextMap.get(context); |
+#endif |
} |
DatabaseContext* DatabaseManager::databaseContextFor(ExecutionContext* context) |
@@ -120,7 +124,11 @@ void DatabaseManager::registerDatabaseContext(DatabaseContext* databaseContext) |
{ |
MutexLocker locker(m_contextMapLock); |
ExecutionContext* context = databaseContext->executionContext(); |
+#if ENABLE(OILPAN) |
+ m_contextMap.set(context, adoptPtr(new Persistent<DatabaseContext>(databaseContext))); |
+#else |
m_contextMap.set(context, databaseContext); |
+#endif |
#if !ASSERT_DISABLED |
m_databaseContextRegisteredCount++; |
#endif |