gecko-dev/xpcom/idl-parser/xpidl
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
..
__init__.py
header.py Bug 662341. Add support for [notxpcom] annotations on xpidl attributes. r=nika 2018-11-15 05:07:20 +00:00
jsonxpt.py Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8 2019-02-13 21:42:00 +00:00
moz.build
python.ini Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt 2018-06-27 11:10:02 -04:00
runtests.py Bug 1474369 - Part 7: Rename [array] to LegacyArray within xpt and xpidl, r=mccr8 2018-07-31 17:53:03 -04:00
rust_macros.py Bug 1503031 - use ::nserror::nsresult everywhere in IDL-generated Rust files r=froydnj 2018-10-29 21:23:21 +00:00
rust.py Bug 662341. Add support for [notxpcom] annotations on xpidl attributes. r=nika 2018-11-15 05:07:20 +00:00
xpidl.py Bug 1526382 - Part 1: Split nsID& and nsID* in xpconnect, r=mccr8 2019-02-13 21:42:00 +00:00