gecko-dev/js
Nicholas Nethercote bf48aecf29 Bug 1332172 - Remove XPC_MAP_WANT_*. r=mccr8.
nsIXPCScriptable flags handling in xpc_map_end.h is a bit of a mess.

- Half the flags relate to whether various functions are defined (PreCreate,
  GetProperty, etc). These are set using the XPC_MAP_WANT_* macros;
  for each one xpc_map_end.h  inserts the corresponding flag using the
  preprocessor (see XPC_MAP_CLASSNAME::GetScriptableFlags()).

- The other half of the flags relate to other things (IS_GLOBAL_OBJECT,
  DONT_REFLECT_INTERFACE_NAMES, etc). These are set using the XPC_MAP_FLAGS
  macro.

Having two similar but different mechanisms to set the flags for a class is
confusing. (Indeed, until recently we had some classes where a single flag was
redundantly specified via both mechanisms.) Note also that the classes done in
dom/base/nsIDOMClassInfo.h also specify all the flags in a single value,
similar to how XPC_MAP_FLAGS works.

This patch removes the XPC_MAP_WANT_* macros. All flags are now set
via XPC_MAP_FLAGS. This is a significant simplification to xpc_map_end.h and
all the places that use it.

The downside of this change is that I had to change the flag constants from
class constants (i.e. nsIXPCScriptable::FOO) to macros (i.e.
NSIXPCSCRIPTABLE_FOO) because they need to be used in #if statements like this
in xpc_map_end.h:

  #if !((XPC_MAP_FLAGS) & NSIXPCSCRIPTABLE_WANT_PRECREATE)

and you can't use a '::'-qualified name inside a #if. I think this downside is
outweighed by the simplification described above.

Overall the patch removes 80 lines of code.

--HG--
extra : rebase_source : 6d5c341d0deba8f1529d81c17bb8819e09620b05
2017-01-23 13:33:58 +11:00
..
ductwork/debugger Bug 503613 - Remove old 'tail =' lines from xpcshell.ini files; r=gps 2017-01-18 10:30:39 +00:00
examples
ipc Bug 1331809 - Remove unused variable in WrapperOwner::hasInstance(). r=kanru 2017-01-17 16:34:16 -08:00
public Bug 1331668 - Fix static build bustage r=me 2017-01-20 16:23:27 +00:00
src Bug 1326067 part 7 - Fix type update code to use the unboxed object instead of the UnboxedExpandoObject. r=bhackett 2017-01-22 12:55:33 +01:00
xpconnect Bug 1332172 - Remove XPC_MAP_WANT_*. r=mccr8. 2017-01-23 13:33:58 +11:00
ffi.configure Bug 1305145 - Make libs and flags set by pkg_check_modules available to the caller. r=glandium 2016-10-14 11:06:30 -07:00
moz.configure Bug 1322920 - Remove DOM Promise implementation. r=bz 2016-12-14 17:11:48 +01:00