Commit Graph

5844 Commits

Author SHA1 Message Date
Nicholas Nethercote
74f1b127f3 Bug 1131901 (part 2) - Make CCGraphBuilder::AddNode() infallible. r=mccr8. 2015-02-02 23:58:42 -08:00
Nicholas Nethercote
09156539d5 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.
2015-02-02 14:48:58 -08:00
Ben Kelly
2b0ffce836 Bug 1100398 P5 Provide NS_CloneInputStream() factory method in nsStreamUtils.h. r=froydnj 2015-02-10 23:55:43 -05:00
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
a4ec611b4f Bug 1100398 P1 Add the nsICloneableInputStream interface. 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
Nathan Froyd
d00f3c3065 Bug 1036515 - narrow the scope of unlocking mMonitor in nsTimerImpl::PostTimerEvents; r=bsmedberg 2015-02-06 16:19:36 -05:00
Andrew McCreight
c946357872 Bug 1131199, part 2 - Make PLDHashtInitEntry infallible. r=froydnj
Also, drop the unused table argument.
2015-02-11 09:46:40 -08: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
Bobby Holley
9289af1f68 Bug 1129877 - Add a templatized move constructor for nsRefPtr. v1 r=froydnj 2015-02-10 13:45:02 -08:00
L. David Baron
758cb58c30 Bug 680547 bustage fix: Make #pragmas be #ifndef __clang__. No review. 2015-02-10 16:24:54 +11:00
L. David Baron
562f07be92 Bug 680547 - Compile Linux 64-bit NS_InvokeByIndex with -mno-avx to allow compiling with -march=native on new hardware, or similar -march flags. r=froydnj
As explained in bug 1111355, having avx enabled appears to change the
alignment behavior of alloca (apparently adding an extra 16 bytes) of
padding/alignment (and using 32-byte alignment instead of 16-byte).  The
suggestion of using __bultin_alloca_with_align in bug 1111355 didn't fix
the problem, so this seems to be the best available workaround, given
that this code, which should perhaps better be written in assembly, is
written in C++.

Interestingly, this is NOT fixed by #pragma GCC target ("arch=x86-64").
(I determined the (undocumented) name for the default -march value on
x86_64 from the gcc source code (gcc/config/i386/i386.c, function
ix86_option_override_internal, code that sets opts->x_ix86_arch_string .)
I confirmed that this sets the same macros based on the empty diff
between the output of 'gcc -E -dM -x c++ /dev/null' and 'gcc -E -dM -x
c++ -march=x86-64 /dev/null', which was not an empty diff for other
-march values (e.g., k8).)

I confirmed that the push_options and pop_options actually work by
putting the push/pop pair around a different (earlier) function, and
testing that this did not fix the bug (with the pop_options before
NS_InvokeByIndex).

See the gcc documentation at:
https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Function-Specific-Option-Pragmas.html
https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Function-Attributes.html
https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/i386-and-x86-64-Options.html
2015-02-10 16:04:46 +11:00
Nicholas Nethercote
ee41df7dc2 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo. 2015-02-09 14:34:50 -08:00
Andrew McCreight
1ee96e7527 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Andrew McCreight
f3dd98b6fc Back out Bug 1127201 (part 3) for various problems. 2015-02-06 15:04:00 -08:00
Andrew McCreight
7c2c57efdf Bug 1125005 - Change the reentrance assertion in IncrementalFinalizeRunnable to a warning. r=smaug 2015-02-06 09:54:21 -08:00
Dhi Aurrahman
a3d52372b7 Bug 1125766 - Throw proper error types for TextEncoder(), TextDecoder() and TextDecoder.decode(). r=bz 2015-02-04 18:46:26 +07:00
Wes Kocher
ec2159dddd Merge inbound to m-c a=merge CLOSED TREE 2015-02-05 16:55:01 -08:00
Dave Townsend
121d197d22 Bug 1083281: Use flags to determine which chrome and about URIs are loaded in the content process. r=mconley, r=bsmedberg, r=jduell, r=mratcliffe 2015-02-05 08:09:15 -08:00
Nicholas Nethercote
aa8347555e Bug 1127201 (part 3) - Remove the NS_ABORT_IF_FALSE macro. r=Waldo. 2015-02-04 20:07:09 -08:00
Nicholas Nethercote
0a02b5d31c Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo. 2015-02-04 20:05:36 -08:00
Nicholas Nethercote
96047a2559 Bug 1050035 (part 5) - Make CCGraphBuilder::AddNode() infallible. r=mccr8. 2015-02-02 23:58:42 -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
Xidorn Quan
1aa524cf40 Bug 1127045 part 3 - Make nsTArray support reverse iterating. r=froydnj 2015-02-04 19:07:32 +11:00
Xidorn Quan
901d25c409 Bug 1126552 part 1 - Make nsTArray support range-based for loops. r=froydnj 2015-02-04 19:07:32 +11:00
Xidorn Quan
3f8ebecfd2 Bug 1126552 part 0 - Rename end to iend to avoid shadowing warnings. r=froydnj 2015-02-04 19:07:32 +11:00
Nicholas Nethercote
e6990105a1 Bug 1127401 - Tweak PL_DHashTableSearch() to counter a Fennec regression. r=froydnj.
PL_DHashTableLookup() had the same return protocol as SearchTable(), which
meant that compilers could generate a tail call from the former to the latter.
Bug 1124973 replaced PL_DHashTableLookup() with PL_DHashTableSearch(), which
has a slightly different return protocol, and so the tail call was lost. This
appears to be the cause of the Fennec performance regression.

This patch splits SearchTable() in two (using templates to avoid explicit code
duplication). SearchTable<false>() now has the same return protocol as
PL_DHashTableSearch(), and so the tail call can now be used again.
2015-01-29 20:18:28 -08:00
Masatoshi Kimura
5572f00123 Bug 1128273 - Stop using |typedef enum class tag_nsresult { ... } nsresult;| trick. r=froydnj 2015-02-02 23:44:25 +09: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
Masatoshi Kimura
6886b98ce2 Bug 1126269 - Part 3: Always use the C++11 enum class for nsresult. r=froydnj 2015-01-30 08:53:47 +09:00
Jim Mathies
10c39bd123 Bug 1095754 - Miscellaneous code cleanup nits found along the way. r=me 2015-01-29 13:41:57 -06:00
Daniel Holbert
4db8bfed6b Bug 1126808: Mark xpcom/build as FAIL_ON_WARNINGS. r=froydnj 2015-01-29 00:38:15 -08:00
Nicholas Nethercote
757d308bee Bug 1126546 - Make PLDHashTable::keyHash private. r=froydnj.
As well as renaming and privatizing |keyHash|, this patch also:

- renames GetKeyHash() to ComputeKeyHash(), which better indicates it's not
  some kind of getter function; and

- makes PLDHashEntryStub inherit from PLDHashEntryHdr, for consistency with
  everywhere else.
2015-01-28 21:33:38 -08:00
Daniel Holbert
3deb8a3c70 Bug 1126923: #undef HAVE_STDINT_H (provided by mozilla-config.h) before including vpx headers, since they redefine it. r=froydnj 2015-01-28 19:01:46 -08:00
Ben Kelly
ba50801a60 Bug 1126985 Fix xpcom/base build with --enable-warnings-on-errors. r=froydnj 2015-01-28 15:11:18 -05:00
Daniel Holbert
edf3e9c7c3 Bug 1126790: Move MainThreadIOLoggerImpl into anonymous namespace (joining a type used in one of its fields), to fix gcc warning. r=froydnj 2015-01-28 09:40:28 -08:00
Nicholas Nethercote
5ba0f3038f Bug 1124973 (part 7) - Remove PL_DHashTableLookup. r=froydnj.
This patch:

- Removes PL_DHashTableLookup().

- Removes PL_DHASH_ENTRY_IS_BUSY(). It's barely used and
  PL_DHASH_ENTRY_IS_FREE() suffices.

- Removes a non-useful, non-sequitur comment ("However, use...").
2015-01-26 16:02:05 -08:00
Nicholas Nethercote
d761b24aaf Bug 1124973 (part 2) - Introduce PL_DHashTableSearch(), and replace most PL_DHashTableLookup() calls with it. r=froydnj.
It feels safer to use a function with a new name, rather than just changing the
behaviour of the existing function.

For most of these cases the PL_DHashTableLookup() result was checked with
PL_DHASH_ENTRY_IS_{FREE,BUSY} so the conversion was easy. A few of them
preceded that check with a useless null check, but the intent of these was
still easy to determine.

I'll do the trickier ones in subsequent patches.
2015-01-22 21:06:55 -08:00
Nicholas Nethercote
9bdf24924f Bug 1124973 (part 1) - Always use inheritance rather than composition for PLDHashTable entries. r=froydnj.
Because (a) this is how it's usually done, (b) it allows static_cast<> instead
of reinterpret_cast<>, and (c) it will make subsequent patches easier.
2015-01-22 21:05:52 -08:00
Xidorn Quan
2adee85ec4 Bug 1124029 - Fix 64bit shift warning in nsVoidArray. r=froydnj 2015-01-28 08:55:44 +11: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
Daniel Holbert
083d2492c5 Bug 1125632 followup: Mark remaining CollectReports impls in nsMemoryReporterManager.cpp and SystemMemoryReporter.cpp as MOZ_OVERRIDE. 2015-01-27 09:48:54 -08:00