gecko/netwerk
Nicholas Nethercote c2df231328 Bug 1174625 - Overhaul PLDHashTable's iterator. r=froydnj.
This change splits PLDHashTable::Iterator::NextEntry() into two separate
functions, which allow you to get the current element and advance the iterator
separately, which means you can use a for-loop to iterate instead of a
while-loop.

As part of this change, the internals of PLDHashTable::Iterator were
significantly changed and simplified (and modelled after js::HashTable's
equivalent code). It's no longer duplicating code from PL_DHashTableEnumerator.
The chaos mode code was a casualty of this, but given how unreliable that code
has proven to be (see bug 1173212, bug 1174046) this is for the best. (We can
reimplement chaos mode once PLDHashTable::Iterator is back on more solid
footing again, if we think it's important.)

All these changes will make it much easier to add an alternative Iterator that
removes elements, which was turning out to be difficult with the prior code.

In order to make the for-loop header usually fit on a single line, I
deliberately renamed a bunch of things to have shorter names.

In summary, you used to write this:

  PLDHashTable::Iterator iter(&table);
  while (iter.HasMoreEntries()) {
    auto entry = static_cast<FooEntry*>(iter.NextEntry());
    // ... do stuff with |entry| ...
  }
  // iter's scope extends beyond here

and now you write this:

  for (auto iter = table.Iter(); !iter.Done(); iter.Next()) {
    auto entry = static_cast<FooEntry*>(iter.Get());
    // ... do stuff with |entry| ...
  }
  // iter's scope doesn't reach here
2015-06-11 21:19:53 -07:00
..
base Bug 1174625 - Overhaul PLDHashTable's iterator. r=froydnj. 2015-06-11 21:19:53 -07:00
build Bug 1036275 - Add Packaged App Service r=honzab 2015-06-03 01:46:15 +03:00
cache Bug 1174625 - Overhaul PLDHashTable's iterator. r=froydnj. 2015-06-11 21:19:53 -07:00
cache2 Bug 1151812 - Add telemetry to find optimal cache entry hash size, r=honzab 2015-06-14 14:13:18 +02:00
cookie Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
dns Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
ipc Backed out changeset 068df0223a6c (bug 1125961) for e10s crashes. 2015-06-15 15:27:53 -04:00
locales
mime Bug 1089255 - Implement and test manifest-src CSP directive. r=bholley, r=dveditz, r=ckerschb 2015-06-02 15:42:19 -04:00
protocol Bug 1171127 - Listeners are not released in OnStopRequest in e10s mode. r=jduell 2015-06-15 02:39:29 +03:00
sctp Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
socket Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
srtp Bug 1123527 - Fix syntax error when ERR_REPORTING_SYSLOG is defined. r=jesup. 2015-01-21 22:21:31 -08:00
standalone Bug 991983 - Define SOURCES as SourcePath. r=gps 2015-05-28 07:34:15 +09:00
streamconv Bug 1171016 - Initialize the linelen variable at its declaration in ParseFTPList.cpp. r=mcmanus 2015-06-11 11:47:00 -04:00
system Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
test Bug 1164714 - Move netwerk/test/TestSTSParser.cpp into security/manager/ssl/tests/. r=keeler 2015-06-14 21:37:12 -07:00
wifi Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj 2015-06-03 15:25:57 -07:00
Makefile.in
moz.build Bug 1097804 - Part 1 - Create a library containing nsISocketTransportService and nsIDNS that can be used to support standalone WebRTC. r=mcmanus 2015-04-03 15:54:00 +02:00
necko-config.h.in