Commit Graph

14631 Commits

Author SHA1 Message Date
Jonathan Watt
6691a673f4 Bug 1253094, part 9 - Stop using DebugOnly for class/struct members in xpcom/. r=froydnj
MozReview-Commit-ID: ACYMR37DGU9
2016-02-26 15:52:08 +00:00
Nicholas Nethercote
0bdb70d67c Bug 1253142 - Remove the long-deprecated nsIMemory.isLowMemory function. r=froydnj.
--HG--
extra : rebase_source : cf1c78836f8ba44d6dca5d3ef79b30fdef06f88a
2016-03-06 21:07:51 +11:00
Doug Turner
1a1dd4f3c7 Bug 1253159 - Remove locationUpdatePending and restore request timeout. r=jdm 2016-03-02 21:48:00 -05:00
Nicholas Nethercote
6373d8547c Bug 1252375 - Fix up jemalloc stats reporting. r=erahm.
We have some oddities in our jemalloc stats reporting.

- "heap-overhead-ratio" is a strange measurement: overhead / non-overhead,
  expressed as a percentage. And it omits "bin_unused", which appears to be an
  oversight.

- "heap-committed" also omits "bin_unused".

- There are some minor errors in memory report descriptions.

This patch fixes these and improves the heap reporting. It makes the following
reporting changes:

- "heap-allocated": Duplicated as "heap-committed/allocated". (We keep
  "heap-allocated" because that's a special value used in the computation of
  "heap-unclassified".)

- "heap-committed/overhead": Added; it's the same as the sum of the
  "explicit/heap-overhead/*" values. Together with "heap-committed/allocated"
  it shows clearly what fraction of the heap is overhead and what fraction is
  useful.

- "heap-committed": Removed; now implicit as the "heap-committed/" node.

- "heap-overhead-ratio":
  - Removed from memory reports; now shown as the percentage of the new
    "heap-committed/overhead" node.
  - Still available as a distinguished amount (because it's useful in
    isolation) but renamed to heapOverheadFraction, and the telemetry ID is
    renamed as MEMORY_HEAP_OVERHEAD_FRACTION.

- "heap-chunks": Removed; it's not that interesting, and can be manually
  computed as "heap-mapped" / "heap-chunksize" if necessary.

--HG--
extra : rebase_source : 6f238cda780eb17b2de2f8b9a0b04377c93b109c
2016-03-03 12:49:27 +11:00
Gerald Squelart
c3ccd1ea7d Bug 1242343 - p1. ConstructSystem32Path from LoadLibrarySystem32 - r=jimm
Part 1: Refactored LoadLibrarySystem32 to expose the system32-path
construction code, so it can be re-used in the following patch.

MozReview-Commit-ID: J5BcI34VPnN
2016-03-03 08:40:23 +11:00
Boris Zbarsky
4f623415e0 Bug 1252565 part 2. Make dom::WarningOnlyErrorReporter handle workers. r=bholley 2016-03-01 16:53:22 -05:00
Boris Zbarsky
94e65058c3 Bug 1252565 part 1. Push the script environment preparer bits up from XPCJSRuntime to CycleCollectedJSRuntime, because we need them on workers to do ctypes on workers properly. r=bholley 2016-03-02 12:38:24 -05:00
Wes Kocher
cba1a7bd55 Backed out 2 changesets (bug 1252565) for windows build bustage CLOSED TREE
Backed out changeset 9de2c10a1cc3 (bug 1252565)
Backed out changeset fc5c4cb02d24 (bug 1252565)

MozReview-Commit-ID: GCQedQwqslg

--HG--
extra : amend_source : 5fb6bd99e2ac56c01c06e1004262dfeb2ea56410
2016-03-02 10:44:11 -08:00
Boris Zbarsky
3bad87c74a Bug 1252565 part 2. Make dom::WarningOnlyErrorReporter handle workers. r=bholley 2016-03-01 16:53:22 -05:00
Boris Zbarsky
3baae07268 Bug 1252565 part 1. Push the script environment preparer bits up from XPCJSRuntime to CycleCollectedJSRuntime, because we need them on workers to do ctypes on workers properly. r=bholley 2016-03-02 12:38:24 -05:00
Ms2ger
6eff98e0a9 Bug 1248950 - Move xpidl unit tests to moz.build; r=ted 2016-03-02 11:21:26 +01:00
Wes Kocher
01574acd0a Backed out changeset 96580db9b356 (bug 1252565) for test_recursion.html failures
MozReview-Commit-ID: 1ycmM8vfG3d
2016-03-01 15:40:46 -08:00
Boris Zbarsky
68dc8de0a0 Bug 1252565. Make dom::WarningOnlyErrorReporter handle workers. r=bholley 2016-03-01 16:53:22 -05:00
Jim Mathies
002407fe45 Bug 1232181 - Add a few win resource helpers. r=aklotz 2016-03-01 12:48:26 -06:00
Nathan Froyd
34f0b7188c Bug 1252195 - part 2 - use UniqueFreePtr instead of ScopedFreePtr in nsMemoryReporterManager; r=njn 2016-02-29 10:29:42 -05:00
Ms2ger
64b9c38762 Bug 1252095 - Export xpcom-config.h from moz.build; r=ted 2016-03-01 09:17:29 +01:00
Christian Holler
66408836a1 Bug 1252072 - Prevent ASan instrumentation for unsafe xpcom functions. r=froydnj
MozReview-Commit-ID: 5k2RAVPlcAI

--HG--
extra : rebase_source : cf9270a5f743d032f5e8cb0f1f8d691ec3d965b1
2016-02-29 21:39:03 +01:00
Nathan Froyd
4074e6e3f7 Bug 1251895 - don't race on nsTraceRefcnt's object serial number tables; r=mccr8
GetSerialNumber accesses global state through gSerialNumbers.  We call
GetSerialNumber under a lock when doing normal object refcount logging.
However, we call GetSerialNumber outside of a lock when we're tracing
individual classes for nsCOMPtr refcount logging, even if we don't
actually care about nsCOMPtr refcount logging.  We should call it under
a lock always.
2016-02-29 15:04:36 -05:00
Nathan Froyd
9da6e05953 Bug 1252191 - use UniquePtr instead of ScopedFreePtr in PoisonIOInterposerMac.cpp; r=aklotz
UniquePtr is more standard than ScopedFreePtr; using standard constructs
whenever possible is preferable.  In this particular case, since we
really just need a chunk of memory, we can allocate a char[] via
MakeUnique.
2016-02-29 10:06:53 -05:00
Trevor Saunders
3a75b440db bug 1252104 - make NS_ERROR_GET_CODE() and NS_ERROR_GET_MODULE() constexpr r=froydnj 2016-02-29 14:49:45 -05:00
Nicholas Nethercote
d7801d8f98 Bug 1249174 (part 8) - Shrink XPTInterfaceDescriptor. r=khuey.
XPTInterfaceDescriptor::num_additional_types can easily fit in 8 bits -- in
practice it doesn't exceed 20, and there's already a check in DoTypeDescriptor
that it doesn't exceed 255. This patch shrinks it and moves that check into
XPT_InterfaceDescriptorAddTypes() so that any overflow would be detected more
reliably.

On 64-bit platforms this reduces sizeof(XPTInterfaceDescriptor) from 40 to 32
and correspondingly reduces "xpti-working-set" by 16 KiB.

The patch also changes XPT_InterfaceDescriptorAddTypes() into a local function,
because it's defined and only used in xpt_struct.cpp.

--HG--
extra : rebase_source : 754a343bd52c3db35b21a4055a94c7235a70a7a2
2016-02-23 16:17:59 +11:00
Nicholas Nethercote
2ddfe18454 Bug 1249174 (part 7.5) - Avoid wasted space around XPT strings. r=khuey.
This patch:

- Removes XPTArena's ability to support arbitrary alignments.

- Hardwires two sub-arenas into XPTArena, one with alignment of 8 and one with
  alignment of 1.

- Uses the first sub-arena for most allocations and the second sub-arena for C
  string allocations.

These changes reduce "xpti-working-set" by 56 KiB.

The patch also renames all the used of "malloc" in XPT identifiers with
"calloc", to make clearer that the result is always zeroed.

--HG--
extra : rebase_source : 8e6cc42644621a7f3c80593006734e25420c7229
2016-02-23 16:17:58 +11:00
Nicholas Nethercote
941e0d3432 Bug 1249174 (part 6) - Shrink XPTTypeDescriptor. r=khuey.
With careful layout we can reduce sizeof(XPTTypeDescriptor) from 4 to 3, which
also reduces sizeof(XPTParamDescriptor) from 6 to 4. This reduces
"xpti-working-set" by 16 KiB.

The union-of-structs also improves readability by making it clearer exactly
which fields are used for which types.

--HG--
extra : rebase_source : 08060096f93c756fda847b90b45df1b1b207e2b5
2016-02-23 16:17:44 +11:00
Nicholas Nethercote
b2641c8261 Bug 1249174 (part 5) - Remove the useless BLK_HDR::size field. r=khuey.
--HG--
extra : rebase_source : 46e2dcde337f1cc25905fed5a52103c0e18403b1
2016-02-23 05:34:33 +11:00
Nicholas Nethercote
52f54b61b3 Bug 1249174 (part 4) - Don't store unused XPTHeader fields in memory. r=khuey.
This requires merging XPT_DoHeaderPrologue() and XPT_DoHeader(), which is
straightforward.

This reduces "xpti-working-set" by 16 KiB on 64-bit platforms.

--HG--
extra : rebase_source : 74510d6aefe8adc20064bee2c729d7a55fe4b58a
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
e9cbb90ad3 Bug 1249174 (part 3) - Don't store the unused XPTInterfaceDirectoryEntry::name_space field in memory. r=khuey.
Removing it reduces the "xpti-working-set" measurement by 16 KiB (measured on
64-bit).

--HG--
extra : rebase_source : e6d3911f96ee498a8990b702bb8fa499e55ececb
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
50bd48ed70 Bug 1249174 (part 2) - Shrink xptiInterfaceEntry by reordering its fields. r=khuey.
This reduces "xpti-working-set" by another 16 KiB on 64-bit.

--HG--
extra : rebase_source : c04b60066ca517122f2b23874f5b3220e87fc303
2016-02-17 15:23:46 +11:00
Nicholas Nethercote
c8af98b904 Bug 1249174 (part 1) - Don't store the unused XPTTypeDescriptorTags::argnum2 field in memory. r=khuey.
XPTTypeDescriptor::argnum2 is unused. Removing it reduces
sizeof(XPTTypeDescriptor) from 6 bytes to 4 bytes, which reduces the
"xpti-working-set" measurement by 80 KiB (measured on 64-bit).

--HG--
extra : rebase_source : e89f83df810d0466b724d8307fb567e2a93a3809
2016-02-17 15:23:42 +11:00
Eric Rahm
4c23f5cd8d Bug 1251482 - Remove remaining references to MOZILLA_XPCOMRT_API from xpcom. r=froydnj 2016-02-26 18:10:56 -08:00
Eric Rahm
09e813d747 Bug 1251473 - Remove libxpcomrt library. r=froydnj 2016-02-25 16:31:17 -08:00
Wes Kocher
72d9604d91 Backed out 8 changesets (bug 1251482, bug 1251494, bug 1251473, bug 1239870) for gtest failures
Backed out changeset f064a5efbb8c (bug 1251494)
Backed out changeset 9e33adec1aa6 (bug 1251482)
Backed out changeset ab0347657e25 (bug 1251473)
Backed out changeset 1d385d4f195d (bug 1239870)
Backed out changeset ceb3e1ee7dda (bug 1239870)
Backed out changeset 8574075bf42f (bug 1239870)
Backed out changeset ba077a3afbc7 (bug 1239870)
Backed out changeset eb99ab06414d (bug 1239870)

MozReview-Commit-ID: 7r9SEk4VGNU
2016-02-26 17:14:57 -08:00
Eric Rahm
ae72b68e62 Bug 1251482 - Remove remaining references to MOZILLA_XPCOMRT_API from xpcom. r=froydnj 2016-02-26 15:31:19 -08:00
Eric Rahm
fbd8497467 Bug 1251473 - Remove libxpcomrt library. r=froydnj 2016-02-25 16:31:17 -08:00
Nicholas Nethercote
7203dc64d4 Bug 1251127 - Gracefully handle multiple calls to nsMemoryReporterManager::Init(). r=erahm.
--HG--
extra : rebase_source : 3c57eccd9a324bb4e0eab03117ef0ca6159e92b5
2016-02-25 14:47:29 +11:00
Nicholas Nethercote
e851edf114 Bug 1251458 - Reinstate annotation handling in .xpt files. r=khuey.
Even though the .xpt files we produce never have annotations, .xpt files in the
wild might have them. This partly undoes part 3 of bug 1248534.

--HG--
extra : rebase_source : c0ff4e5ea7afc66f83b1314ee1d7fe0594f9b644
2016-02-26 10:47:36 +11:00
Nathan Froyd
2697b8c4a2 Bug 1251495 - remove unnecessary Logging.h include from nsStaticAtom.h; r=erahm 2016-02-25 16:38:26 -05:00
Nicholas Nethercote
8c2c0c73a7 Bug 1251298 - Null out |*idp| when necessary in DoInterfaceDescriptor. r=khuey.
--HG--
extra : rebase_source : 6fda52a9d5fb2a72f0f5f66d096a1017f02ec7f7
2016-02-26 10:15:16 +11:00
Nathan Froyd
7bb9ec5177 Bug 1229985 - remove nsAutoArrayPtr; r=erahm 2015-12-06 10:51:43 -05:00
Ms2ger
5ed06a1f77 Bug 1250917 - Remove NS_SUCCESS_I_DID_SOMETHING; r=bholley
It hasn't been used for a while now.
2016-02-25 09:28:06 +01:00
Nicholas Nethercote
13ac3274cc Bug 1248534 (part 9) - Remove XPT arena logging code. r=khuey.
It's not useful.

--HG--
extra : rebase_source : 90cdfa37fff023adffd12327ce5c7595e0d8d285
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
a6ecbe4768 Bug 1248534 (part 8) - Remove useless XPT freeing code. r=khuey.
XPT has some functions and macros for freeing memory. However, they (a) are
only used on error paths, and (b) don't actually free memory -- they just
optionally log the "freeing" -- because piecewise freeing doesn't make sense
with arena allocation.

This patch removes all that unnecessary machinery.

--HG--
extra : rebase_source : 40fb8dfd3851a89aaf0501ae290b3a6ca8ac90bc
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
74cc2d7704 Bug 1249174 (part 7) - Only define XPTArena::name if XPT_ARENA_LOGGING is defined. r=khuey.
--HG--
extra : rebase_source : 094100088aecba9f3198eee9550f6c41be0f1628
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
b1487760df Bug 1248534 (part 6) - Stack-allocate XPTState. r=khuey.
RegisterBuffer() is the only place that creates an XPTState, and it also
destroys it. So the XPTState can be allocated on the stack, which voids the
need for the creation of an XPTArena.

--HG--
extra : rebase_source : b25f0e798d72b8742efc96793a927f8a060101cf
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
772b0ceb7f Bug 1248534 (part 5) - Remove XPTDatapool. r=khuey.
It can just be inlined into XPTState, which simplifies things.

--HG--
extra : rebase_source : ca8223c90dbd61521b0f24afeb13d7d3ee2a434d
2016-02-23 05:33:35 +11:00
Nicholas Nethercote
7bbc5367a4 Bug 1248534 (part 4) - Remove unused fields from XPTConstValue. r=khuey.
--HG--
extra : rebase_source : 10b5ebb8c9b80140e6abae6c55ee32424136353e
2016-02-23 05:28:13 +11:00
Nicholas Nethercote
3ae60b8b3e Bug 1248534 (part 3) - Remove almost all support for XPT annotations. r=khuey.
XPT supports annotations but xpt.py doesn't generate them except for a single
empty annotation (to indicate there are no real annotations). So we can remove
almost all support for them. This also allows XPTString to be removed.

--HG--
extra : rebase_source : 889e635e9167f31c38c015bafe943f2c577f1daf
2016-02-22 09:52:39 +11:00
Nicholas Nethercote
2735b61ff4 Bug 1248534 (part 2) - Remove unused XPT flags. r=khuey.
--HG--
extra : rebase_source : 9423560ffca6b7e50e746ab86861888695d66df2
2016-02-16 19:04:18 +11:00
Nicholas Nethercote
0e4dc7f598 Bug 1248534 (part 1) - Remove XPT encoding support. r=khuey.
Currently XPT can both encode and decode, but encoding has been handled by
Python code since bug 643817, so the encoding support can be removed. This
results in many simplifications. Some notable changes:

- All the XPTHashTable code (including XPTDatapool::offset_map) is no longer
  necessary.

- PrimitiveTest.cpp and SimpleTypeLib.cpp both don't make much sense without
  encoding support, so I removed them.

- A lot of the version code was already unused, e.g. XPT_VERSION_*,
  XPT_TYPELIB_VERSIONS_STRUCT, XPT_TYPELIB_VERSIONS.
  XPT_MAJOR_INCOMPATIBLE_VERSION is the only thing actually used in version
  checks.

- The patch also removes some code that was dead even before encoding removal,
  such as XPT_ParseVersionString().

--HG--
extra : rebase_source : 11cfe0b01efde4e2ff0c74b02b408baebedd3dd8
2016-02-16 19:02:51 +11:00
Nicholas Nethercote
711418387a Bug 1250396 (part 2) - Remove nsStaticAtomStringType. r=froydnj.
It's only used in one file and obscures more than it enlightens.

--HG--
extra : rebase_source : 70759ab71c0955d8f83c142cf5f1fb9f56d294e5
2016-02-23 16:55:59 +11:00
Nicholas Nethercote
d637d20fdf Bug 1250396 (part 1) - Document a subtle contraint on nsIAtom. r=froydnj.
--HG--
extra : rebase_source : d26b318240e504f170d5649f4c12eadf05c433b8
2016-02-17 11:30:02 +11:00