| Index: cc/resource_provider.cc
|
| diff --git a/cc/resource_provider.cc b/cc/resource_provider.cc
|
| index ff917b0227ed20ccad7408b25d7d6373cc052fd2..00ac892f3f774e7cfb53fa4932e36d1c373e99f1 100644
|
| --- a/cc/resource_provider.cc
|
| +++ b/cc/resource_provider.cc
|
| @@ -140,11 +140,7 @@ bool CCResourceProvider::inUseByConsumer(ResourceId id)
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| return !!resource->lockForReadCount || resource->exported;
|
| }
|
|
|
| @@ -184,7 +180,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createGLTexture(int pool, con
|
| GLC(context3d, context3d->texImage2D(GraphicsContext3D::TEXTURE_2D, 0, format, size.width(), size.height(), 0, format, GraphicsContext3D::UNSIGNED_BYTE, 0));
|
| ResourceId id = m_nextId++;
|
| Resource resource(textureId, pool, size, format);
|
| - m_resources.add(id, resource);
|
| + m_resources[id] = resource;
|
| return id;
|
| }
|
|
|
| @@ -196,7 +192,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createBitmap(int pool, const
|
|
|
| ResourceId id = m_nextId++;
|
| Resource resource(pixels, pool, size, GraphicsContext3D::RGBA);
|
| - m_resources.add(id, resource);
|
| + m_resources[id] = resource;
|
| return id;
|
| }
|
|
|
| @@ -207,7 +203,7 @@ CCResourceProvider::ResourceId CCResourceProvider::createResourceFromExternalTex
|
| ResourceId id = m_nextId++;
|
| Resource resource(textureId, 0, IntSize(), 0);
|
| resource.external = true;
|
| - m_resources.add(id, resource);
|
| + m_resources[id] = resource;
|
| return id;
|
| }
|
|
|
| @@ -216,11 +212,7 @@ void CCResourceProvider::deleteResource(ResourceId id)
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(!resource->lockedForWrite);
|
| ASSERT(!resource->lockForReadCount);
|
| ASSERT(!resource->markedForDeletion);
|
| @@ -234,11 +226,7 @@ void CCResourceProvider::deleteResource(ResourceId id)
|
|
|
| void CCResourceProvider::deleteResourceInternal(ResourceMap::iterator it)
|
| {
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| if (resource->glId && !resource->external) {
|
| WebGraphicsContext3D* context3d = m_context->context3D();
|
| ASSERT(context3d);
|
| @@ -247,7 +235,7 @@ void CCResourceProvider::deleteResourceInternal(ResourceMap::iterator it)
|
| if (resource->pixels)
|
| delete resource->pixels;
|
|
|
| - m_resources.remove(it);
|
| + m_resources.erase(it);
|
| }
|
|
|
| void CCResourceProvider::deleteOwnedResources(int pool)
|
| @@ -255,13 +243,8 @@ void CCResourceProvider::deleteOwnedResources(int pool)
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceIdArray toDelete;
|
| for (ResourceMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) {
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - if (it->value.pool == pool && !it->value.external && !it->value.markedForDeletion)
|
| - toDelete.append(it->key);
|
| -#else
|
| - if (it->second.pool == pool && !it->second.external && !it->value.markedForDeletion)
|
| + if (it->second.pool == pool && !it->second.external && !it->second.markedForDeletion)
|
| toDelete.append(it->first);
|
| -#endif
|
| }
|
| for (ResourceIdArray::iterator it = toDelete.begin(); it != toDelete.end(); ++it)
|
| deleteResource(*it);
|
| @@ -271,11 +254,7 @@ CCResourceProvider::ResourceType CCResourceProvider::resourceType(ResourceId id)
|
| {
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| return resource->type;
|
| }
|
|
|
| @@ -284,11 +263,7 @@ void CCResourceProvider::upload(ResourceId id, const uint8_t* image, const IntRe
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(!resource->lockedForWrite);
|
| ASSERT(!resource->lockForReadCount);
|
| ASSERT(!resource->external);
|
| @@ -342,11 +317,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForRead(ResourceId i
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
|
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(!resource->lockedForWrite);
|
| ASSERT(!resource->exported);
|
| resource->lockForReadCount++;
|
| @@ -358,11 +329,7 @@ void CCResourceProvider::unlockForRead(ResourceId id)
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(resource->lockForReadCount > 0);
|
| ASSERT(!resource->exported);
|
| resource->lockForReadCount--;
|
| @@ -373,11 +340,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForWrite(ResourceId
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(!resource->lockedForWrite);
|
| ASSERT(!resource->lockForReadCount);
|
| ASSERT(!resource->exported);
|
| @@ -391,11 +354,7 @@ void CCResourceProvider::unlockForWrite(ResourceId id)
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &it->value;
|
| -#else
|
| Resource* resource = &it->second;
|
| -#endif
|
| ASSERT(resource->lockedForWrite);
|
| ASSERT(!resource->exported);
|
| ASSERT(!resource->external);
|
| @@ -517,7 +476,7 @@ int CCResourceProvider::createChild(int pool)
|
| Child childInfo;
|
| childInfo.pool = pool;
|
| int child = m_nextChild++;
|
| - m_children.add(child, childInfo);
|
| + m_children[child] = childInfo;
|
| return child;
|
| }
|
|
|
| @@ -526,12 +485,8 @@ void CCResourceProvider::destroyChild(int child)
|
| ASSERT(CCProxy::isImplThread());
|
| ChildMap::iterator it = m_children.find(child);
|
| ASSERT(it != m_children.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - deleteOwnedResources(it->value.pool);
|
| -#else
|
| deleteOwnedResources(it->second.pool);
|
| -#endif
|
| - m_children.remove(it);
|
| + m_children.erase(it);
|
| trimMailboxDeque();
|
| }
|
|
|
| @@ -540,11 +495,7 @@ const CCResourceProvider::ResourceIdMap& CCResourceProvider::getChildToParentMap
|
| ASSERT(CCProxy::isImplThread());
|
| ChildMap::const_iterator it = m_children.find(child);
|
| ASSERT(it != m_children.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - return it->value.childToParentMap;
|
| -#else
|
| return it->second.childToParentMap;
|
| -#endif
|
| }
|
|
|
| CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToParent(const ResourceIdArray& resources)
|
| @@ -560,11 +511,7 @@ CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToPa
|
| for (ResourceIdArray::const_iterator it = resources.begin(); it != resources.end(); ++it) {
|
| TransferableResource resource;
|
| if (transferResource(context3d, *it, &resource)) {
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - m_resources.find(*it)->value.exported = true;
|
| -#else
|
| m_resources.find(*it)->second.exported = true;
|
| -#endif
|
| list.resources.append(resource);
|
| }
|
| }
|
| @@ -583,18 +530,15 @@ CCResourceProvider::TransferableResourceList CCResourceProvider::prepareSendToCh
|
| // FIXME: Implement this path for software compositing.
|
| return list;
|
| }
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Child& childInfo = m_children.find(child)->value;
|
| -#else
|
| Child& childInfo = m_children.find(child)->second;
|
| -#endif
|
| for (ResourceIdArray::const_iterator it = resources.begin(); it != resources.end(); ++it) {
|
| TransferableResource resource;
|
| if (!transferResource(context3d, *it, &resource))
|
| ASSERT_NOT_REACHED();
|
| - resource.id = childInfo.parentToChildMap.get(*it);
|
| - childInfo.parentToChildMap.remove(*it);
|
| - childInfo.childToParentMap.remove(resource.id);
|
| + ASSERT(childInfo.parentToChildMap.find(*it) != childInfo.parentToChildMap.end());
|
| + resource.id = childInfo.parentToChildMap[*it];
|
| + childInfo.parentToChildMap.erase(*it);
|
| + childInfo.childToParentMap.erase(resource.id);
|
| list.resources.append(resource);
|
| deleteResource(*it);
|
| }
|
| @@ -620,11 +564,7 @@ void CCResourceProvider::receiveFromChild(int child, const TransferableResourceL
|
| // (and is simpler) to wait.
|
| GLC(context3d, context3d->waitSyncPoint(resources.syncPoint));
|
| }
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Child& childInfo = m_children.find(child)->value;
|
| -#else
|
| Child& childInfo = m_children.find(child)->second;
|
| -#endif
|
| for (Vector<TransferableResource>::const_iterator it = resources.resources.begin(); it != resources.resources.end(); ++it) {
|
| unsigned textureId;
|
| GLC(context3d, textureId = context3d->createTexture());
|
| @@ -632,10 +572,10 @@ void CCResourceProvider::receiveFromChild(int child, const TransferableResourceL
|
| GLC(context3d, context3d->consumeTextureCHROMIUM(GraphicsContext3D::TEXTURE_2D, it->mailbox.name));
|
| ResourceId id = m_nextId++;
|
| Resource resource(textureId, childInfo.pool, it->size, it->format);
|
| - m_resources.add(id, resource);
|
| + m_resources[id] = resource;
|
| m_mailboxes.append(it->mailbox);
|
| - childInfo.parentToChildMap.add(id, it->id);
|
| - childInfo.childToParentMap.add(it->id, id);
|
| + childInfo.parentToChildMap[id] = it->id;
|
| + childInfo.childToParentMap[it->id] = id;
|
| }
|
| }
|
|
|
| @@ -652,11 +592,7 @@ void CCResourceProvider::receiveFromParent(const TransferableResourceList& resou
|
| for (Vector<TransferableResource>::const_iterator it = resources.resources.begin(); it != resources.resources.end(); ++it) {
|
| ResourceMap::iterator mapIterator = m_resources.find(it->id);
|
| ASSERT(mapIterator != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - Resource* resource = &mapIterator->value;
|
| -#else
|
| Resource* resource = &mapIterator->second;
|
| -#endif
|
| ASSERT(resource->exported);
|
| resource->exported = false;
|
| GLC(context3d, context3d->bindTexture(GraphicsContext3D::TEXTURE_2D, resource->glId));
|
| @@ -672,11 +608,7 @@ bool CCResourceProvider::transferResource(WebGraphicsContext3D* context, Resourc
|
| ASSERT(CCProxy::isImplThread());
|
| ResourceMap::const_iterator it = m_resources.find(id);
|
| CHECK(it != m_resources.end());
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - const Resource* source = &it->value;
|
| -#else
|
| const Resource* source = &it->second;
|
| -#endif
|
| ASSERT(!source->lockedForWrite);
|
| ASSERT(!source->lockForReadCount);
|
| ASSERT(!source->external);
|
| @@ -704,27 +636,15 @@ void CCResourceProvider::trimMailboxDeque()
|
| size_t maxMailboxCount = 0;
|
| if (m_context->capabilities().hasParentCompositor) {
|
| for (ResourceMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) {
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - if (!it->value.exported && !it->value.external)
|
| -#else
|
| if (!it->second.exported && !it->second.external)
|
| -#endif
|
| ++maxMailboxCount;
|
| }
|
| } else {
|
| base::hash_set<int> childPoolSet;
|
| for (ChildMap::iterator it = m_children.begin(); it != m_children.end(); ++it)
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - childPoolSet.insert(it->value.pool);
|
| -#else
|
| childPoolSet.insert(it->second.pool);
|
| -#endif
|
| for (ResourceMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) {
|
| -#if WTF_NEW_HASHMAP_ITERATORS_INTERFACE
|
| - if (ContainsKey(childPoolSet, it->value.pool))
|
| -#else
|
| if (ContainsKey(childPoolSet, it->second.pool))
|
| -#endif
|
| ++maxMailboxCount;
|
| }
|
| }
|
|
|