Commit Graph

721 Commits

Author SHA1 Message Date
Ben Kelly
c1651128c6 Bug 1100398 P4 Make nsPipeInputStream cloneable. r=froydnj 2015-02-10 23:55:43 -05:00
Ben Kelly
65b6d3cb3e Bug 1100398 P3 Make nsStorageStream's input streams cloneable. r=froydnj 2015-02-10 23:55:43 -05:00
Ben Kelly
d38f4641c3 Bug 1100398 P2 Make nsStringInputStream cloneable. r=froydnj 2015-02-10 23:55:43 -05:00
Ben Kelly
7f8ecbcda1 Bug 1100398 P0 Break out helper routines to support gtests for more stream types. r=froydnj 2015-02-10 23:55:43 -05:00
Nicholas Nethercote
a3bfc736ba Back out changesets 2fcef6b54be7, 2be07829fefc, 66dfe37b8532, df3fcd2be8fd, 0a436bce77a6 (bug 1050035) for causing intermittent crashes and assertion failures. 2015-02-10 14:39:49 -08:00
Nicholas Nethercote
a40419dc43 Bug 1050035 (part 4) - 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.
2015-02-02 14:48:58 -08:00
Nicholas Nethercote
3aa6fd7b3d Bug 1050035 (part 3) - Remove PL_NewDHashTable() and PL_DHashTableDestroy(). r=froydnj.
Because they are now just equivalent to |new PLDHashTable()| +
PL_DHashTableInit() and PL_DHashTableFinish(t) + |delete t|, respectively.

They're only used in a handful of places and obscure things more than they
clarify -- I only recently worked out exactly how they different from Init()
and Finish().
2015-02-01 20:36:52 -08:00
Nicholas Nethercote
a5bbfabc46 Bug 1050035 (part 2) - Remove the fallible version of PL_DHashTableInit(). r=froydnj,mrbkap.
Because it's no longer needed now that entry storage isn't allocated there.
(The other possible causes of failures are much less interesting and simply
crashing is a reasonable thing to do for them.)

This also makes PL_DNewHashTable() infallible.
2015-02-01 20:19:08 -08:00
Nicholas Nethercote
47a06e67ef Bug 1050035 (part 1) - 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.

There is more to be done w.r.t. simplifying initialization, which will occur in
the next patch.
2015-02-01 14:56:33 -08:00
Mike Hommey
50e6916b40 Bug 1126593 - Add a global fallible instance, so that using fallible works directly, everywhere. r=njn 2015-02-02 09:56:13 +09:00
Ehsan Akhgari
b33de33536 Bug 1126301 - Move TestUTF.cpp to gtest and enable it; r=froydnj 2015-01-27 12:38:44 -05:00
Ehsan Akhgari
83c156b615 Backed out changeset 186127d71076 (bug 1126295) because of test bustage on Windows on a CLOSED TREE 2015-01-27 13:47:44 -05:00
Ehsan Akhgari
9a7d9f5c82 Backed out 2 changesets (bug 1126301) on a CLOSED TREE because the test was apparently busted on some platforms
Backed out changeset 4aecd46afeb1 (bug 1126301)
Backed out changeset c61a87a20888 (bug 1126301)
2015-01-27 13:44:15 -05:00
Ehsan Akhgari
4cca8242d2 Bug 1126301 follow-up: Fix a signed/unsigned comparison fatal warning, landed on a CLOSED TREE 2015-01-27 12:56:15 -05:00
Ehsan Akhgari
d61bc0df78 Bug 1126301 - Move TestUTF.cpp to gtest and enable it; r=froydnj 2015-01-27 12:38:44 -05:00
Ehsan Akhgari
8fa1e0b040 Bug 1126295 - Move TestAtoms.cpp to gtest and enable it; r=froydnj 2015-01-27 09:28:45 -05:00
Ehsan Akhgari
9c2d9c76ee Bug 1125138 - Move TestTimeStamp.cpp to gtest and enable it; r=froydnj 2015-01-26 17:08:24 -05:00
Ehsan Akhgari
cd25a35594 Bug 1125559 - Move TestThreadPool.cpp to gtest and enable it; r=froydnj 2015-01-26 20:49:22 -05:00
Wes Kocher
cdb6b3adeb Backed out changeset 67496f44f461 (bug 1125138) for checktest failures 2015-01-26 16:14:06 -08:00
Wes Kocher
b893d4dece Backed out changeset 8ae4f78d7e25 (bug 1125559) for checktest orange 2015-01-26 15:18:50 -08:00
Ehsan Akhgari
d6019b0b5d Bug 1125559 - Move TestThreadPool.cpp to gtest and enable it; r=froydnj 2015-01-26 17:10:09 -05:00
Ehsan Akhgari
f97b0b0d4d Bug 1125138 - Move TestTimeStamp.cpp to gtest and enable it; r=froydnj 2015-01-26 17:08:24 -05:00
Ehsan Akhgari
c171b42c46 Remove TestTArray from the list of disabled XPCOM tests, because it's not disabled, no bug, DONTBUILD 2015-01-23 09:38:42 -05:00
Ehsan Akhgari
28e46d3358 Bug 1124058 - Move TestSynchronization.cpp to gtest and enable it; r=froydnj 2015-01-21 22:42:38 -05:00
Ehsan Akhgari
821fca39c5 Bug 1124048 - Move TestStorageStream.cpp to gtest and enable it; r=froydnj 2015-01-21 11:29:20 -05:00
Ehsan Akhgari
ebf95a51c9 Bug 1124047 - Move TestPriorityQueue.cpp to gtest and enable it; r=froydnj 2015-01-21 11:25:34 -05:00
Ehsan Akhgari
82bb821bec Bug 1124041 - Move TestPipes.cpp to gtest and enable it; r=froydnj 2015-01-21 11:21:10 -05:00
Nicholas Nethercote
9a918a72c0 Bug 1123151 (part 2) - Add PLDHashTable::IsInitialized(). r=froydnj.
This encapsulates most of the uses of PLDHashTable::ops.
2015-01-19 16:11:34 -08:00
Nicholas Nethercote
fa52a2c4c9 Bug 1123151 (part 1) - Set PLDHashTable::ops consistently. r=froydnj.
Currently the setting of PLDHashTable::ops is very haphazard.

- PLDHashTable has no constructor, so it's not auto-nulled, so lots of places
  null it themselves.

- In the fallible PLDHashTable::Init() function, if the entry storage
  allocation fails we'll be left with a table that has |ops| set -- indicating
  it's been initialized -- but has null entry storage. I'm not certain this can
  cause problems but it feels unsafe, and some (but not all) callers of Init()
  null it on failure.

- PLDHashTable does not null |ops| in Finish(), so some (but not all) callers
  do this themselves.

This patch makes things simpler.

- It adds a constructor that zeroes |ops|.

- It modifies Init() so that it only sets |ops| once success is ensured.

- It zeroes |ops| in Finish().

- Finally, it removes all the now-unnecessary |ops| nulling done by the users
  of PLDHashTable.
2015-01-19 16:01:24 -08:00
Christoph Kerschbaumer
6a281b98c4 Bug 1119006 - Remove files where code is still calling removed NS_OpenURI API (r=mcmanus) 2015-01-14 11:52:57 -08:00
Nicholas Nethercote
14f46aac14 Bug 1121304 (part 2, attempt 2) - Remove PLDHashTableOps::{alloc,free}Table. r=froydnj. 2015-01-14 14:35:56 -08:00
Phil Ringnalda
cb85f01b15 Backed out 2 changesets (bug 1121304) for consistent b2g hangs in webgl-color-test.html?frame=1&__&preserve&premult&_____
Backed out changeset 20651ac19549 (bug 1121304)
Backed out changeset 758afec77c95 (bug 1121304)
2015-01-14 22:02:23 -08:00
Nicholas Nethercote
60d7115c86 Bug 1121304 (part 2) - Remove PLDHashTableOps::{alloc,free}Table. r=froydnj. 2015-01-14 14:35:56 -08:00
Nicholas Nethercote
c4c1173204 Bug 1120476 (part 4) - Remove PLDHashTableOps::finalize. r=froydnj. 2015-01-13 19:02:35 -08:00
Nicholas Nethercote
7c92773a6f Bug 1120476 (part 3) - Remove PLDHashTable::data. r=froydnj. 2015-01-13 16:42:13 -08:00
Ehsan Akhgari
f187581528 Bug 1119254 - Mark virtual overridden functions as MOZ_OVERRIDE in xpcom; r=froydnj 2015-01-08 10:58:39 -05:00
Michael Pruett
5a6ab9e26e Bug 1118024 - Add explicit PL_DHashTable{Add,Lookup,Remove} functions. r=nfroyd 2015-01-05 20:26:50 -06:00
Ehsan Akhgari
3799d571b8 Bug 1114999 - Part 2: Apply MOZ_NO_ADDREF_RELEASE_ON_RETURN to all smart pointer arrow operators that can return refcounted objects; r=jrmuizel 2015-01-06 16:30:03 -05:00
Ehsan Akhgari
213d9b2833 Bug 1117211 - Move the XPCOM gtests temporarily placed in xpcom/glue/tests/gtest into xpcom/test/gtest now that it exists; r=froydnj 2015-01-05 11:30:36 -05:00
Ehsan Akhgari
61fc99a4ee Bug 1117035 - Mark virtual overridden functions as MOZ_OVERRIDE in XPCOM; r=froydnj 2015-01-05 11:25:41 -05:00
Christoph Kerschbaumer
d8823fbc59 Bug 1093948: Make JS callers of ios.newChannel call ios.newChannel2 in xpcom/ (r=bsmedberg) 2014-12-29 12:37:15 -08:00
Chris Peterson
e56f788c56 Bug 1110031 - Part 1: Mark more directories as FAIL_ON_WARNINGS. r=gps 2014-12-10 22:56:31 -08:00
Ehsan Akhgari
8c71aed1e0 Bug 1111224 - Move TestExpirationTracker.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestExpirationTracker.cpp => xpcom/glue/tests/gtest/TestExpirationTracker.cpp
extra : rebase_source : 3961e36029257b2e923fe6597aadf684f93fcc41
2014-12-15 15:43:22 -05:00
Wes Kocher
aa564b4488 Backed out changeset c6287220baaf (bug 1111224) for Windows build bustage on a CLOSED TREE
--HG--
rename : xpcom/glue/tests/gtest/TestExpirationTracker.cpp => xpcom/tests/TestExpirationTracker.cpp
2014-12-15 14:55:09 -08:00
Ehsan Akhgari
21c5ccfd08 Bug 1111224 - Move TestExpirationTracker.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestExpirationTracker.cpp => xpcom/glue/tests/gtest/TestExpirationTracker.cpp
extra : rebase_source : 6c7ef5eccec61e97aef7e85195c01b11b8ff2f91
2014-12-15 15:43:22 -05:00
Ehsan Akhgari
89279ec607 Bug 1111152 - Move TestEncoding.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestEncoding.cpp => xpcom/glue/tests/gtest/TestEncoding.cpp
extra : rebase_source : 4beccae061390e7b4dd6ba45113daea43865c63d
2014-12-15 15:42:41 -05:00
Ehsan Akhgari
7a8c5fecc7 Bug 1111151 - Move TestCRT.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestCRT.cpp => xpcom/glue/tests/gtest/TestCRT.cpp
extra : rebase_source : 95297289071d49a160cfd79a609ba81d3aaf994c
2014-12-15 15:41:37 -05:00
Ehsan Akhgari
0287e573b6 Bug 1111149 - Move TestArray.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestArray.cpp => xpcom/glue/tests/gtest/TestArray.cpp
extra : rebase_source : 204c2aa966c3df9949efa182e865de404256f386
2014-12-15 15:39:28 -05:00
Ehsan Akhgari
7fb49d9a87 Bug 1110956 - Port TestStrings.cpp to gtest and enable it; r=froydnj
--HG--
rename : xpcom/tests/TestStrings.cpp => xpcom/glue/tests/gtest/TestStrings.cpp
extra : rebase_source : 07362a75215f15211a6ef9989a555dff5a7b5a23
2014-12-12 19:05:10 -05:00
Ehsan Akhgari
1576e9507a Bug 1101337 - Make the ReplaceSubstring() XPCOM string API linear; r=froydnj
ReplaceSubstring() is an O(n*m) algorithm (n being the length of the
string and m being the number of occurrences of aTarget) because we have
to move the remainder of the string, search it again and potentially
memmove most of it again as we find more matches.  This patch rewrites
that function to make it O(n+m).

Note that we currently don't build TestStrings.cpp, so the test case in
this patch is not run automatically, but the test case has been verified
to pass separately by moving the test function into Gecko and calling it
during startup and stepping through it in the debugger.

--HG--
extra : rebase_source : b020e17c1973330b0dbbd6bf956c073cfdcb775e
2014-12-12 18:57:09 -05:00