gecko-dev/xpcom
Nika Layzell 1c2a9c2b07 Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8
Currently the [ref] and [ptr] types share the same underlying
implementation. This is unfortunate, and can cause correctness problems
with outparam refs (as an example).

By using the same tools used to allow other larger objects (such as
jsid, nsTArray, and nsString) to be stored directly in the nsXPTCVariant
object, this patch directly stores the nsID in the nsXPTCVariant object
when calling from JS into C++.

Using this new strategy avoids an nsID* allocation every time we pass
one over XPConnect, and should also allow us to simplify callers.

In addition, some special casing is added to xpidl to make it possible
to use the nsid reference type objects directly inside of Array<T>,
which will allow us to remove `[array] nsIIDPtr` callers.

Differential Revision: https://phabricator.services.mozilla.com/D19175

--HG--
extra : moz-landing-system : lando
2019-02-13 21:42:00 +00:00
..
base Bug 1145201: Replace EnqueuePromiseJobCallback and GetIncumbentGlobalCallback with new JobQueue abstract base class. r=arai,smaug 2019-02-12 08:16:16 +00:00
build Bug 1492629 - de-COM mozJSComponentLoader. r=mccr8 2019-02-08 23:09:20 +00:00
components Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-02-04 19:10:18 +00:00
doc
ds Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8 2019-02-13 21:42:00 +00:00
glue Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
idl-parser Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8 2019-02-13 21:42:00 +00:00
io Backed out changeset 469060293380 (bug 1518774) for failing test_invalid_mime_type_blob.html on a CLOSED TREE 2019-02-13 03:02:40 +02:00
libxpt/xptcall
reflect Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8 2019-02-13 21:42:00 +00:00
rust Bug 1525392 - update rkv (and LMDB) to their latest stable versions r=froydnj 2019-02-11 19:53:28 +00:00
string Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
system Bug 1517636: Add launcher process state to about:support; r=Felipe,flod 2019-01-16 00:22:19 +00:00
tests Bug 1520868 - Replacing AsyncOpen2 with AsyncOpen always r=valentin 2019-02-12 16:08:25 +00:00
threads Bug 1490496 - implement XPCOM FFI for key-value storage r=nika,lina,mossop 2019-02-07 16:14:04 +00:00
windbgdlg Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
xpidl Bug 1459721 - part 7 - remove dist_idl install manifest; r=chmanchester 2018-05-15 10:05:23 -04:00
moz.build Bug 1489340 - Remove xpcom/typelib r=froydnj 2018-09-07 13:55:38 +00:00
xpcom-config.h.in Bug 1523851 - Remove the dynamic_cast<void*> test. r=froydnj 2019-01-30 14:25:33 +00:00
xpcom-private.h.in