Commit 716859c5 authored by tkent@chromium.org's avatar tkent@chromium.org

Oilpan: Prepare to move InspectorDatabaseResource to Oilpan heap.

BUG=347902

Review URL: https://codereview.chromium.org/205853002

git-svn-id: svn://svn.chromium.org/blink/trunk@169623 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bb98b40c
...@@ -198,7 +198,7 @@ void InspectorDatabaseAgent::didOpenDatabase(PassRefPtrWillBeRawPtr<Database> da ...@@ -198,7 +198,7 @@ void InspectorDatabaseAgent::didOpenDatabase(PassRefPtrWillBeRawPtr<Database> da
return; return;
} }
RefPtr<InspectorDatabaseResource> resource = InspectorDatabaseResource::create(database, domain, name, version); RefPtrWillBeRawPtr<InspectorDatabaseResource> resource = InspectorDatabaseResource::create(database, domain, name, version);
m_resources.set(resource->id(), resource); m_resources.set(resource->id(), resource);
// Resources are only bound while visible. // Resources are only bound while visible.
if (m_frontend && m_enabled) if (m_frontend && m_enabled)
...@@ -245,8 +245,8 @@ void InspectorDatabaseAgent::enable(ErrorString*) ...@@ -245,8 +245,8 @@ void InspectorDatabaseAgent::enable(ErrorString*)
m_enabled = true; m_enabled = true;
m_state->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled); m_state->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled);
DatabaseResourcesMap::iterator databasesEnd = m_resources.end(); DatabaseResourcesHeapMap::iterator databasesEnd = m_resources.end();
for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != databasesEnd; ++it) for (DatabaseResourcesHeapMap::iterator it = m_resources.begin(); it != databasesEnd; ++it)
it->value->bind(m_frontend); it->value->bind(m_frontend);
} }
...@@ -304,7 +304,7 @@ void InspectorDatabaseAgent::executeSQL(ErrorString*, const String& databaseId, ...@@ -304,7 +304,7 @@ void InspectorDatabaseAgent::executeSQL(ErrorString*, const String& databaseId,
InspectorDatabaseResource* InspectorDatabaseAgent::findByFileName(const String& fileName) InspectorDatabaseResource* InspectorDatabaseAgent::findByFileName(const String& fileName)
{ {
for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) { for (DatabaseResourcesHeapMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) {
if (it->value->database()->fileName() == fileName) if (it->value->database()->fileName() == fileName)
return it->value.get(); return it->value.get();
} }
...@@ -313,7 +313,7 @@ InspectorDatabaseResource* InspectorDatabaseAgent::findByFileName(const String& ...@@ -313,7 +313,7 @@ InspectorDatabaseResource* InspectorDatabaseAgent::findByFileName(const String&
Database* InspectorDatabaseAgent::databaseForId(const String& databaseId) Database* InspectorDatabaseAgent::databaseForId(const String& databaseId)
{ {
DatabaseResourcesMap::iterator it = m_resources.find(databaseId); DatabaseResourcesHeapMap::iterator it = m_resources.find(databaseId);
if (it == m_resources.end()) if (it == m_resources.end())
return 0; return 0;
return it->value->database(); return it->value->database();
......
...@@ -75,8 +75,8 @@ private: ...@@ -75,8 +75,8 @@ private:
InspectorDatabaseResource* findByFileName(const String& fileName); InspectorDatabaseResource* findByFileName(const String& fileName);
InspectorFrontend::Database* m_frontend; InspectorFrontend::Database* m_frontend;
typedef HashMap<String, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap; typedef WillBePersistentHeapHashMap<String, RefPtrWillBeMember<InspectorDatabaseResource> > DatabaseResourcesHeapMap;
DatabaseResourcesMap m_resources; DatabaseResourcesHeapMap m_resources;
bool m_enabled; bool m_enabled;
}; };
......
...@@ -38,9 +38,9 @@ namespace WebCore { ...@@ -38,9 +38,9 @@ namespace WebCore {
static int nextUnusedId = 1; static int nextUnusedId = 1;
PassRefPtr<InspectorDatabaseResource> InspectorDatabaseResource::create(PassRefPtrWillBeRawPtr<Database> database, const String& domain, const String& name, const String& version) PassRefPtrWillBeRawPtr<InspectorDatabaseResource> InspectorDatabaseResource::create(PassRefPtrWillBeRawPtr<Database> database, const String& domain, const String& name, const String& version)
{ {
return adoptRef(new InspectorDatabaseResource(database, domain, name, version)); return adoptRefWillBeNoop(new InspectorDatabaseResource(database, domain, name, version));
} }
InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Database> database, const String& domain, const String& name, const String& version) InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Database> database, const String& domain, const String& name, const String& version)
...@@ -52,6 +52,11 @@ InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Data ...@@ -52,6 +52,11 @@ InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Data
{ {
} }
void InspectorDatabaseResource::trace(Visitor* visitor)
{
visitor->trace(m_database);
}
void InspectorDatabaseResource::bind(InspectorFrontend::Database* frontend) void InspectorDatabaseResource::bind(InspectorFrontend::Database* frontend)
{ {
RefPtr<TypeBuilder::Database::Database> jsonObject = TypeBuilder::Database::Database::create() RefPtr<TypeBuilder::Database::Database> jsonObject = TypeBuilder::Database::Database::create()
......
...@@ -42,9 +42,10 @@ namespace WebCore { ...@@ -42,9 +42,10 @@ namespace WebCore {
class Database; class Database;
class InspectorFrontend; class InspectorFrontend;
class InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> { class InspectorDatabaseResource : public RefCountedWillBeGarbageCollectedFinalized<InspectorDatabaseResource> {
public: public:
static PassRefPtr<InspectorDatabaseResource> create(PassRefPtrWillBeRawPtr<Database>, const String& domain, const String& name, const String& version); static PassRefPtrWillBeRawPtr<InspectorDatabaseResource> create(PassRefPtrWillBeRawPtr<Database>, const String& domain, const String& name, const String& version);
void trace(Visitor*);
void bind(InspectorFrontend::Database*); void bind(InspectorFrontend::Database*);
Database* database() { return m_database.get(); } Database* database() { return m_database.get(); }
...@@ -54,7 +55,7 @@ public: ...@@ -54,7 +55,7 @@ public:
private: private:
InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Database>, const String& domain, const String& name, const String& version); InspectorDatabaseResource(PassRefPtrWillBeRawPtr<Database>, const String& domain, const String& name, const String& version);
RefPtrWillBePersistent<Database> m_database; RefPtrWillBeMember<Database> m_database;
String m_id; String m_id;
String m_domain; String m_domain;
String m_name; String m_name;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment