mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-18 15:55:36 +00:00
Bug 1187137 (part 12) - Replace nsBaseHashtable::Enumerate() calls in netwerk/protocol/ with iterators. r=valentin.
--HG-- extra : rebase_source : 5adeeac7c622891a303c79b7d9814283a64972b0
This commit is contained in:
parent
43b9335159
commit
f852272c8b
@ -2044,22 +2044,14 @@ nsHttpConnectionMgr::ProcessSpdyPendingQ(nsConnectionEntry *ent)
|
||||
leftovers.Clear();
|
||||
}
|
||||
|
||||
PLDHashOperator
|
||||
nsHttpConnectionMgr::ProcessSpdyPendingQCB(const nsACString &key,
|
||||
nsAutoPtr<nsConnectionEntry> &ent,
|
||||
void *closure)
|
||||
{
|
||||
nsHttpConnectionMgr *self = (nsHttpConnectionMgr *) closure;
|
||||
self->ProcessSpdyPendingQ(ent);
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
|
||||
void
|
||||
nsHttpConnectionMgr::OnMsgProcessAllSpdyPendingQ(int32_t, ARefBase *)
|
||||
{
|
||||
MOZ_ASSERT(PR_GetCurrentThread() == gSocketThread);
|
||||
LOG(("nsHttpConnectionMgr::OnMsgProcessAllSpdyPendingQ\n"));
|
||||
mCT.Enumerate(ProcessSpdyPendingQCB, this);
|
||||
for (auto iter = mCT.Iter(); !iter.Done(); iter.Next()) {
|
||||
ProcessSpdyPendingQ(iter.Data());
|
||||
}
|
||||
}
|
||||
|
||||
nsHttpConnection *
|
||||
@ -3809,51 +3801,50 @@ nsConnectionEntry::MaxPipelineDepth(nsAHttpTransaction::Classifier aClass)
|
||||
return mGreenDepth;
|
||||
}
|
||||
|
||||
PLDHashOperator
|
||||
nsHttpConnectionMgr::ReadConnectionEntry(const nsACString &key,
|
||||
nsAutoPtr<nsConnectionEntry> &ent,
|
||||
void *aArg)
|
||||
{
|
||||
if (ent->mConnInfo->GetPrivate())
|
||||
return PL_DHASH_NEXT;
|
||||
|
||||
nsTArray<HttpRetParams> *args = static_cast<nsTArray<HttpRetParams> *> (aArg);
|
||||
HttpRetParams data;
|
||||
data.host = ent->mConnInfo->Origin();
|
||||
data.port = ent->mConnInfo->OriginPort();
|
||||
for (uint32_t i = 0; i < ent->mActiveConns.Length(); i++) {
|
||||
HttpConnInfo info;
|
||||
info.ttl = ent->mActiveConns[i]->TimeToLive();
|
||||
info.rtt = ent->mActiveConns[i]->Rtt();
|
||||
if (ent->mActiveConns[i]->UsingSpdy())
|
||||
info.SetHTTP2ProtocolVersion(ent->mActiveConns[i]->GetSpdyVersion());
|
||||
else
|
||||
info.SetHTTP1ProtocolVersion(ent->mActiveConns[i]->GetLastHttpResponseVersion());
|
||||
|
||||
data.active.AppendElement(info);
|
||||
}
|
||||
for (uint32_t i = 0; i < ent->mIdleConns.Length(); i++) {
|
||||
HttpConnInfo info;
|
||||
info.ttl = ent->mIdleConns[i]->TimeToLive();
|
||||
info.rtt = ent->mIdleConns[i]->Rtt();
|
||||
info.SetHTTP1ProtocolVersion(ent->mIdleConns[i]->GetLastHttpResponseVersion());
|
||||
data.idle.AppendElement(info);
|
||||
}
|
||||
for(uint32_t i = 0; i < ent->mHalfOpens.Length(); i++) {
|
||||
HalfOpenSockets hSocket;
|
||||
hSocket.speculative = ent->mHalfOpens[i]->IsSpeculative();
|
||||
data.halfOpens.AppendElement(hSocket);
|
||||
}
|
||||
data.spdy = ent->mUsingSpdy;
|
||||
data.ssl = ent->mConnInfo->EndToEndSSL();
|
||||
args->AppendElement(data);
|
||||
return PL_DHASH_NEXT;
|
||||
}
|
||||
|
||||
bool
|
||||
nsHttpConnectionMgr::GetConnectionData(nsTArray<HttpRetParams> *aArg)
|
||||
{
|
||||
mCT.Enumerate(ReadConnectionEntry, aArg);
|
||||
for (auto iter = mCT.Iter(); !iter.Done(); iter.Next()) {
|
||||
nsAutoPtr<nsConnectionEntry>& ent = iter.Data();
|
||||
|
||||
if (ent->mConnInfo->GetPrivate()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
HttpRetParams data;
|
||||
data.host = ent->mConnInfo->Origin();
|
||||
data.port = ent->mConnInfo->OriginPort();
|
||||
for (uint32_t i = 0; i < ent->mActiveConns.Length(); i++) {
|
||||
HttpConnInfo info;
|
||||
info.ttl = ent->mActiveConns[i]->TimeToLive();
|
||||
info.rtt = ent->mActiveConns[i]->Rtt();
|
||||
if (ent->mActiveConns[i]->UsingSpdy()) {
|
||||
info.SetHTTP2ProtocolVersion(
|
||||
ent->mActiveConns[i]->GetSpdyVersion());
|
||||
} else {
|
||||
info.SetHTTP1ProtocolVersion(
|
||||
ent->mActiveConns[i]->GetLastHttpResponseVersion());
|
||||
}
|
||||
data.active.AppendElement(info);
|
||||
}
|
||||
for (uint32_t i = 0; i < ent->mIdleConns.Length(); i++) {
|
||||
HttpConnInfo info;
|
||||
info.ttl = ent->mIdleConns[i]->TimeToLive();
|
||||
info.rtt = ent->mIdleConns[i]->Rtt();
|
||||
info.SetHTTP1ProtocolVersion(
|
||||
ent->mIdleConns[i]->GetLastHttpResponseVersion());
|
||||
data.idle.AppendElement(info);
|
||||
}
|
||||
for (uint32_t i = 0; i < ent->mHalfOpens.Length(); i++) {
|
||||
HalfOpenSockets hSocket;
|
||||
hSocket.speculative = ent->mHalfOpens[i]->IsSpeculative();
|
||||
data.halfOpens.AppendElement(hSocket);
|
||||
}
|
||||
data.spdy = ent->mUsingSpdy;
|
||||
data.ssl = ent->mConnInfo->EndToEndSSL();
|
||||
aArg->AppendElement(data);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -565,9 +565,6 @@ private:
|
||||
nsHttpTransaction *trans);
|
||||
|
||||
void ProcessSpdyPendingQ(nsConnectionEntry *ent);
|
||||
static PLDHashOperator ProcessSpdyPendingQCB(
|
||||
const nsACString &key, nsAutoPtr<nsConnectionEntry> &ent,
|
||||
void *closure);
|
||||
|
||||
// used to marshall events to the socket transport thread.
|
||||
nsresult PostEvent(nsConnEventHandler handler,
|
||||
@ -630,9 +627,6 @@ private:
|
||||
//
|
||||
nsClassHashtable<nsCStringHashKey, nsConnectionEntry> mCT;
|
||||
|
||||
static PLDHashOperator ReadConnectionEntry(const nsACString &key,
|
||||
nsAutoPtr<nsConnectionEntry> &ent,
|
||||
void *aArg);
|
||||
static PLDHashOperator RemoveDeadConnections(const nsACString &key,
|
||||
nsAutoPtr<nsConnectionEntry> &ent,
|
||||
void *aArg);
|
||||
|
Loading…
Reference in New Issue
Block a user