Commit Graph

1115 Commits

Author SHA1 Message Date
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Petr Sumbera
b9cd2c83f0 Bug 1369713 - Solaris gcc build of xptcall wrongly expects xptcstubsdef_asm.solx86. r=glandium
--HG--
extra : rebase_source : cf7139ba22da4208c00dbaf1175abf1bfee6f5ba
2017-06-02 05:46:31 -07:00
Jim Chen
14dbe23a6c Bug 1360321 - 6. Add AArch64 support in xpcom; r=froydnj
Add breakpoint support for AArch64, and fix a scanf format specifier
warning. Also fix an #if line in xptcinvoke_arm.cpp to work as intended.

MozReview-Commit-ID: BSjYVD8Zq0t
2017-05-17 13:06:23 -04:00
Aryeh Gregor
af57d2df0f Bug 1251198 - Remove various obsolete events from document.createEvent r=smaug
Other browsers do not support any of these (IIRC), telemetry reports
essentially zero usage, and supporting them is contrary to the DOM spec.

Notes on specific events:

CommandEvent and SimpleGestureEvent: These are not supposed to be
web-exposed APIs, so I hid the interfaces from web content too
(necessary to avoid test_all_synthetic_events.html failures).

DataContainerEvent: This was a non-standard substitute for CustomEvent
that seemed to have only one user, so I removed it entirely and switched
the user (MozillaFileLogger.js) to CustomEvent.

ScrollAreaEvent: This is entirely non-standard, but we apparently expose
it deliberately to web content, so I didn't see any reason to remove it
from createEvent.

SimpleGestureEvent and XULCommandEvent: Can still be created from
createEvent(), but not by content.

TimeEvent: This is still in because it has no constructor, so there's no
other way to create it.  Ideally we'd update the SMIL spec to add a
constructor.  I did remove TimeEvents.

MozReview-Commit-ID: 7Yi2oCl9SM2

--HG--
extra : rebase_source : 199ab921acfc531b8b85e77f90fcd799b03c887b
2017-04-20 15:45:37 +03:00
Nathan Froyd
bfc429531b Bug 1355853 - add CFI directives for x86-64 Linux xptcall assembly routines; r=jseward
Adding these directives means unwinding the stack with the profiler will
no longer get confused when we need to unwind through these functions.
2017-04-13 08:30:56 -04:00
Andrea Marchesini
12b54aa0f5 Bug 1299500 - Get rid of DeviceStorage API - part 10 - DeviceStorage, r=ehsan, r=billm 2017-03-08 20:15:45 +01:00
Jan Beich
5f6e848e09 Bug 1330119 - Build Linux aarch64 code in XPTCALL also on BSDs. r=froydnj
MozReview-Commit-ID: 92T1qG5yVx2

--HG--
extra : rebase_source : db1579c6ef5493bbdeb347d9021faa521261d24b
2017-01-10 22:50:32 +00:00
Sylvestre Ledru
5bedb078f1 Bug 1338086 - Remove useless else blocks in order to reduce complexity in xpcom/ r=froydnj
MozReview-Commit-ID: JUJARn5Nspp

--HG--
extra : rebase_source : c719d19215fb26ace822269c2a28faf5cf35ffbb
2017-02-09 15:31:35 +01:00
Benjamin Smedberg
5030045d16 Bug 1332631 part F - move nsXPTCUtils.h to xpcom/reflect/xptcall, r=froydnj
MozReview-Commit-ID: 7h69wKKdvwe

--HG--
rename : xpcom/glue/nsXPTCUtils.h => xpcom/reflect/xptcall/nsXPTCUtils.h
extra : rebase_source : 5939339f35e842e025538fed616d405f15749d82
extra : histedit_source : 99784f8fad561d895dfa09ff996d120bacc325fd
2017-01-20 14:25:46 -05:00
Benjamin Smedberg
c7352a6657 Bug 1306329 - Stop exporting XPCOM and XUL symbols. r=glandium
--HG--
extra : rebase_source : 482177f9c1026e527cff9f23b36a5076fa6d07a5
2016-12-02 12:55:34 -05:00
Wes Kocher
d4ced30f67 Backed out 4 changesets (bug 1306329) for 3000+ hazards a=backout
Backed out changeset 1c2f51ce3faf (bug 1306329)
Backed out changeset 6bb17b9a62d8 (bug 1306329)
Backed out changeset 377ca1419f1a (bug 1306329)
Backed out changeset ad4e531c7070 (bug 1306329)

MozReview-Commit-ID: KJAxdyJeJ6J
2017-01-17 17:55:24 -08:00
Benjamin Smedberg
d616a7ec44 Bug 1306329 - Stop exporting XPCOM and XUL symbols. r=glandium
--HG--
extra : rebase_source : 8c700498470b42279197f316d553154b1f2ed235
2016-12-02 12:55:34 -05:00
John David Anglin
0beeba79e1 Bug 1325495 - xpcom: Save %r26 in arg0 stack slot on hppa with gcc. r=froydnj
In the 32-bit parisc runtime, the first four non floating-point
arguments are passed in registers (%r26, %r25, %r24 and %r23).
The remaining arguments are passed on the stack. There are four
reserved slots on the stack that the callee can use to save the
first four argument registers if the callee desires.

The StubN functions are special in that arguments are not explicitly
declared. %r26 is used for the "self" pointer. The call to SharedStub(n)
loads n into %r26 and clobbers the "self" pointer in %r26. The hppa
SharedStub implementation expects to find the "self" pointer on the
stack in the slot reserved for StubN. However, gcc doesn't copy any
arguments to the stack as no arguments are declared for StubN. Even
if it did, there's no guarantee that we could force gcc to save the
argument on the stack as that's more expensive than copying to a
free register. Thus, we need to copy %r26 to the stack slot manually.
2017-01-12 06:37:13 +09:00
John Paul Adrian Glaubitz
fde7f4bca8 Bug 1275204 - Use OpenBSD/sparc64 xptcall stubs on Linux/sparc64. r=froydnj 2017-01-11 16:04:34 +09:00
Andrew McCreight
fccb0645ed Bug 1323042 - forbid MOZ_COUNT_{CTOR,DTOR} for nsISupports classes; r=froydnj 2016-12-12 09:27:58 -05:00
Nathan Froyd
826598caba Backout aba6c73511a2 (bug 1307961) for massive test bustage resulting in a CLOSED TREE; r=alltheorange 2016-12-12 08:45:46 -05:00
Andrew McCreight
e31b5489da Bug 1307961 - require consistent bloatview reporting for nsISupports classes; r=froydnj 2016-12-12 07:58:33 -05:00
Trevor Saunders
ed793c18d7 bug 1272498 - remove a obsolete and now useless comment 2016-11-16 01:17:40 -05:00
Trevor Saunders
17486e3454 bug 1272498 - rewrite NS_InvokeByIndex in assembly r=froydnj 2016-11-15 22:07:40 -05:00
Eric Rahm
84d0b89865 Bug 1316738 - Remove XPCOM test TestInterfaceInfo. r=froydnj
This removes a GeckoSimpleProgram that is neither built nor run.

MozReview-Commit-ID: 5ERreh9Gksw
2016-11-11 12:02:20 -08:00
Eric Rahm
2b4f954694 Bug 1316737 - Remove XPCOM test TestXPTCInvoke. r=froydnj
This removes the GeckoSimpleProgram TestXPTCInvoke which is neither compiled
nor run.

MozReview-Commit-ID: 5JdVEjEUUmu
2016-11-11 12:02:10 -08:00
Eric Rahm
996515dcac Bug 1311568 - Remove unused references to nsISupportsArray in xptiInterfaceInfoManager. r=froydnj
MozReview-Commit-ID: KMEJTyXXZ3m
2016-10-21 16:34:40 -07:00
Laszlo Ersek
b3ba117711 Bug 1304962 - fix argument processing in AARCH64 xptcall; r=froydnj
The invoke_copy_to_stack() function passes incorrect "stack_args" and
"end" arguments to the alloc_word() utility function, for parameter types
T_I8..T_I64, T_U8..T_U64, T_BOOL, T_CHAR and T_WCHAR.

Namely, the "end" input parameter of invoke_copy_to_stack(), which is
currently incorrectly passed as "end" to alloc_word(), points to the very
end of the entire exchange area between _NS_InvokeByIndex() and
invoke_copy_to_stack(). However, alloc_word()'s "end" parameter should
point to the end of the "ireg" (integer registers) sub-area of the
exchange area. That is, "ireg_end" should be passed to alloc_word() as
"end".

Because invoke_copy_to_stack()'s "end" input parameter is strictly greater
than "ireg_end", alloc_word() will happily trample over the "freg"
(floating point registers) area, on the above-mentioned type branches,
given a large enough "paramCount".

Similarly, as second argument, "stack_args" should be passed to
alloc_word(), pointing to the next available stack slot, for spilled-over
arguments. Passing "stk", which initially points to the base of the entire
exchange area (and hence the base of the "ireg" area) makes no sense.

The two other alloc_word() calls in the function are correct. So
centralize all calls to alloc_word() to a single location -- thereby
ending up with a sole call site per alloc_XXX() function --, and compute
only the last argument, "word", conditionally.

This fixes an obscure SIGSEGV in AARCH64 Firefox. Triggering the bug
requires a target function with seven integer-like parameters (not
counting the implicit "this" -- aka "that" -- parameter), followed by at
least one parameter of the above buggy types. nsIOService::NewChannel2()
is such a target function, for example.

DONTBUILD because NPTOB
2016-09-24 06:36:16 +02:00
Boris Zbarsky
0fd831e559 Bug 1302304. Remove IDL bits that reference nsIDOMMediaError; it's not needed anymore. r=bkelly 2016-09-15 11:41:35 -04:00
Nicholas Nethercote
c2306345d5 Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm.
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.

The patch also does some associated clean-up.

- Replaces some uses of nsIMemoryReporterCallback with the preferred
  nsIHandleReportCallback typedef.

- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
  parameter names, for consistency.

- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.

- Uses the MOZ_COLLECT_REPORT macro in all suitable places.

Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.

--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
2016-08-24 15:23:45 +10:00
Sebastian Hengst
e419835ca6 Backed out changeset 3114c70baccf (bug 1272498) for build failures on OS X. r=backout on a CLOSED TREE 2016-08-24 21:24:50 +02:00
Sebastian Hengst
7d4a6559ea Backed out changeset f517b043170b (bug 1272498) 2016-08-24 21:23:02 +02:00
Trevor Saunders
ecbd164f05 bug 1272498 - avoid clang's integrated assembler in the hope clang won't preprocess xptcinvoke_asm_x86_64_unix.s r=me landed on a CLOSED TREE
Also change if to If just to be careful.
2016-08-24 11:24:15 -04:00
Trevor Saunders
4b161d6bfd bug 1272498 - rewrite NS_InvokeByIndex in assembly r=froydnj 2016-08-24 10:31:51 -04:00
Andrew McCreight
110539616e Bug 1296726, part 2 - Remove unused methods from nsIInterfaceInfoManager. r=froydnj
MozReview-Commit-ID: 2Znf8iN3pU4
2016-08-23 06:05:01 -07:00
Andrew McCreight
fc6173089e Bug 1296726, part 1 - Remove trailing whitespace from xpcom/reflect/xptinfo. r=froydnj
MozReview-Commit-ID: ewdP6XFfmr
2016-08-23 06:05:01 -07:00
Andrew McCreight
427e9d567c Bug 1297176 - Mark nsIInterfaceInfo{,Manager} builtinclass. r=froydnj
I think technically you could implement one of these in JS now, which
might prevent me from reasonably asserting that these can never GC. I
doubt anybody would ever do that, so it should be okay. There are zero
references to these two interfaces in all of addon DXR, and none in
Firefox JS.

MozReview-Commit-ID: 3AkW0AkqmNx
2016-08-23 06:05:00 -07:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Nicholas Nethercote
79b0d684fb Bug 1287361 - Add a missing XPT_CALLOC8 null check. r=khuey.
--HG--
extra : rebase_source : 9a9f938ab7499ddcc18a1bce549e651a07829716
2016-07-18 14:18:19 +10:00
Chris Peterson
43c2748f66 Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
Nathan Froyd
27e75b365b Bug 1276540 - remove dead instrumentation in xptiInterfaceInfo.cpp; r=erahm
Doubt anybody has compiled with the appropriate #define in a while, and
there's no evidence of the associated DEBUG_* constants being used.
2016-06-07 17:09:41 -04:00
Makoto Kato
5fb3b6c9fa Bug 1275719 - GetShimForParam should traverse parent objects. r=froydnj
When using GetIIDForParamNoAlloc to get return paramter type, if param is nsIDOM*, it should get it by GetShimForParam.

When this situation, GetEntryFor Param tries to get nsIDOMDocument, so GetEntryForParam doesn't get entry.  Then, GetShimForParam tries to get entry.  But since it doesn't traverse parent objects, it will try to get nsIDocShell instead.

So it might not get correct entry.

MozReview-Commit-ID: LaOVymgFMgi

--HG--
extra : rebase_source : 9ce3b38872dd6bcabd473296cc5bda25c7d5ceab
extra : histedit_source : 385797913a2d76e2981b4106d572edd784145126
2016-05-26 23:09:06 +09:00
Nicholas Nethercote
34313286ee Bug 1272203 (part 4) - Use NotNull for XPTCursor. r=froydnj.
This is a nice example of using NotNull for a single non-null pointer that gets
passed around lots of different functions.
2016-05-27 09:49:26 +10:00
Chris Peterson
8a9e2d2bd4 Bug 1272513 - Part 2: Remove redundant -Wshadow CXXFLAGS from moz.build files. r=glandium 2016-05-14 00:54:55 -07:00
Chris Peterson
353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Nicholas Nethercote
2ae68d12e9 Bug 1268772 (part 4) - Use MOZ_MUST_USE with NS_NewISupportsArray(). r=erahm.
A few callers of NS_NewISupportsArray() didn't use the return value to detect
failure, but instead checked if the |array| argument was null after the call.
This is inconsistent with the majority of the calls to NS_NewISupportsArray().
This patch changes them to be checked in the normal way.

--HG--
extra : rebase_source : bf91836d7c3b159833c303a3716f4d9366f8b76a
2016-05-02 09:06:47 +10:00
Nicholas Nethercote
358a6071d9 Bug 1260653 - Shrink NativeProperties. r=bz.
This patch makes NativeProperties variable-length and reduces static data by
110,336 bytes on 64-bit, and half that on 32-bit.

MozReview-Commit-ID: 2etZ5AnEhgO

--HG--
extra : rebase_source : 6a167b64df7da3c6940114782fe08337f04a694d
2016-03-31 09:57:20 +11: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
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
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
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
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
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