Commit Graph

1418 Commits

Author SHA1 Message Date
Ryan VanderMeulen
faaac1a61d Backed out changeset 37bee149c935 (bug 968520) for checktest failures. 2015-06-30 15:47:18 -04:00
Birunthan Mohanathas
ebd21e20f1 Bug 968520 - Add nsTArray::Assign. r=froydnj 2015-06-30 11:16:03 -07:00
Nicholas Nethercote
459a5b589b Bug 1176163 - Remove remaining uses of PL_DHashTableEnumerate() from xpcom/. r=froydnj.
--HG--
extra : rebase_source : 5e79d10647c138a28370d36d28a1c1227af8167b
2015-06-18 18:09:37 -07:00
Ryan VanderMeulen
bb011905c4 Bug 704368 - Re-enable test_nsIProcess_stress.js on Linux64 debug.
--HG--
extra : amend_source : 901edc75c301857b2eaa094920cf410f336003a0
2015-06-18 11:28:51 -04:00
Nicholas Nethercote
0d28f19c4a Bug 1173600 (part 3) - Add PLDHashTable::RemovingIterator. r=froydnj.
--HG--
extra : rebase_source : 1158e03a699987e366b46b9e045613f6b9fe1a59
2015-06-10 17:04:07 -07:00
Nicholas Nethercote
a1b715b5df 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

--HG--
extra : rebase_source : fa5cac2fc50b1ab7624030bced4763131280f4d8
2015-06-11 21:19:53 -07:00
Birunthan Mohanathas
53c8a09de0 Bug 968520 - Add mozilla::fallible to FallibleArray calls in tests. r=froydnj 2015-06-08 13:39:49 -07:00
Nikhil Marathe
f22c1bc30b Bug 1166504 - Make nsMultiplexInputStream cloneable. r=bkelly,froydnj
--HG--
extra : rebase_source : 50d88c93b4b8bab0d474002f6661432ad5357e43
2015-06-02 16:12:57 -07:00
Nicholas Nethercote
383a496bf6 Bug 1170416 (part 5) - Remove PLDHashTable::IsInitialized(). r=froydnj.
|mOps| is always non-null now, and there's no longer any distinction between
and uninitialized and initialized table. Yay.

--HG--
extra : rebase_source : 3d1fb72aee4dd21ff20db0ff3166d4e932ade897
2015-05-20 21:23:55 -07:00
Nicholas Nethercote
e849e6588b Bug 1170416 (part 3) - Remove the PLDHashTable2 typedef. r=froydnj.
--HG--
extra : rebase_source : 9510ea47204fffa163cac43aeaaac6ae1ad80419
2015-05-19 16:46:17 -07:00
Nicholas Nethercote
4c85dd6658 Bug 1168007 (part 11) - Use PLDHashTable2 exclusively in TestPLDHash. r=froydnj.
--HG--
extra : rebase_source : 5a7fdaf46f525b762a946f226b186c453bea2c53
2015-05-18 21:58:33 -07:00
Wes Kocher
ba06617421 Backed out changeset 47a103414177 (bug 1166504) for mochitest-e10s-4 permafail CLOSED TREE 2015-06-01 17:59:17 -07:00
Nikhil Marathe
f2fab68cc8 Bug 1166504 - Make nsMultiplexInputStream cloneable. r=bkelly,froydnj
--HG--
extra : rebase_source : cb6b530acf76e6414cd8d76aedd994b27effe069
2015-05-19 14:28:32 -07:00
Nicholas Nethercote
249958c03d Bug 1168007 (part 1) - Add PLDHashTable::{Clear,ClearAndPrepareForLength}(). r=froydnj.
--HG--
extra : rebase_source : 05445de53b178173bfbaed29095e0ca4c11639a2
2015-05-18 19:16:06 -07:00
Nicholas Nethercote
c1d4a47622 Bug 1165770 - Add PLDHashTable2. r=froydnj.
This is a temporary sub-class of PLDHashTable that will allow PLDHashTable to
be incrementally transitioned from manual initialization/finalization (via
explicit Init()/Fini() calls) to automatic initialization/finalization (via an
initializing constructor and a destructor). Once all PLDHashTable instances are
converted to PLDHashTable2, it can be folded back into PLDHashTable and the "2"
suffix can be dropped.

--HG--
extra : rebase_source : 674e7bd9320dc1db8879f842df05a7d995069e97
2015-05-18 00:52:01 -07:00
Nicholas Nethercote
eab9ff6d25 Back out all four patches from bug 1161377. r=me.
Due to Android startup regressions (bug 1163066) and plugin crashes (bug
1165155).

--HG--
extra : rebase_source : 380f79e67dff4c4eaa2614f286a4d0669666b652
2015-05-14 21:48:43 -07:00
Brian O'Keefe
c6ba641724 Bug 924187 - Deal with interfaces.manifest from the backend. r=mshal
--HG--
extra : rebase_source : 2d2cbc1ebc97496c54aef63de73b00af8126e750
2015-02-13 08:11:57 -05:00
Nicholas Nethercote
ba79e01ad2 Bug 1161377 (part 3, attempt 2) - Convert some easy PL_DHashTable{Init,Finish} cases. r=froydnj.
--HG--
extra : rebase_source : 990907701818b7da2b4e8955c419bb61130e266f
2015-05-12 17:33:26 -07:00
Mike Hommey
fe90037862 Bug 1043692 - Add a DIST_INSTALL variable to moz.build, and replace NO_DIST_INSTALL with it. r=gps 2015-05-12 07:55:21 +09:00
Nicholas Nethercote
0323a0a1b5 Backout c375efe78e07 (bug 1161377 part 3) for (probably) increasing the static constructor count and regressing Fennec start-up time. r=me. 2015-05-10 22:16:18 -07:00
JW Wang
45e92ea31f Bug 1161405. Part 2 - test case for parallelism of the thread pool. r=nfroyd. 2015-05-09 07:32:27 +08:00
Nicholas Nethercote
17348fdef0 Bug 1161377 (part 3) - Convert some easy PL_DHashTable{Init,Finish} cases. r=froydnj.
This patch converts easy cases, i.e. where the PL_DHashTableInit() call occurs
in a constructor and the PL_DHashTableFinish() call occurs in a destructor.
2015-05-04 22:59:24 -07:00
Nicholas Nethercote
77943547dc Bug 1161377 (part 2) - Remove PL_NewDHashTable() and PL_DHashTableDestroy(). r=froydnj.
They're not needed now that there is an initializing constructor and a
destructor.
2015-05-04 22:59:24 -07:00
Nicholas Nethercote
db496a806e Bug 1160436 - Fix PLDHashTable::operator=. r=froydnj.
This fixes the following problems with PLDHashTable::operator=:

- It doesn't handle self-assigments.

- It leaks the memory used by the assigned-to table.

- It doesn't leave the assigned-from table in a safely destructable state.

--HG--
extra : rebase_source : 433ac3418c00e3bb6d376982e4c679d27e42a377
2015-05-03 17:04:07 -07:00
Ehsan Akhgari
d2b480a8db Bug 1161240 - Make sure that NS_CloneInputStream correctly deals with null input; r=froydnj 2015-05-05 09:56:47 -04:00
Benjamin Smedberg
573f0e2266 Bug 1159737 Stop supporting binary XPCOM components except built into the application. r=froydnj sr=bz Some xpcshell tests of binary functionality need to register binary components. Expose a function "registerAppManifest" in the xpcshell environment to make this available to tests without exposing it to addons. r=bholley
--HG--
extra : rebase_source : 1bf47ad1cb8b662ff598c261dae872bc4710e170
2015-05-01 10:23:44 -04:00
Mike Hommey
924c9eb636 Bug 1134923 - Remove NS_Alloc/NS_Realloc/NS_Free. r=nfroyd
They are kept around for the sake of the standalone glue, which is used
for e.g. webapprt, which doesn't have direct access to jemalloc, and thus
still needs a wrapper to go through the xpcom function list and get to
jemalloc from there.
2015-05-01 09:40:30 +09:00
Nicholas Nethercote
c8ff2d51c8 Bug 1159972 - Remove the fallible version of PL_DHashTableInit(). r=froydnj.
It's no longer needed now that entry storage isn't allocated there. (The other
possible causes of failures in that function are less interesting and simply
crashing is a reasonable thing to do for them.)

This also makes PL_DNewHashTable() infallible, so I removed some
now-unnecessary checks of its result.

--HG--
extra : rebase_source : 4c6ab0c449bc18e8bace8bf036b5bd78d3a2f1c4
2015-04-29 16:38:29 -07:00
Nick Fitzgerald
b3ed721b3e Bug 1158257 - Gecko should always provide SpiderMonkey with a debuggerMallocSizeOf; r=mccr8 2015-04-27 10:58:24 -07:00
Botond Ballo
a24a854eb7 Bug 1156538 - Make nsTArray's move constructor implicit. r=froydnj
--HG--
extra : rebase_source : bbb820eb9078be5602496839aabcf8d400c8c806
extra : source : 76e5eb202aa0e3680c19b84ccaf3a0eea83e41ef
2015-04-20 18:42:56 -04:00
Denis Volk
32e981896d Bug 1095098 - move do_QueryObject templates into their own header; r=froydnj 2015-04-15 12:47:03 -04:00
Ehsan Akhgari
946466ced9 Fix a missing check in TestStrings.cpp, no bug 2015-04-18 20:51:01 -04:00
Ehsan Akhgari
46e47329c5 Back out bug 1149174 since it turns out that the nsTArray range iterators are not stable after all 2015-04-16 18:18:22 -04:00
Andrew McCreight
3bee6e09f9 Bug 1151541, part 3 - Fix leading tabs in xpcom/. r=froydnj 2015-04-09 10:25:05 -07:00
Andrew McCreight
1e0f87e27d Bug 1151541, part 2 - Fix mode lines in xpcom/. r=froydnj 2015-04-09 10:25:05 -07:00
Mike Hommey
b077d9624d Bug 1134920 - Use moz_xmalloc/moz_xrealloc/free instead of nsMemory::Alloc/Realloc/Free. r=nfroyd 2015-04-01 13:51:45 +09:00
Ehsan Akhgari
9968489cfa Bug 1149174 - Add a test to ensure that XPCOM nsTArray range iterators are stable; r=froydnj 2015-03-31 16:29:58 -04:00
Andrea Marchesini
e6f385fb3d Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Geoff Brown
13431d9251 Bug 1140148 - Update xpcshell test manifests for Android 4.3 emulator; r=dminor 2015-03-19 11:00:58 -06:00
Ben Kelly
e028338c3b Bug 1133939 P2 Add tests validating nsPipeOutputStream AsyncWait behavior. r=froydnj 2015-02-21 09:51:17 -05:00
Nicholas Nethercote
3aebac5d0d Bug 1142277 - Fix leak in failure path in TestPLDHash. r=erahm.
--HG--
extra : rebase_source : fbd5cf61033b9cffe099a6b216c41ae6a89b875e
2015-03-11 15:39:58 -07:00
Ehsan Akhgari
82fce30849 Bug 1140762 - Move TestThreads.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestThreads.cpp => xpcom/tests/gtest/TestThreads.cpp
2015-03-09 11:10:32 -04:00
Ehsan Akhgari
db5ec9921e Bug 1140760 - Move TestXPIDLString.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestXPIDLString.cpp => xpcom/tests/gtest/TestXPIDLString.cpp
2015-03-09 11:10:01 -04:00
Nicholas Nethercote
19fa938cf7 Bug 1050035 (part 1, attempt 2) - Lazily allocate PLDHashTable::mEntryStore. r=froydnj.
This makes zero-element hash tables, which are common, smaller, and also avoids
unnecessary malloc/free pairs.

I did some measurements during some basic browsing of a few sites. I found that
35% of all live tables were empty with a few tabs open. And cumulatively, for
the whole session, 45% of tables never had an element added to them.

--HG--
extra : rebase_source : 306bb50f250c09aa03a5e4822f41d6f605d76a1d
2015-02-01 14:56:33 -08:00
Ehsan Akhgari
c611e2a6a8 Backed out 2 changesets (bug 1133939) because of bug 1136453
Backed out changeset 212080d51fb7 (bug 1133939)
Backed out changeset 27de4b553912 (bug 1133939)
2015-02-25 13:26:41 -05:00
Ben Kelly
9f9db94841 Bug 1133939 P2 Add tests validating nsPipeOutputStream AsyncWait behavior. r=froydnj 2015-02-21 09:51:17 -05:00
Ryan VanderMeulen
34d6e2d69c Backed out changesets 4c2b179b71ae and c96050cdedd5 (bug 1133939) for asserts. 2015-02-20 20:00:19 -05:00
Ben Kelly
1eb9f13e73 Bug 1133939 P2 Add tests validating nsPipeOutputStream AsyncWait behavior. r=froydnj 2015-02-20 18:16:04 -05:00
Nicholas Nethercote
3a7b0a9f57 Bug 1131901 (part 1) - Make PL_DHashTableAdd() infallible by default, and add a fallible alternative. r=froydnj.
I kept all the existing PL_DHashTableAdd() calls fallible, in order to be
conservative, except for the ones in nsAtomTable.cpp which already were
followed immediately by an abort on failure.

--HG--
extra : rebase_source : 526d96ab65e4d7d71197b90d086d19fbdd79b7b5
2015-02-02 14:48:58 -08:00