mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 11:45:37 +00:00
ea799cdb96
This adds an intermediate interface, nsIArrayExtensions, that inherits from nsIArray. This is necessary as nsISupportsArray implements nsIArray as well so the methods could not just be addded to nsIArray. nsIMutableArray inherits from nsIArrayExtensions and so any interface that works with an nsIMutableArray can be updated to return an nsIArrayExtensions. This will allow interfaces that currently return an nsISupportsArray to instead return an nsIArrayExtensions and internally work with an nsIMutableArray. Consumers of these functions will continue to be able to use nsISupportsArray-like iteration even though they're now working with an nsIArray. MozReview-Commit-ID: 9uRjsJbg9Jp
104 lines
2.4 KiB
Python
104 lines
2.4 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIArray.idl',
|
|
'nsIArrayExtensions.idl',
|
|
'nsIAtom.idl',
|
|
'nsIAtomService.idl',
|
|
'nsICollection.idl',
|
|
'nsIEnumerator.idl',
|
|
'nsIHashable.idl',
|
|
'nsIINIParser.idl',
|
|
'nsIMutableArray.idl',
|
|
'nsIObserver.idl',
|
|
'nsIObserverService.idl',
|
|
'nsIPersistentProperties2.idl',
|
|
'nsIProperties.idl',
|
|
'nsIProperty.idl',
|
|
'nsIPropertyBag.idl',
|
|
'nsIPropertyBag2.idl',
|
|
'nsISerializable.idl',
|
|
'nsISimpleEnumerator.idl',
|
|
'nsIStringEnumerator.idl',
|
|
'nsISupportsArray.idl',
|
|
'nsISupportsIterators.idl',
|
|
'nsISupportsPrimitives.idl',
|
|
'nsIVariant.idl',
|
|
'nsIWritablePropertyBag.idl',
|
|
'nsIWritablePropertyBag2.idl',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
XPIDL_SOURCES += [
|
|
'nsIWindowsRegKey.idl',
|
|
]
|
|
EXPORTS += ['nsWindowsRegKey.h']
|
|
SOURCES += [
|
|
'nsWindowsRegKey.cpp'
|
|
]
|
|
|
|
XPIDL_MODULE = 'xpcom_ds'
|
|
|
|
EXPORTS += [
|
|
'nsArray.h',
|
|
'nsAtomService.h',
|
|
'nsCharSeparatedTokenizer.h',
|
|
'nsCheapSets.h',
|
|
'nsCRT.h',
|
|
'nsExpirationTracker.h',
|
|
'nsHashPropertyBag.h',
|
|
'nsMathUtils.h',
|
|
'nsStaticAtom.h',
|
|
'nsStaticNameTable.h',
|
|
'nsStringEnumerator.h',
|
|
'nsSupportsArray.h',
|
|
'nsSupportsPrimitives.h',
|
|
'nsVariant.h',
|
|
'nsWhitespaceTokenizer.h',
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
'StickyTimeDuration.h',
|
|
'Tokenizer.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'nsArray.cpp',
|
|
'nsAtomService.cpp',
|
|
'nsAtomTable.cpp',
|
|
'nsCRT.cpp',
|
|
'nsHashPropertyBag.cpp',
|
|
'nsINIParserImpl.cpp',
|
|
'nsObserverList.cpp',
|
|
'nsObserverService.cpp',
|
|
'nsProperties.cpp',
|
|
'nsStringEnumerator.cpp',
|
|
'nsSupportsArray.cpp',
|
|
'nsSupportsArrayEnumerator.cpp',
|
|
'nsSupportsPrimitives.cpp',
|
|
'nsVariant.cpp',
|
|
'Tokenizer.cpp',
|
|
]
|
|
|
|
# These two files cannot be built in unified mode because they use the
|
|
# PL_ARENA_CONST_ALIGN_MASK macro with plarena.h.
|
|
SOURCES += [
|
|
'nsPersistentProperties.cpp',
|
|
'nsStaticNameTable.cpp',
|
|
]
|
|
|
|
EXTRA_COMPONENTS += [
|
|
'nsINIProcessor.js',
|
|
'nsINIProcessor.manifest',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'../io',
|
|
]
|
|
|
|
FINAL_LIBRARY = 'xul'
|