Bug 1620632 - Rename confusingly named types/macros for relocation handling of nsTArray. r=froydnj

Specifically, this renames
* nsTArray_CopyChooser to nsTArray_RelocationStrategy
* the Copy template argument of nsTArray_base to RelocationStrategy
* nsTArray_CopyWithConstructors to nsTArray_RelocateUsingMoveConstructor
* nsTArray_CopyWithMemutils to nsTArray_RelocateUsingMemutils
* DECLARE_USE_COPY_CONSTRUCTORS to MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Simon Giesecke 2020-03-20 17:04:27 +00:00
parent 4c786bae99
commit 7e9a7de895
25 changed files with 266 additions and 241 deletions

View File

@ -1057,7 +1057,7 @@ RegisterStrongMemoryReporter
?ReplaceChar@?$nsTString@D@@QAEXDD@Z
?LowerCaseEqualsASCII@?$nsTStringRepr@D@detail@mozilla@@QBI_NPBDI@Z
?ToUpperCase@@YAXAAV?$nsTSubstring@D@@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VLocale@intl@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VLocale@intl@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??0Locale@intl@mozilla@@QAE@$$QAV012@@Z
?AsString@Locale@intl@mozilla@@QBE?BV?$nsTString@D@@XZ
?Equals@?$nsTStringRepr@D@detail@mozilla@@QBI_NABV123@ABV?$nsTStringComparator@D@@@Z
@ -2990,7 +2990,7 @@ NS_GetXPTCallStub
?FactoryGet@Histogram@base@@SAPAV12@HHIW4Flags@12@PBH@Z
?Accumulate@Histogram@base@@MAEXHHI@Z
??$AppendElement@AAV?$Rooted@PAVJSObject@@@JS@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$Heap@PAVJSObject@@@JS@@UnsTArrayInfallibleAllocator@@@@IAEPAV?$Heap@PAVJSObject@@@JS@@AAV?$Rooted@PAVJSObject@@@2@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@PAVJSObject@@@JS@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@PAVJSObject@@@JS@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
?reset@?$Maybe@VNS_LossyConvertUTF16toASCII@@@mozilla@@QAEXXZ
?SuppressException@?$TErrorResult@UJustSuppressCleanupPolicy@binding_danger@mozilla@@@binding_danger@mozilla@@QAEXXZ
?ClearUnionData@?$TErrorResult@UJustSuppressCleanupPolicy@binding_danger@mozilla@@@binding_danger@mozilla@@AAEXXZ
@ -3475,7 +3475,7 @@ NS_NewWindowsRegKey
?Get@SharedMap@ipc@dom@mozilla@@QAEXPAUJSContext@@ABV?$nsTSubstring@D@@V?$MutableHandle@TValue@JS@@@JS@@AAVErrorResult@4@@Z
?MaybeRebuild@SharedMap@ipc@dom@mozilla@@IAE?AV?$Result@UOk@mozilla@@W4nsresult@@@4@XZ
?codeUint32@InputBuffer@loader@mozilla@@QAE_NAAI@Z
?MoveNonOverlappingRegion@?$nsTArray_CopyWithConstructors@V?$Heap@PAVJSObject@@@JS@@@@SAXPAX0II@Z
?RelocateNonOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@PAVJSObject@@@JS@@@@SAXPAX0II@Z
??4?$Maybe@_N@mozilla@@QAEAAV01@$$QAV01@@Z
?SetEventRecordingEnabled@TelemetryEvent@@YAXABV?$nsTSubstring@D@@_N@Z
?QueryInterface@nsPrefBranch@@UAG?AW4nsresult@@ABUnsID@@PAPAX@Z
@ -8805,7 +8805,7 @@ RegisterWeakAsyncMemoryReporter
?SetIntValueAndType@nsAttrValue@@AAEXHW4ValueType@1@PBV?$nsTSubstring@_S@@@Z
?NotifyLoadDone@nsXULPrototypeDocument@@QAE?AW4nsresult@@XZ
?ClearAndRetainStorage@?$nsTArray_Impl@V?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@@QAEXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$function@$$A6AXXZ@std@@@@@@IAEXII@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$function@$$A6AXXZ@std@@@@@@IAEXII@Z
??1?$nsTArray_Impl@V?$RefPtr@VNodeInfo@dom@mozilla@@@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
??1?$RefPtr@VNodeInfo@dom@mozilla@@@@QAE@XZ
?PutPrototype@nsXULPrototypeCache@@QAE?AW4nsresult@@PAVnsXULPrototypeDocument@@@Z
@ -10730,8 +10730,8 @@ Gecko_CopyConstruct_nsStylePadding
Gecko_CopyConstruct_nsStyleEffects
??0nsStyleEffects@@QAE@ABU0@@Z
??$AppendElements@UnsStyleFilter@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UnsStyleFilter@@UnsTArrayInfallibleAllocator@@@@IAEPAUnsStyleFilter@@PBU1@I@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UnsStyleFilter@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UnsStyleFilter@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UnsStyleFilter@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UnsStyleFilter@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
Gecko_NewCSSShadowArray
Gecko_EnsureImageLayersLength
Gecko_SetNullImageValue
@ -15931,7 +15931,7 @@ Gecko_AttrHasSuffix
??1nsDisplayListBuilder@@QAE@XZ
?_Tidy@?$vector@V?$_List_unchecked_const_iterator@V?$_List_val@U?$_List_simple_types@PBUDisplayItemClipChain@mozilla@@@std@@@std@@U_Iterator_base0@2@@std@@V?$allocator@V?$_List_unchecked_const_iterator@V?$_List_val@U?$_List_simple_types@PBUDisplayItemClipChain@mozilla@@@std@@@std@@U_Iterator_base0@2@@std@@@2@@std@@AAEXXZ
??1?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAE@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAE@XZ
??1WeakFrameRegion@nsDisplayListBuilder@@QAE@XZ
?reset@?$UniquePtr@VWeakFrame@@V?$DefaultDelete@VWeakFrame@@@mozilla@@@mozilla@@QAEXPAVWeakFrame@@@Z
??R?$DefaultDelete@VWeakFrame@@@mozilla@@QBEXPAVWeakFrame@@@Z
@ -16135,7 +16135,7 @@ Gecko_ContentList_AppendAll
?SetNeedsComposite@ClientLayerManager@layers@mozilla@@UAEX_N@Z
??0nsRegion@@QAE@ABV0@@Z
??$ReplaceElementsAt@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IAEPAUBand@regiondetails@@IIPBU12@I@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
?SendInvalidRegion@ClientLayerManager@layers@mozilla@@UAEXABV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
?GetRemoteRenderer@nsBaseWidget@@MAEPAVCompositorBridgeChild@layers@mozilla@@XZ
?SendNotifyRegionInvalidated@CompositorBridgeChild@layers@mozilla@@QAE_NABV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
@ -16168,10 +16168,10 @@ Gecko_ContentList_AppendAll
?Read@?$RegionParamTraits@V?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@VRectIterator@?$BaseIntRegion@V?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@U?$IntPointTyped@UUnknownUnits@gfx@mozilla@@@23@U?$IntMarginTyped@UUnknownUnits@gfx@mozilla@@@23@@23@@IPC@@SA_NPBVMessage@2@PAVPickleIterator@@PAV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@Z
?Read@?$ParamTraits@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@IPC@@SA_NPBVMessage@2@PAVPickleIterator@@PAU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@Z
??0nsRegion@@QAE@V?$ArrayView@Upixman_box32@@@gfx@mozilla@@@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAE_NI@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAE_NI@Z
?ClearAndRetainStorage@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@QAEXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAEXII@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAEXII@Z
??1?$nsTArray_Impl@Upixman_box32@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
?RecvNotifyRegionInvalidated@CompositorBridgeParent@layers@mozilla@@UAE?AVIPCResult@ipc@3@ABV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
?AddInvalidRegion@LayerManagerComposite@layers@mozilla@@UAEXABV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
@ -16312,7 +16312,7 @@ Gecko_ContentList_AppendAll
?UnionEdges@?$BaseRectAbsolute@HUnsRectAbsolute@@UnsPoint@@UnsRect@@@gfx@mozilla@@QBE?AUnsRectAbsolute@@ABU4@@Z
?EqualStrips@Band@regiondetails@@QBE_NABU12@@Z
??$InsertElementAt@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IAEPAUBand@regiondetails@@I$$QAU12@@Z
?MoveNonOverlappingRegion@?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@SAXPAX0II@Z
?RelocateNonOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@SAXPAX0II@Z
?InsertStrip@Band@regiondetails@@QAEXABUStrip@2@@Z
?CompressBefore@nsRegion@@AAEXAAI@Z
?EnsureSimplified@nsRegion@@AAEXXZ
@ -16457,8 +16457,8 @@ Gecko_ContentList_AppendAll
?s_HashKey@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PAVPaintedLayerDataNode@mozilla@@@@@@KAIPBX@Z
?s_InitEntry@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PAVPaintedLayerDataNode@mozilla@@@@@@KAXPAUPLDHashEntryHdr@@PBX@Z
??$AppendElements@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@VPaintedLayerData@mozilla@@UnsTArrayInfallibleAllocator@@@@IAEPAVPaintedLayerData@mozilla@@I@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??0PaintedLayerData@mozilla@@QAE@XZ
??$AppendElements@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UNewLayerEntry@mozilla@@UnsTArrayInfallibleAllocator@@@@IAEPAUNewLayerEntry@mozilla@@I@Z
??0NewLayerEntry@mozilla@@QAE@XZ
@ -16517,7 +16517,7 @@ Gecko_ContentList_AppendAll
?GetSameCoordinateSystemChildren@nsDisplayWrapList@@UBEPAVRetainedDisplayList@@XZ
?IsEqual@nsRegion@@QBE_NABV1@@Z
?IsEqualInterior@?$BaseRectAbsolute@HUnsRectAbsolute@@UnsPoint@@UnsRect@@@gfx@mozilla@@QBE_NABUnsRectAbsolute@@@Z
?MoveOverlappingRegion@?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@SAXPAX0II@Z
?RelocateOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@SAXPAX0II@Z
?GetLayerState@nsDisplayBorder@@UAE?AW4LayerState@mozilla@@PAVnsDisplayListBuilder@@PAVLayerManager@layers@3@ABUContainerLayerParameters@3@@Z
?GetOpaqueRegion@nsDisplayItem@@UBE?AVnsRegion@@PAVnsDisplayListBuilder@@PA_N@Z
?IsUniform@nsDisplayItem@@UBE?AV?$Maybe@I@mozilla@@PAVnsDisplayListBuilder@@@Z
@ -16615,10 +16615,10 @@ Gecko_ContentList_AppendAll
?MoveBy@nsRegion@@QAEXUnsPoint@@@Z
?SetEventRegions@Layer@layers@mozilla@@QAEXABUEventRegions@23@@Z
??8EventRegions@layers@mozilla@@QBE_NABU012@@Z
?UsesAutoArrayBuffer@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IBE_NXZ
?UsesAutoArrayBuffer@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IBE_NXZ
?Clear@?$nsTArray_Impl@VPaintedLayerData@mozilla@@UnsTArrayInfallibleAllocator@@@@QAEXXZ
??1PaintedLayerData@mozilla@@QAE@XZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IAEXII@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IAEXII@Z
?s_ClearEntry@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PAVPaintedLayerDataNode@mozilla@@@@@@KAXPAVPLDHashTable@@PAUPLDHashEntryHdr@@@Z
?reset@?$Maybe@VPaintedLayerDataNode@mozilla@@@mozilla@@QAEXXZ
??1PaintedLayerDataNode@mozilla@@QAE@XZ
@ -16986,7 +16986,7 @@ Gecko_ContentList_AppendAll
??$AppendElement@ABUBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IAEPAUBand@regiondetails@@ABU12@@Z
?AppendOrExtend@nsRegion@@AAEX$$QBUBand@regiondetails@@@Z
??$AppendElements@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IAEPAUBand@regiondetails@@PBU12@I@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IAE?AUnsTArrayInfallibleResult@@III@Z
??$AppendElement@$$CBUBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IAEPAUBand@regiondetails@@$$QBU12@@Z
?IsInvisibleInRect@nsDisplayBorder@@UBE_NABUnsRect@@@Z
?GetPaddingRect@nsDisplayItem@@QBE?AUnsRect@@XZ
@ -19548,7 +19548,7 @@ XPCOMService_GetThirdPartyUtil
?first@?$PairHelper@PAV?$nsTArray@V?$function@$$A6AXXZ@std@@@@V?$DefaultDelete@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@@mozilla@@$00$0A@@detail@mozilla@@IBEABQAV?$nsTArray@V?$function@$$A6AXXZ@std@@@@XZ
??4?$UniquePtr@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@V?$DefaultDelete@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@@mozilla@@@mozilla@@QAEAAV01@$$QAV01@@Z
??$AppendElement@ABV?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@@IAEPAV?$function@$$A6AXXZ@std@@ABV12@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$function@$$A6AXXZ@std@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$function@$$A6AXXZ@std@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
?TestPermissionOriginNoSuffix@nsPermissionManager@@UAG?AW4nsresult@@ABV?$nsTSubstring@D@@0PAI@Z
?NS_IsSafeTopLevelNav@@YA_NPAVnsIChannel@@@Z
?IsSafeMethod@nsHttpRequestHead@net@mozilla@@QAE_NXZ
@ -21877,16 +21877,16 @@ nsEscape
?SetTimeoutOrInterval@nsGlobalWindowInner@@QAEHPAUJSContext@@AAVFunction@dom@mozilla@@HABV?$Sequence@TValue@JS@@@45@_NAAVErrorResult@5@@Z
?NS_CreateJSTimeoutHandler@@YA?AU?$already_AddRefed@VnsIScriptTimeoutHandler@@@@PAUJSContext@@PAVnsGlobalWindowInner@@AAVFunction@dom@mozilla@@ABV?$Sequence@TValue@JS@@@56@AAVErrorResult@6@@Z
??$AppendElements@TValue@JS@@UnsTArrayFallibleAllocator@@@?$nsTArray_Impl@V?$Heap@TValue@JS@@@JS@@UnsTArrayInfallibleAllocator@@@@IAEPAV?$Heap@TValue@JS@@@JS@@PBTValue@2@I@Z
??$ExtendCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayFallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayFallibleResult@@II@Z
??$ExtendCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayFallibleResult@@III@Z
??$EnsureCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayFallibleResult@@II@Z
??$implementation@TValue@JS@@V?$Heap@TValue@JS@@@2@II@?$AssignRangeAlgorithm@$0A@$0A@@@SAXPAV?$Heap@TValue@JS@@@JS@@IIPBTValue@2@@Z
??0nsJSScriptTimeoutHandler@@QAE@PAUJSContext@@PAVnsGlobalWindowInner@@AAVFunction@dom@mozilla@@$$QAV?$nsTArray@V?$Heap@TValue@JS@@@JS@@@@AAVErrorResult@5@@Z
?QueryInterface@nsJSScriptTimeoutHandler@@UAG?AW4nsresult@@ABUnsID@@PAPAX@Z
??4?$nsTArray@V?$Heap@TValue@JS@@@JS@@@@QAEAAV0@$$QAV0@@Z
?ClearAndRetainStorage@?$nsTArray_Impl@V?$Heap@TValue@JS@@@JS@@UnsTArrayInfallibleAllocator@@@@QAEXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IAEXII@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IAE_NI@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IAEXII@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IAE_NI@Z
?GetCallingLocation@nsJSUtils@@SA_NPAUJSContext@@AAV?$nsTSubstring@D@@PAI2@Z
??0?$RefPtr@VnsJSScriptTimeoutHandler@@@@QAE@PAVnsJSScriptTimeoutHandler@@@Z
??1?$nsTArray_Impl@V?$Heap@TValue@JS@@@JS@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
@ -23081,9 +23081,9 @@ Gecko_IsDocumentBody
?MaybeDestroy@RequestResponse@indexedDB@dom@mozilla@@AAE_NW4Type@1234@@Z
??4?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@QAEAAV0@$$QAV0@@Z
?ClearAndRetainStorage@?$nsTArray_Impl@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@QAEXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAEXII@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE_NI@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAEXII@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE_NI@Z
??1?$nsTArray_Impl@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
?Send__delete__@PBackgroundIDBRequestParent@indexedDB@dom@mozilla@@SA_NPAV1234@ABVRequestResponse@234@@Z
?Write@?$IPDLParamTraits@VRequestResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SAXPAVMessage@IPC@@PAVIProtocol@23@ABVRequestResponse@indexedDB@dom@3@@Z
@ -23164,7 +23164,7 @@ Gecko_IsDocumentBody
?Read@?$IPDLParamTraits@VRequestResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SA_NPBVMessage@IPC@@PAVPickleIterator@@PAVIProtocol@23@PAVRequestResponse@indexedDB@dom@3@@Z
?Read@?$IPDLParamTraits@VObjectStoreGetAllResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SA_NPBVMessage@IPC@@PAVPickleIterator@@PAVIProtocol@23@PAVObjectStoreGetAllResponse@indexedDB@dom@3@@Z
?Read@?$IPDLParamTraits@V?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@ipc@mozilla@@SA_NPBVMessage@IPC@@PAVPickleIterator@@PAVIProtocol@23@PAV?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IAE?AUnsTArrayInfallibleResult@@II@Z
?Recv__delete__@BackgroundRequestChild@indexedDB@dom@mozilla@@EAE?AVIPCResult@ipc@4@ABVRequestResponse@234@@Z
?HandleResponse@BackgroundRequestChild@indexedDB@dom@mozilla@@AAEXABV?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@Z
?SendCommit@PBackgroundIDBTransactionChild@indexedDB@dom@mozilla@@QAE_NXZ
@ -24711,11 +24711,11 @@ Gecko_GetBaseSize
??$AppendElement@VNS_ConvertUTF16toUTF8@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$nsTString@D@@UnsTArrayInfallibleAllocator@@@@IAEPAV?$nsTString@D@@$$QAVNS_ConvertUTF16toUTF8@@@Z
??$AppendElement@AAV?$AutoTArray@V?$nsTString@D@@$03@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$01@@UnsTArrayInfallibleAllocator@@@@IAEPAV?$AutoTArray@V?$nsTString@D@@$01@@AAV?$AutoTArray@V?$nsTString@D@@$03@@@Z
??0?$AutoTArray@V?$nsTString@D@@$01@@QAE@$$QAV0@@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAE_NI@Z
?GetAutoArrayBufferUnsafe@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAEPAUnsTArrayHeader@@I@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IAE_NI@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAE_NI@Z
?GetAutoArrayBufferUnsafe@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IAEPAUnsTArrayHeader@@I@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IAE?AUnsTArrayInfallibleResult@@AAV0@II@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IAE_NI@Z
??$move@AAV?$nsTArray@V?$AutoTArray@V?$nsTString@D@@$01@@@@@std@@YA$$QAV?$nsTArray@V?$AutoTArray@V?$nsTString@D@@$01@@@@AAV1@@Z
??1?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$01@@UnsTArrayInfallibleAllocator@@@@QAE@XZ
??1?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$02@@UnsTArrayInfallibleAllocator@@@@QAE@XZ

View File

@ -1037,7 +1037,7 @@ RegisterStrongMemoryReporter
?ReplaceChar@?$nsTString@D@@QEAAXDD@Z
?LowerCaseEqualsASCII@?$nsTStringRepr@D@detail@mozilla@@QEBA_NPEBDI@Z
?ToUpperCase@@YAXAEAV?$nsTSubstring@D@@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VLocale@intl@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VLocale@intl@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??0Locale@intl@mozilla@@QEAA@$$QEAV012@@Z
?AsString@Locale@intl@mozilla@@QEBA?BV?$nsTString@D@@XZ
?Equals@?$nsTStringRepr@D@detail@mozilla@@QEBA_NAEBV123@AEBV?$nsTStringComparator@D@@@Z
@ -2961,7 +2961,7 @@ PrepareAndDispatch
?FactoryGet@Histogram@base@@SAPEAV12@HH_KW4Flags@12@PEBH@Z
?Accumulate@Histogram@base@@MEAAXHH_K@Z
??$AppendElement@AEAV?$Rooted@PEAVJSObject@@@JS@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$Heap@PEAVJSObject@@@JS@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$Heap@PEAVJSObject@@@JS@@AEAV?$Rooted@PEAVJSObject@@@2@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@PEAVJSObject@@@JS@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@PEAVJSObject@@@JS@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
?reset@?$Maybe@VNS_LossyConvertUTF16toASCII@@@mozilla@@QEAAXXZ
?SuppressException@?$TErrorResult@UJustSuppressCleanupPolicy@binding_danger@mozilla@@@binding_danger@mozilla@@QEAAXXZ
?ClearUnionData@?$TErrorResult@UJustSuppressCleanupPolicy@binding_danger@mozilla@@@binding_danger@mozilla@@AEAAXXZ
@ -3449,7 +3449,7 @@ NS_NewWindowsRegKey
?Get@SharedMap@ipc@dom@mozilla@@QEAAXPEAUJSContext@@AEBV?$nsTSubstring@D@@V?$MutableHandle@TValue@JS@@@JS@@AEAVErrorResult@4@@Z
?MaybeRebuild@SharedMap@ipc@dom@mozilla@@IEAA?AV?$Result@UOk@mozilla@@W4nsresult@@@4@XZ
?codeUint32@InputBuffer@loader@mozilla@@QEAA_NAEAI@Z
?MoveNonOverlappingRegion@?$nsTArray_CopyWithConstructors@V?$Heap@PEAVJSObject@@@JS@@@@SAXPEAX0_K1@Z
?RelocateNonOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@PEAVJSObject@@@JS@@@@SAXPEAX0_K1@Z
??4?$Maybe@_N@mozilla@@QEAAAEAV01@$$QEAV01@@Z
?SetEventRecordingEnabled@TelemetryEvent@@YAXAEBV?$nsTSubstring@D@@_N@Z
?QueryInterface@nsPrefBranch@@UEAA?AW4nsresult@@AEBUnsID@@PEAPEAX@Z
@ -8062,7 +8062,7 @@ Gecko_Destroy_nsStyleColumn
??1nsStyleColumn@@QEAA@XZ
Gecko_Destroy_nsStyleEffects
??1nsStyleEffects@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UnsStyleFilter@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UnsStyleFilter@@@@@@IEAA@XZ
??0DocumentStyleRootIterator@mozilla@@QEAA@PEAVnsINode@@@Z
?AppendDocumentLevelNativeAnonymousContentTo@nsContentUtils@@SAXPEAVDocument@dom@mozilla@@AEAV?$nsTArray@PEAVnsIContent@@@@@Z
?GetRootScrollFrame@nsIPresShell@@QEBAPEAVnsIFrame@@XZ
@ -8755,7 +8755,7 @@ RegisterWeakAsyncMemoryReporter
?SetIntValueAndType@nsAttrValue@@AEAAXHW4ValueType@1@PEBV?$nsTSubstring@_S@@@Z
?NotifyLoadDone@nsXULPrototypeDocument@@QEAA?AW4nsresult@@XZ
?ClearAndRetainStorage@?$nsTArray_Impl@V?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@@QEAAXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$function@$$A6AXXZ@std@@@@@@IEAAX_K0@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$function@$$A6AXXZ@std@@@@@@IEAAX_K0@Z
??1?$nsTArray_Impl@V?$RefPtr@VNodeInfo@dom@mozilla@@@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
??1?$RefPtr@VNodeInfo@dom@mozilla@@@@QEAA@XZ
?PutPrototype@nsXULPrototypeCache@@QEAA?AW4nsresult@@PEAVnsXULPrototypeDocument@@@Z
@ -10598,8 +10598,8 @@ Gecko_CopyConstruct_nsStylePadding
Gecko_CopyConstruct_nsStyleEffects
??0nsStyleEffects@@QEAA@AEBU0@@Z
??$AppendElements@UnsStyleFilter@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UnsStyleFilter@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUnsStyleFilter@@PEBU1@_K@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UnsStyleFilter@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UnsStyleFilter@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UnsStyleFilter@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UnsStyleFilter@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
Gecko_NewCSSShadowArray
Gecko_EnsureImageLayersLength
Gecko_SetNullImageValue
@ -15860,7 +15860,7 @@ Gecko_AttrHasSuffix
??1nsDisplayListBuilder@@QEAA@XZ
?_Tidy@?$vector@V?$_List_unchecked_const_iterator@V?$_List_val@U?$_List_simple_types@PEBUDisplayItemClipChain@mozilla@@@std@@@std@@U_Iterator_base0@2@@std@@V?$allocator@V?$_List_unchecked_const_iterator@V?$_List_val@U?$_List_simple_types@PEBUDisplayItemClipChain@mozilla@@@std@@@std@@U_Iterator_base0@2@@std@@@2@@std@@AEAAXXZ
??1?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAA@XZ
??1WeakFrameRegion@nsDisplayListBuilder@@QEAA@XZ
?reset@?$UniquePtr@VWeakFrame@@V?$DefaultDelete@VWeakFrame@@@mozilla@@@mozilla@@QEAAXPEAVWeakFrame@@@Z
??R?$DefaultDelete@VWeakFrame@@@mozilla@@QEBAXPEAVWeakFrame@@@Z
@ -16064,7 +16064,7 @@ Gecko_ContentList_AppendAll
?SetNeedsComposite@ClientLayerManager@layers@mozilla@@UEAAX_N@Z
??0nsRegion@@QEAA@AEBV0@@Z
??$ReplaceElementsAt@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUBand@regiondetails@@_K0PEBU12@0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
?SendInvalidRegion@ClientLayerManager@layers@mozilla@@UEAAXAEBV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
?GetRemoteRenderer@nsBaseWidget@@MEAAPEAVCompositorBridgeChild@layers@mozilla@@XZ
?SendNotifyRegionInvalidated@CompositorBridgeChild@layers@mozilla@@QEAA_NAEBV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
@ -16096,10 +16096,10 @@ Gecko_ContentList_AppendAll
?Read@?$RegionParamTraits@V?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@VRectIterator@?$BaseIntRegion@V?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@U?$IntPointTyped@UUnknownUnits@gfx@mozilla@@@23@U?$IntMarginTyped@UUnknownUnits@gfx@mozilla@@@23@@23@@IPC@@SA_NPEBVMessage@2@PEAVPickleIterator@@PEAV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@Z
?Read@?$ParamTraits@U?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@IPC@@SA_NPEBVMessage@2@PEAVPickleIterator@@PEAU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@gfx@mozilla@@@Z
??0nsRegion@@QEAA@V?$ArrayView@Upixman_box32@@@gfx@mozilla@@@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAA_N_K@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAA_N_K@Z
?ClearAndRetainStorage@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@QEAAXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAAX_K0@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAAX_K0@Z
??1?$nsTArray_Impl@Upixman_box32@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
?RecvNotifyRegionInvalidated@CompositorBridgeParent@layers@mozilla@@UEAA?AVIPCResult@ipc@3@AEBV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
?AddInvalidRegion@LayerManagerComposite@layers@mozilla@@UEAAXAEBV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@3@@Z
@ -16240,7 +16240,7 @@ Gecko_ContentList_AppendAll
?UnionEdges@?$BaseRectAbsolute@HUnsRectAbsolute@@UnsPoint@@UnsRect@@@gfx@mozilla@@QEBA?AUnsRectAbsolute@@AEBU4@@Z
?EqualStrips@Band@regiondetails@@QEBA_NAEBU12@@Z
??$InsertElementAt@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUBand@regiondetails@@_K$$QEAU12@@Z
?MoveNonOverlappingRegion@?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@SAXPEAX0_K1@Z
?RelocateNonOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@SAXPEAX0_K1@Z
?InsertStrip@Band@regiondetails@@QEAAXAEBUStrip@2@@Z
?CompressBefore@nsRegion@@AEAAXAEA_K@Z
?EnsureSimplified@nsRegion@@AEAAXXZ
@ -16385,8 +16385,8 @@ Gecko_ContentList_AppendAll
?s_HashKey@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PEAVPaintedLayerDataNode@mozilla@@@@@@KAIPEBX@Z
?s_InitEntry@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PEAVPaintedLayerDataNode@mozilla@@@@@@KAXPEAUPLDHashEntryHdr@@PEBX@Z
??$AppendElements@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@VPaintedLayerData@mozilla@@UnsTArrayInfallibleAllocator@@@@IEAAPEAVPaintedLayerData@mozilla@@_K@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??0PaintedLayerData@mozilla@@QEAA@XZ
??$AppendElements@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UNewLayerEntry@mozilla@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUNewLayerEntry@mozilla@@_K@Z
??0NewLayerEntry@mozilla@@QEAA@XZ
@ -16445,7 +16445,7 @@ Gecko_ContentList_AppendAll
?GetSameCoordinateSystemChildren@nsDisplayWrapList@@UEBAPEAVRetainedDisplayList@@XZ
?IsEqual@nsRegion@@QEBA_NAEBV1@@Z
?IsEqualInterior@?$BaseRectAbsolute@HUnsRectAbsolute@@UnsPoint@@UnsRect@@@gfx@mozilla@@QEBA_NAEBUnsRectAbsolute@@@Z
?MoveOverlappingRegion@?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@SAXPEAX0_K1@Z
?RelocateOverlappingRegion@?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@SAXPEAX0_K1@Z
?GetLayerState@nsDisplayBorder@@UEAA?AW4LayerState@mozilla@@PEAVnsDisplayListBuilder@@PEAVLayerManager@layers@3@AEBUContainerLayerParameters@3@@Z
?GetOpaqueRegion@nsDisplayItem@@UEBA?AVnsRegion@@PEAVnsDisplayListBuilder@@PEA_N@Z
?IsUniform@nsDisplayItem@@UEBA?AV?$Maybe@I@mozilla@@PEAVnsDisplayListBuilder@@@Z
@ -16542,11 +16542,11 @@ Gecko_ContentList_AppendAll
??8EventRegions@layers@mozilla@@QEBA_NAEBU012@@Z
?Clear@?$nsTArray_Impl@VPaintedLayerData@mozilla@@UnsTArrayInfallibleAllocator@@@@QEAAXXZ
??1PaintedLayerData@mozilla@@QEAA@XZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IEAAX_K0@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IEAAX_K0@Z
?s_ClearEntry@?$nsTHashtable@V?$nsBaseHashtableET@V?$nsPtrHashKey@UAnimatedGeometryRoot@@@@PEAVPaintedLayerDataNode@mozilla@@@@@@KAXPEAVPLDHashTable@@PEAUPLDHashEntryHdr@@@Z
?reset@?$Maybe@VPaintedLayerDataNode@mozilla@@@mozilla@@QEAAXXZ
??1PaintedLayerDataNode@mozilla@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VPaintedLayerData@mozilla@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VPaintedLayerData@mozilla@@@@@@IEAA@XZ
?PostprocessRetainedLayers@ContainerState@mozilla@@IEAAXPEAV?$IntRegionTyped@UUnknownUnits@gfx@mozilla@@@gfx@2@@Z
?SetupScrollingMetadata@ContainerState@mozilla@@IEAAXPEAUNewLayerEntry@2@@Z
??$AppendElements@V?$RefPtr@VLayer@layers@mozilla@@@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$RefPtr@VLayer@layers@mozilla@@@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$RefPtr@VLayer@layers@mozilla@@@@PEBV1@_K@Z
@ -16914,7 +16914,7 @@ Gecko_ContentList_AppendAll
??$AppendElement@AEBUBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUBand@regiondetails@@AEBU12@@Z
?AppendOrExtend@nsRegion@@AEAAX$$QEBUBand@regiondetails@@@Z
??$AppendElements@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUBand@regiondetails@@PEBU12@_K@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$ExtendCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UBand@regiondetails@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K00@Z
??$AppendElement@$$CBUBand@regiondetails@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@UBand@regiondetails@@UnsTArrayInfallibleAllocator@@@@IEAAPEAUBand@regiondetails@@$$QEBU12@@Z
?IsInvisibleInRect@nsDisplayBorder@@UEBA_NAEBUnsRect@@@Z
?GetPaddingRectRelativeToSelf@nsIFrame@@QEBA?AUnsRect@@XZ
@ -19464,7 +19464,7 @@ XPCOMService_GetThirdPartyUtil
?first@?$PairHelper@PEAV?$nsTArray@V?$function@$$A6AXXZ@std@@@@V?$DefaultDelete@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@@mozilla@@$00$0A@@detail@mozilla@@IEBAAEBQEAV?$nsTArray@V?$function@$$A6AXXZ@std@@@@XZ
?reset@?$UniquePtr@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@V?$DefaultDelete@V?$nsTArray@V?$function@$$A6AXXZ@std@@@@@mozilla@@@mozilla@@QEAAXPEAV?$nsTArray@V?$function@$$A6AXXZ@std@@@@@Z
??$AppendElement@AEBV?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$function@$$A6AXXZ@std@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$function@$$A6AXXZ@std@@AEBV12@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$function@$$A6AXXZ@std@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$function@$$A6AXXZ@std@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
?TestPermissionOriginNoSuffix@nsPermissionManager@@UEAA?AW4nsresult@@AEBV?$nsTSubstring@D@@0PEAI@Z
?NS_IsSafeTopLevelNav@@YA_NPEAVnsIChannel@@@Z
?IsSafeMethod@nsHttpRequestHead@net@mozilla@@QEAA_NXZ
@ -21786,11 +21786,11 @@ Gecko_IsDocumentBody
?MaybeDestroy@RequestResponse@indexedDB@dom@mozilla@@AEAA_NW4Type@1234@@Z
??4?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@QEAAAEAV0@$$QEAV0@@Z
?ClearAndRetainStorage@?$nsTArray_Impl@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@QEAAXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAAX_K0@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA_N_K@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAAX_K0@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA_N_K@Z
??1?$nsTArray_Impl@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA@XZ
??$AppendElement@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@VObjectStoreSpec@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@IEAAPEAVObjectStoreSpec@indexedDB@dom@mozilla@@XZ
?Read@?$IPDLParamTraits@VObjectStoreSpec@indexedDB@dom@mozilla@@@ipc@mozilla@@SA_NPEBVMessage@IPC@@PEAVPickleIterator@@PEAVIProtocol@23@PEAVObjectStoreSpec@indexedDB@dom@3@@Z
?Send__delete__@PBackgroundIDBRequestParent@indexedDB@dom@mozilla@@SA_NPEAV1234@AEBVRequestResponse@234@@Z
@ -21802,7 +21802,7 @@ Gecko_IsDocumentBody
?Write@?$IPDLParamTraits@VObjectStoreGetAllResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SAXPEAVMessage@IPC@@PEAVIProtocol@23@AEBVObjectStoreGetAllResponse@indexedDB@dom@3@@Z
?RemoveManagee@PBackgroundIDBTransactionParent@indexedDB@dom@mozilla@@UEAAXHPEAVIProtocol@ipc@4@@Z
??1RequestResponse@indexedDB@dom@mozilla@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@UStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@UStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA@XZ
??E?$DebugOnly@I@mozilla@@QEAAXH@Z
??1PBackgroundIDBRequestParent@indexedDB@dom@mozilla@@UEAA@XZ
??$AppendElements@VIndexMetadata@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@VIndexMetadata@indexedDB@dom@mozilla@@UnsTArrayInfallibleAllocator@@@@IEAAPEAVIndexMetadata@indexedDB@dom@mozilla@@PEBV1234@_K@Z
@ -21812,7 +21812,7 @@ Gecko_IsDocumentBody
?Read@?$IPDLParamTraits@VRequestResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SA_NPEBVMessage@IPC@@PEAVPickleIterator@@PEAVIProtocol@23@PEAVRequestResponse@indexedDB@dom@3@@Z
?Read@?$IPDLParamTraits@VObjectStoreGetAllResponse@indexedDB@dom@mozilla@@@ipc@mozilla@@SA_NPEBVMessage@IPC@@PEAVPickleIterator@@PEAVIProtocol@23@PEAVObjectStoreGetAllResponse@indexedDB@dom@3@@Z
?Read@?$IPDLParamTraits@V?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@ipc@mozilla@@SA_NPEBVMessage@IPC@@PEAVPickleIterator@@PEAVIProtocol@23@PEAV?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
??$EnsureCapacity@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@@IEAA?AUnsTArrayInfallibleResult@@_K0@Z
?Recv__delete__@BackgroundRequestChild@indexedDB@dom@mozilla@@EEAA?AVIPCResult@ipc@4@AEBVRequestResponse@234@@Z
?HandleResponse@BackgroundRequestChild@indexedDB@dom@mozilla@@AEAAXAEBV?$nsTArray@VSerializedStructuredCloneReadInfo@indexedDB@dom@mozilla@@@@@Z
?SendCommit@PBackgroundIDBTransactionChild@indexedDB@dom@mozilla@@QEAA_NXZ
@ -22369,16 +22369,16 @@ Gecko_IsDocumentBody
??$AppendElement@VNS_ConvertUTF16toUTF8@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$nsTString@D@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$nsTString@D@@$$QEAVNS_ConvertUTF16toUTF8@@@Z
??$AppendElement@AEAV?$AutoTArray@V?$nsTString@D@@$03@@UnsTArrayInfallibleAllocator@@@?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$01@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$AutoTArray@V?$nsTString@D@@$01@@AEAV?$AutoTArray@V?$nsTString@D@@$03@@@Z
??0?$AutoTArray@V?$nsTString@D@@$01@@QEAA@$$QEAV0@@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA_N_K@Z
?GetAutoArrayBufferUnsafe@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAAPEAUnsTArrayHeader@@_K@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA_N_K@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA_N_K@Z
?GetAutoArrayBufferUnsafe@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAAPEAUnsTArrayHeader@@_K@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA_N_K@Z
??$move@AEAV?$nsTArray@V?$AutoTArray@V?$nsTString@D@@$01@@@@@std@@YA$$QEAV?$nsTArray@V?$AutoTArray@V?$nsTString@D@@$01@@@@AEAV1@@Z
??1?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$01@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$01@@@@@@IEAA@XZ
??1?$nsTArray_Impl@V?$AutoTArray@V?$nsTString@D@@$02@@UnsTArrayInfallibleAllocator@@@@QEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA@XZ
??1?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$AutoTArray@V?$nsTString@D@@$02@@@@@@IEAA@XZ
??0?$nsTArray@V?$AutoTArray@V?$nsTString@D@@$02@@@@QEAA@$$QEAV0@@Z
?AddBootstrappedManifestLocation@nsComponentManagerImpl@@UEAA?AW4nsresult@@PEAVnsIFile@@@Z
?XRE_AddJarManifestLocation@@YA?AW4nsresult@@W4NSLocationType@@PEAVnsIFile@@@Z
@ -22394,16 +22394,16 @@ Gecko_IsDocumentBody
?SetTimeoutOrInterval@nsGlobalWindowInner@@QEAAHPEAUJSContext@@AEAVFunction@dom@mozilla@@HAEBV?$Sequence@TValue@JS@@@45@_NAEAVErrorResult@5@@Z
?NS_CreateJSTimeoutHandler@@YA?AU?$already_AddRefed@VnsIScriptTimeoutHandler@@@@PEAUJSContext@@PEAVnsGlobalWindowInner@@AEAVFunction@dom@mozilla@@AEBV?$Sequence@TValue@JS@@@56@AEAVErrorResult@6@@Z
??$AppendElements@TValue@JS@@UnsTArrayFallibleAllocator@@@?$nsTArray_Impl@V?$Heap@TValue@JS@@@JS@@UnsTArrayInfallibleAllocator@@@@IEAAPEAV?$Heap@TValue@JS@@@JS@@PEBTValue@2@_K@Z
??$ExtendCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayFallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayFallibleResult@@_K0@Z
??$ExtendCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayFallibleResult@@_K00@Z
??$EnsureCapacity@UnsTArrayFallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayFallibleResult@@_K0@Z
??$implementation@TValue@JS@@V?$Heap@TValue@JS@@@2@_K_K@?$AssignRangeAlgorithm@$0A@$0A@@@SAXPEAV?$Heap@TValue@JS@@@JS@@_K1PEBTValue@2@@Z
??0nsJSScriptTimeoutHandler@@QEAA@PEAUJSContext@@PEAVnsGlobalWindowInner@@AEAVFunction@dom@mozilla@@$$QEAV?$nsTArray@V?$Heap@TValue@JS@@@JS@@@@AEAVErrorResult@5@@Z
?QueryInterface@nsJSScriptTimeoutHandler@@UEAA?AW4nsresult@@AEBUnsID@@PEAPEAX@Z
??4?$nsTArray@V?$Heap@TValue@JS@@@JS@@@@QEAAAEAV0@$$QEAV0@@Z
?ClearAndRetainStorage@?$nsTArray_Impl@V?$Heap@TValue@JS@@@JS@@UnsTArrayInfallibleAllocator@@@@QEAAXXZ
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IEAAX_K0@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_CopyWithConstructors@V?$Heap@TValue@JS@@@JS@@@@@@IEAA_N_K@Z
?ShrinkCapacity@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IEAAX_K0@Z
??$SwapArrayElements@UnsTArrayInfallibleAllocator@@U1@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IEAA?AUnsTArrayInfallibleResult@@AEAV0@_K1@Z
??$EnsureNotUsingAutoArrayBuffer@UnsTArrayInfallibleAllocator@@@?$nsTArray_base@UnsTArrayInfallibleAllocator@@U?$nsTArray_RelocateUsingMoveConstructor@V?$Heap@TValue@JS@@@JS@@@@@@IEAA_N_K@Z
?GetCallingLocation@nsJSUtils@@SA_NPEAUJSContext@@AEAV?$nsTSubstring@D@@PEAI2@Z
?SetTimeout@TimeoutManager@dom@mozilla@@QEAA?AW4nsresult@@PEAVnsITimeoutHandler@@H_NW4Reason@Timeout@23@PEAH@Z
?AddRef@nsJSScriptTimeoutHandler@@UEAAKXZ

View File

@ -62,7 +62,7 @@ struct CloneInfo;
} // namespace dom
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::indexedDB::CloneInfo)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::dom::indexedDB::CloneInfo)
namespace mozilla {
namespace dom {

View File

@ -238,15 +238,15 @@ JSObject* StructuredCloneReadCallback(
} // namespace dom
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::StructuredCloneReadInfo<
mozilla::dom::indexedDB::StructuredCloneFileChild>);
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::StructuredCloneReadInfo<
mozilla::dom::indexedDB::StructuredCloneFileParent>);
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::StructuredCloneReadInfoChild);
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::StructuredCloneReadInfoParent);
#endif // mozilla_dom_indexeddatabase_h__

View File

@ -23,7 +23,7 @@ namespace mozilla {
struct AudioChunk;
class AudioSegment;
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::AudioChunk)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::AudioChunk)
/**
* This allows compilation of nsTArray<AudioSegment> and
@ -33,7 +33,7 @@ DECLARE_USE_COPY_CONSTRUCTORS(mozilla::AudioChunk)
* Note that AudioSegment(const AudioSegment&) is deleted, so this should
* never come into effect.
*/
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::AudioSegment)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::AudioSegment)
namespace mozilla {

View File

@ -20,8 +20,9 @@ class IntervalSet;
} // namespace mozilla
template <class E>
struct nsTArray_CopyChooser<mozilla::media::IntervalSet<E>> {
typedef nsTArray_CopyWithConstructors<mozilla::media::IntervalSet<E>> Type;
struct nsTArray_RelocationStrategy<mozilla::media::IntervalSet<E>> {
typedef nsTArray_RelocateUsingMoveConstructor<mozilla::media::IntervalSet<E>>
Type;
};
namespace mozilla {

View File

@ -20,8 +20,9 @@ class TimeIntervals;
} // namespace mozilla
// CopyChooser specialization for nsTArray
template <>
struct nsTArray_CopyChooser<mozilla::media::TimeIntervals> {
typedef nsTArray_CopyWithConstructors<mozilla::media::TimeIntervals> Type;
struct nsTArray_RelocationStrategy<mozilla::media::TimeIntervals> {
typedef nsTArray_RelocateUsingMoveConstructor<mozilla::media::TimeIntervals>
Type;
};
namespace mozilla {

View File

@ -704,14 +704,15 @@ TEST(IntervalSet, StaticAssert)
{
media::Interval<int> i;
static_assert(
mozilla::IsSame<nsTArray_CopyChooser<IntIntervals>::Type,
nsTArray_CopyWithConstructors<IntIntervals>>::value,
"Must use copy constructor");
static_assert(mozilla::IsSame<
nsTArray_CopyChooser<media::TimeIntervals>::Type,
nsTArray_CopyWithConstructors<media::TimeIntervals>>::value,
nsTArray_RelocationStrategy<IntIntervals>::Type,
nsTArray_RelocateUsingMoveConstructor<IntIntervals>>::value,
"Must use copy constructor");
static_assert(
mozilla::IsSame<
nsTArray_RelocationStrategy<media::TimeIntervals>::Type,
nsTArray_RelocateUsingMoveConstructor<media::TimeIntervals>>::value,
"Must use copy constructor");
}
TEST(IntervalSet, Substraction)

View File

@ -130,6 +130,6 @@ class AudioBlock : private AudioChunk {
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::AudioBlock)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::AudioBlock)
#endif // MOZILLA_AUDIOBLOCK_H_

View File

@ -96,7 +96,7 @@ class WorkletNodeEngine final : public AudioNodeEngine {
// Vector<T> supports non-memmovable types such as PersistentRooted
// (without any need to jump through hoops like
// DECLARE_USE_COPY_CONSTRUCTORS_FOR_TEMPLATE for nsTArray).
// MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR_FOR_TEMPLATE for nsTArray).
// PersistentRooted is used because these AudioWorkletGlobalScope scope
// objects may be kept alive as long as the AudioWorkletNode in the
// main-thread global.

View File

@ -40,7 +40,8 @@ struct MessagePortService::NextParent {
// Need to call CheckedUnsafePtr's copy constructor and destructor when
// resizing dynamic arrays containing NextParent (by calling NextParent's
// implicit copy constructor/destructor rather than memmove-ing NextParents).
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::MessagePortService::NextParent);
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::MessagePortService::NextParent);
namespace mozilla {
namespace dom {

View File

@ -21,7 +21,8 @@ class MessagePortService final {
public:
NS_INLINE_DECL_REFCOUNTING(MessagePortService)
// Needs to be public for the DECLARE_USE_COPY_CONSTRUCTORS macro.
// Needs to be public for the MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR
// macro.
struct NextParent;
static MessagePortService* Get();

View File

@ -14,8 +14,8 @@ namespace mozilla {
namespace plugins {
// The stuff in this "internal" namespace used to be inside the IpdlTuple
// class, but that prevented the DECLARE_USE_COPY_CONSTRUCTORS that is
// needed on the IpdlTupleElement struct. Without this, nsTArray can end
// class, but that prevented the MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR
// that is needed on the IpdlTupleElement struct. Without this, nsTArray can end
// up using a move constructor on this struct, which is not memmovable on
// Windows.
namespace internal {
@ -59,7 +59,8 @@ typedef MaybeVariant<int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
} // namespace plugins
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::plugins::internal::IpdlTupleElement)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::plugins::internal::IpdlTupleElement)
namespace mozilla {
namespace plugins {

View File

@ -382,11 +382,11 @@ class CheckedUnsafePtr : public detail::CheckedUnsafePtrBase<T> {
// Since CheckedUnsafePtr<T> has a non-trivial copy constructor, it has to opt
// into nsTArray<T> using them.
template <typename T>
struct nsTArray_CopyChooser<mozilla::CheckedUnsafePtr<T>> {
struct nsTArray_RelocationStrategy<mozilla::CheckedUnsafePtr<T>> {
using Type = std::conditional_t<
T::SupportsChecking::value == mozilla::CheckingSupport::Enabled,
nsTArray_CopyWithConstructors<mozilla::CheckedUnsafePtr<T>>,
nsTArray_CopyWithMemutils>;
nsTArray_RelocateUsingMoveConstructor<mozilla::CheckedUnsafePtr<T>>,
nsTArray_RelocateUsingMemutils>;
};
#endif // mozilla_CheckedUnsafePtr_h

View File

@ -25,8 +25,9 @@ class AnimationImageKeyData;
} // namespace mozilla
template <>
struct nsTArray_CopyChooser<mozilla::layers::AnimationImageKeyData> {
typedef nsTArray_CopyWithConstructors<mozilla::layers::AnimationImageKeyData>
struct nsTArray_RelocationStrategy<mozilla::layers::AnimationImageKeyData> {
typedef nsTArray_RelocateUsingMoveConstructor<
mozilla::layers::AnimationImageKeyData>
Type;
};

View File

@ -22,7 +22,8 @@ class FilterPrimitiveDescription;
} // namespace gfx
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::gfx::FilterPrimitiveDescription)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::gfx::FilterPrimitiveDescription)
extern const float gsRGBToLinearRGBMap[256];

View File

@ -55,8 +55,8 @@ struct Band;
}
template <>
struct nsTArray_CopyChooser<regiondetails::Band> {
typedef nsTArray_CopyWithConstructors<regiondetails::Band> Type;
struct nsTArray_RelocationStrategy<regiondetails::Band> {
typedef nsTArray_RelocateUsingMoveConstructor<regiondetails::Band> Type;
};
namespace regiondetails {

View File

@ -157,6 +157,6 @@ class Locale {
} // namespace intl
} // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::intl::Locale)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::intl::Locale)
#endif /* mozilla_intl_MozLocale_h__ */

View File

@ -69,7 +69,7 @@ using mozilla::WrapUnique;
// PaintedLayerData::mAssignedDisplayItems is a std::vector, which is
// non-memmovable
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::PaintedLayerData);
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::PaintedLayerData);
namespace mozilla {

View File

@ -1108,18 +1108,18 @@ const AnonymousCounterStyle* Gecko_CounterStyle_GetAnonymous(
void Gecko_EnsureTArrayCapacity(void* aArray, size_t aCapacity,
size_t aElemSize) {
auto base = reinterpret_cast<
nsTArray_base<nsTArrayInfallibleAllocator, nsTArray_CopyWithMemutils>*>(
aArray);
auto base =
reinterpret_cast<nsTArray_base<nsTArrayInfallibleAllocator,
nsTArray_RelocateUsingMemutils>*>(aArray);
base->EnsureCapacity<nsTArrayInfallibleAllocator>(aCapacity, aElemSize);
}
void Gecko_ClearPODTArray(void* aArray, size_t aElementSize,
size_t aElementAlign) {
auto base = reinterpret_cast<
nsTArray_base<nsTArrayInfallibleAllocator, nsTArray_CopyWithMemutils>*>(
aArray);
auto base =
reinterpret_cast<nsTArray_base<nsTArrayInfallibleAllocator,
nsTArray_RelocateUsingMemutils>*>(aArray);
base->template ShiftData<nsTArrayInfallibleAllocator>(
0, base->Length(), 0, aElementSize, aElementAlign);

View File

@ -688,7 +688,7 @@ struct ContentEntry final {
}; // anonymous namespace
}; // namespace mozilla
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::ContentEntry);
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::ContentEntry);
namespace mozilla {
namespace {

View File

@ -8,21 +8,22 @@
# error "Don't include this file directly"
#endif
template <class Alloc, class Copy>
nsTArray_base<Alloc, Copy>::nsTArray_base() : mHdr(EmptyHdr()) {
template <class Alloc, class RelocationStrategy>
nsTArray_base<Alloc, RelocationStrategy>::nsTArray_base() : mHdr(EmptyHdr()) {
MOZ_COUNT_CTOR(nsTArray_base);
}
template <class Alloc, class Copy>
nsTArray_base<Alloc, Copy>::~nsTArray_base() {
template <class Alloc, class RelocationStrategy>
nsTArray_base<Alloc, RelocationStrategy>::~nsTArray_base() {
if (mHdr != EmptyHdr() && !UsesAutoArrayBuffer()) {
Alloc::Free(mHdr);
}
MOZ_COUNT_DTOR(nsTArray_base);
}
template <class Alloc, class Copy>
const nsTArrayHeader* nsTArray_base<Alloc, Copy>::GetAutoArrayBufferUnsafe(
template <class Alloc, class RelocationStrategy>
const nsTArrayHeader*
nsTArray_base<Alloc, RelocationStrategy>::GetAutoArrayBufferUnsafe(
size_t aElemAlign) const {
// Assuming |this| points to an nsAutoArray, we want to get a pointer to
// mAutoBuf. So just cast |this| to nsAutoArray* and read &mAutoBuf!
@ -50,8 +51,8 @@ const nsTArrayHeader* nsTArray_base<Alloc, Copy>::GetAutoArrayBufferUnsafe(
return reinterpret_cast<const Header*>(autoBuf);
}
template <class Alloc, class Copy>
bool nsTArray_base<Alloc, Copy>::UsesAutoArrayBuffer() const {
template <class Alloc, class RelocationStrategy>
bool nsTArray_base<Alloc, RelocationStrategy>::UsesAutoArrayBuffer() const {
if (!mHdr->mIsAutoArray) {
return false;
}
@ -102,11 +103,12 @@ bool nsTArray_base<Alloc, Copy>::UsesAutoArrayBuffer() const {
bool IsTwiceTheRequiredBytesRepresentableAsUint32(size_t aCapacity,
size_t aElemSize);
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
typename ActualAlloc::ResultTypeProxy
nsTArray_base<Alloc, Copy>::ExtendCapacity(size_type aLength, size_type aCount,
size_type aElemSize) {
nsTArray_base<Alloc, RelocationStrategy>::ExtendCapacity(size_type aLength,
size_type aCount,
size_type aElemSize) {
mozilla::CheckedInt<size_type> newLength = aLength;
newLength += aCount;
@ -117,11 +119,11 @@ nsTArray_base<Alloc, Copy>::ExtendCapacity(size_type aLength, size_type aCount,
return this->EnsureCapacity<ActualAlloc>(newLength.value(), aElemSize);
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
typename ActualAlloc::ResultTypeProxy
nsTArray_base<Alloc, Copy>::EnsureCapacity(size_type aCapacity,
size_type aElemSize) {
nsTArray_base<Alloc, RelocationStrategy>::EnsureCapacity(size_type aCapacity,
size_type aElemSize) {
// This should be the most common case so test this first
if (aCapacity <= mHdr->mCapacity) {
return ActualAlloc::SuccessResult();
@ -174,14 +176,15 @@ nsTArray_base<Alloc, Copy>::EnsureCapacity(size_type aCapacity,
}
Header* header;
if (UsesAutoArrayBuffer() || !Copy::allowRealloc) {
if (UsesAutoArrayBuffer() || !RelocationStrategy::allowRealloc) {
// Malloc() and copy
header = static_cast<Header*>(ActualAlloc::Malloc(bytesToAlloc));
if (!header) {
return ActualAlloc::FailureResult();
}
Copy::MoveNonOverlappingRegionWithHeader(header, mHdr, Length(), aElemSize);
RelocationStrategy::RelocateNonOverlappingRegionWithHeader(
header, mHdr, Length(), aElemSize);
if (!UsesAutoArrayBuffer()) {
ActualAlloc::Free(mHdr);
@ -206,9 +209,9 @@ nsTArray_base<Alloc, Copy>::EnsureCapacity(size_type aCapacity,
// We don't need use Alloc template parameter specified here because failure to
// shrink the capacity will leave the array unchanged.
template <class Alloc, class Copy>
void nsTArray_base<Alloc, Copy>::ShrinkCapacity(size_type aElemSize,
size_t aElemAlign) {
template <class Alloc, class RelocationStrategy>
void nsTArray_base<Alloc, RelocationStrategy>::ShrinkCapacity(
size_type aElemSize, size_t aElemAlign) {
if (mHdr == EmptyHdr() || UsesAutoArrayBuffer()) {
return;
}
@ -224,7 +227,8 @@ void nsTArray_base<Alloc, Copy>::ShrinkCapacity(size_type aElemSize,
// Move the data, but don't copy the header to avoid overwriting mCapacity.
header->mLength = length;
Copy::MoveNonOverlappingRegion(header + 1, mHdr + 1, length, aElemSize);
RelocationStrategy::RelocateNonOverlappingRegion(header + 1, mHdr + 1,
length, aElemSize);
nsTArrayFallibleAllocator::Free(mHdr);
mHdr = header;
@ -247,12 +251,13 @@ void nsTArray_base<Alloc, Copy>::ShrinkCapacity(size_type aElemSize,
mHdr->mCapacity = length;
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
void nsTArray_base<Alloc, Copy>::ShiftData(index_type aStart, size_type aOldLen,
size_type aNewLen,
size_type aElemSize,
size_t aElemAlign) {
void nsTArray_base<Alloc, RelocationStrategy>::ShiftData(index_type aStart,
size_type aOldLen,
size_type aNewLen,
size_type aElemSize,
size_t aElemAlign) {
if (aOldLen == aNewLen) {
return;
}
@ -274,17 +279,17 @@ void nsTArray_base<Alloc, Copy>::ShiftData(index_type aStart, size_type aOldLen,
aNewLen *= aElemSize;
aOldLen *= aElemSize;
char* baseAddr = reinterpret_cast<char*>(mHdr + 1) + aStart;
Copy::MoveOverlappingRegion(baseAddr + aNewLen, baseAddr + aOldLen, num,
aElemSize);
RelocationStrategy::RelocateOverlappingRegion(
baseAddr + aNewLen, baseAddr + aOldLen, num, aElemSize);
}
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
void nsTArray_base<Alloc, Copy>::SwapFromEnd(index_type aStart,
size_type aCount,
size_type aElemSize,
size_t aElemAlign) {
void nsTArray_base<Alloc, RelocationStrategy>::SwapFromEnd(index_type aStart,
size_type aCount,
size_type aElemSize,
size_t aElemAlign) {
// This method is part of the implementation of
// nsTArray::SwapRemoveElement{s,}At. For more information, read the
// documentation on that method.
@ -326,15 +331,17 @@ void nsTArray_base<Alloc, Copy>::SwapFromEnd(index_type aStart,
"The range should be nonoverlapping");
char* baseAddr = reinterpret_cast<char*>(mHdr + 1);
Copy::MoveNonOverlappingRegion(baseAddr + destBytes, baseAddr + sourceBytes,
relocCount, aElemSize);
RelocationStrategy::RelocateNonOverlappingRegion(
baseAddr + destBytes, baseAddr + sourceBytes, relocCount, aElemSize);
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
typename ActualAlloc::ResultTypeProxy nsTArray_base<Alloc, Copy>::InsertSlotsAt(
index_type aIndex, size_type aCount, size_type aElemSize,
size_t aElemAlign) {
typename ActualAlloc::ResultTypeProxy
nsTArray_base<Alloc, RelocationStrategy>::InsertSlotsAt(index_type aIndex,
size_type aCount,
size_type aElemSize,
size_t aElemAlign) {
if (MOZ_UNLIKELY(aIndex > Length())) {
InvalidArrayIndex_CRASH(aIndex, Length());
}
@ -359,13 +366,15 @@ typename ActualAlloc::ResultTypeProxy nsTArray_base<Alloc, Copy>::InsertSlotsAt(
// * if array has an auto buffer and mHdr would otherwise point to
// sEmptyTArrayHeader, array.mHdr points to array's auto buffer.
template <class Alloc, class Copy>
nsTArray_base<Alloc, Copy>::IsAutoArrayRestorer::IsAutoArrayRestorer(
nsTArray_base<Alloc, Copy>& aArray, size_t aElemAlign)
template <class Alloc, class RelocationStrategy>
nsTArray_base<Alloc, RelocationStrategy>::IsAutoArrayRestorer::
IsAutoArrayRestorer(nsTArray_base<Alloc, RelocationStrategy>& aArray,
size_t aElemAlign)
: mArray(aArray), mElemAlign(aElemAlign), mIsAuto(aArray.IsAutoArray()) {}
template <class Alloc, class Copy>
nsTArray_base<Alloc, Copy>::IsAutoArrayRestorer::~IsAutoArrayRestorer() {
template <class Alloc, class RelocationStrategy>
nsTArray_base<Alloc,
RelocationStrategy>::IsAutoArrayRestorer::~IsAutoArrayRestorer() {
// Careful: We don't want to set mIsAutoArray = 1 on sEmptyTArrayHeader.
if (mIsAuto && mArray.mHdr == mArray.EmptyHdr()) {
// Call GetAutoArrayBufferUnsafe() because GetAutoArrayBuffer() asserts
@ -377,11 +386,11 @@ nsTArray_base<Alloc, Copy>::IsAutoArrayRestorer::~IsAutoArrayRestorer() {
}
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc, class Allocator>
typename ActualAlloc::ResultTypeProxy
nsTArray_base<Alloc, Copy>::SwapArrayElements(
nsTArray_base<Allocator, Copy>& aOther, size_type aElemSize,
nsTArray_base<Alloc, RelocationStrategy>::SwapArrayElements(
nsTArray_base<Allocator, RelocationStrategy>& aOther, size_type aElemSize,
size_t aElemAlign) {
// EnsureNotUsingAutoArrayBuffer will set mHdr = sEmptyTArrayHeader even if we
// have an auto buffer. We need to point mHdr back to our auto buffer before
@ -389,7 +398,7 @@ nsTArray_base<Alloc, Copy>::SwapArrayElements(
// IsAutoArrayRestorer takes care of this for us.
IsAutoArrayRestorer ourAutoRestorer(*this, aElemAlign);
typename nsTArray_base<Allocator, Copy>::IsAutoArrayRestorer
typename nsTArray_base<Allocator, RelocationStrategy>::IsAutoArrayRestorer
otherAutoRestorer(aOther, aElemAlign);
// If neither array uses an auto buffer which is big enough to store the
@ -456,12 +465,12 @@ nsTArray_base<Alloc, Copy>::SwapArrayElements(
return ActualAlloc::FailureResult();
}
Copy::MoveNonOverlappingRegion(temp.Elements(), smallerElements,
smallerLength, aElemSize);
Copy::MoveNonOverlappingRegion(smallerElements, largerElements, largerLength,
aElemSize);
Copy::MoveNonOverlappingRegion(largerElements, temp.Elements(), smallerLength,
aElemSize);
RelocationStrategy::RelocateNonOverlappingRegion(
temp.Elements(), smallerElements, smallerLength, aElemSize);
RelocationStrategy::RelocateNonOverlappingRegion(
smallerElements, largerElements, largerLength, aElemSize);
RelocationStrategy::RelocateNonOverlappingRegion(
largerElements, temp.Elements(), smallerLength, aElemSize);
// Swap the arrays' lengths.
MOZ_ASSERT((aOther.Length() == 0 || mHdr != EmptyHdr()) &&
@ -481,9 +490,9 @@ nsTArray_base<Alloc, Copy>::SwapArrayElements(
return ActualAlloc::SuccessResult();
}
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
template <typename ActualAlloc>
bool nsTArray_base<Alloc, Copy>::EnsureNotUsingAutoArrayBuffer(
bool nsTArray_base<Alloc, RelocationStrategy>::EnsureNotUsingAutoArrayBuffer(
size_type aElemSize) {
if (UsesAutoArrayBuffer()) {
// If you call this on a 0-length array, we'll set that array's mHdr to
@ -502,7 +511,8 @@ bool nsTArray_base<Alloc, Copy>::EnsureNotUsingAutoArrayBuffer(
return false;
}
Copy::MoveNonOverlappingRegionWithHeader(header, mHdr, Length(), aElemSize);
RelocationStrategy::RelocateNonOverlappingRegionWithHeader(
header, mHdr, Length(), aElemSize);
header->mCapacity = Length();
mHdr = header;
}

View File

@ -109,7 +109,7 @@ class JSStructuredCloneData;
// T MAY define operator== for searching.
//
// (Note that the memmove requirement may be relaxed for certain types - see
// nsTArray_CopyChooser below.)
// nsTArray_RelocationStrategy below.)
//
// For methods taking a Comparator instance, the Comparator must be a class
// defining the following methods:
@ -315,12 +315,12 @@ MOZ_NORETURN MOZ_COLD void InvalidArrayIndex_CRASH(size_t aIndex,
// directly. It holds common implementation code that does not depend on the
// element type of the nsTArray.
//
template <class Alloc, class Copy>
template <class Alloc, class RelocationStrategy>
class nsTArray_base {
// Allow swapping elements with |nsTArray_base|s created using a
// different allocator. This is kosher because all allocators use
// the same free().
template <class Allocator, class Copier>
template <class XAlloc, class XRelocationStrategy>
friend class nsTArray_base;
friend void Gecko_EnsureTArrayCapacity(void* aArray, size_t aCapacity,
size_t aElemSize);
@ -431,17 +431,18 @@ class nsTArray_base {
template <typename ActualAlloc, class Allocator>
typename ActualAlloc::ResultTypeProxy SwapArrayElements(
nsTArray_base<Allocator, Copy>& aOther, size_type aElemSize,
nsTArray_base<Allocator, RelocationStrategy>& aOther, size_type aElemSize,
size_t aElemAlign);
// This is an RAII class used in SwapArrayElements.
class IsAutoArrayRestorer {
public:
IsAutoArrayRestorer(nsTArray_base<Alloc, Copy>& aArray, size_t aElemAlign);
IsAutoArrayRestorer(nsTArray_base<Alloc, RelocationStrategy>& aArray,
size_t aElemAlign);
~IsAutoArrayRestorer();
private:
nsTArray_base<Alloc, Copy>& mArray;
nsTArray_base<Alloc, RelocationStrategy>& mArray;
size_t mElemAlign;
bool mIsAuto;
};
@ -468,7 +469,7 @@ class nsTArray_base {
// assert that we are an AutoTArray.
Header* GetAutoArrayBufferUnsafe(size_t aElemAlign) {
return const_cast<Header*>(
static_cast<const nsTArray_base<Alloc, Copy>*>(this)
static_cast<const nsTArray_base<Alloc, RelocationStrategy>*>(this)
->GetAutoArrayBufferUnsafe(aElemAlign));
}
const Header* GetAutoArrayBufferUnsafe(size_t aElemAlign) const;
@ -581,30 +582,31 @@ struct AssignRangeAlgorithm<true, true> {
//
// Normally elements are copied with memcpy and memmove, but for some element
// types that is problematic. The nsTArray_CopyChooser template class can be
// specialized to ensure that copying calls constructors and destructors
// types that is problematic. The nsTArray_RelocationStrategy template class
// can be specialized to ensure that copying calls constructors and destructors
// instead, as is done below for JS::Heap<E> elements.
//
//
// A class that defines how to copy elements using memcpy/memmove.
//
struct nsTArray_CopyWithMemutils {
struct nsTArray_RelocateUsingMemutils {
const static bool allowRealloc = true;
static void MoveNonOverlappingRegionWithHeader(void* aDest, const void* aSrc,
size_t aCount,
size_t aElemSize) {
static void RelocateNonOverlappingRegionWithHeader(void* aDest,
const void* aSrc,
size_t aCount,
size_t aElemSize) {
memcpy(aDest, aSrc, sizeof(nsTArrayHeader) + aCount * aElemSize);
}
static void MoveOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
static void RelocateOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
memmove(aDest, aSrc, aCount * aElemSize);
}
static void MoveNonOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
static void RelocateNonOverlappingRegion(void* aDest, void* aSrc,
size_t aCount, size_t aElemSize) {
memcpy(aDest, aSrc, aCount * aElemSize);
}
};
@ -614,34 +616,34 @@ struct nsTArray_CopyWithMemutils {
// and destructors appropriately.
//
template <class ElemType>
struct nsTArray_CopyWithConstructors {
struct nsTArray_RelocateUsingMoveConstructor {
typedef nsTArrayElementTraits<ElemType> traits;
const static bool allowRealloc = false;
static void MoveNonOverlappingRegionWithHeader(void* aDest, void* aSrc,
size_t aCount,
size_t aElemSize) {
static void RelocateNonOverlappingRegionWithHeader(void* aDest, void* aSrc,
size_t aCount,
size_t aElemSize) {
nsTArrayHeader* destHeader = static_cast<nsTArrayHeader*>(aDest);
nsTArrayHeader* srcHeader = static_cast<nsTArrayHeader*>(aSrc);
*destHeader = *srcHeader;
MoveNonOverlappingRegion(
RelocateNonOverlappingRegion(
static_cast<uint8_t*>(aDest) + sizeof(nsTArrayHeader),
static_cast<uint8_t*>(aSrc) + sizeof(nsTArrayHeader), aCount,
aElemSize);
}
// These functions are defined by analogy with memmove and memcpy.
// What they actually do is slightly different: MoveOverlappingRegion
// What they actually do is slightly different: RelocateOverlappingRegion
// checks to see which direction the movement needs to take place,
// whether from back-to-front of the range to be moved or from
// front-to-back. MoveNonOverlappingRegion assumes that moving
// front-to-back. RelocateNonOverlappingRegion assumes that moving
// front-to-back is always valid. So they're really more like
// std::move{_backward,} in that respect. We keep these names because
// we think they read slightly better, and MoveNonOverlappingRegion is
// only ever called on overlapping regions from MoveOverlappingRegion.
static void MoveOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
// we think they read slightly better, and RelocateNonOverlappingRegion is
// only ever called on overlapping regions from RelocateOverlappingRegion.
static void RelocateOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
ElemType* destElem = static_cast<ElemType*>(aDest);
ElemType* srcElem = static_cast<ElemType*>(aSrc);
ElemType* destElemEnd = destElem + aCount;
@ -659,12 +661,12 @@ struct nsTArray_CopyWithConstructors {
traits::Destruct(srcElemEnd);
}
} else {
MoveNonOverlappingRegion(aDest, aSrc, aCount, aElemSize);
RelocateNonOverlappingRegion(aDest, aSrc, aCount, aElemSize);
}
}
static void MoveNonOverlappingRegion(void* aDest, void* aSrc, size_t aCount,
size_t aElemSize) {
static void RelocateNonOverlappingRegion(void* aDest, void* aSrc,
size_t aCount, size_t aElemSize) {
ElemType* destElem = static_cast<ElemType*>(aDest);
ElemType* srcElem = static_cast<ElemType*>(aSrc);
ElemType* destElemEnd = destElem + aCount;
@ -685,46 +687,50 @@ struct nsTArray_CopyWithConstructors {
// The default behaviour is to use memcpy/memmove for everything.
//
template <class E>
struct MOZ_NEEDS_MEMMOVABLE_TYPE nsTArray_CopyChooser {
using Type = nsTArray_CopyWithMemutils;
struct MOZ_NEEDS_MEMMOVABLE_TYPE nsTArray_RelocationStrategy {
using Type = nsTArray_RelocateUsingMemutils;
};
//
// Some classes require constructors/destructors to be called, so they are
// specialized here.
//
#define DECLARE_USE_COPY_CONSTRUCTORS(T) \
template <> \
struct nsTArray_CopyChooser<T> { \
using Type = nsTArray_CopyWithConstructors<T>; \
#define MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(T) \
template <> \
struct nsTArray_RelocationStrategy<T> { \
using Type = nsTArray_RelocateUsingMoveConstructor<T>; \
};
#define DECLARE_USE_COPY_CONSTRUCTORS_FOR_TEMPLATE(T) \
template <typename S> \
struct nsTArray_CopyChooser<T<S>> { \
using Type = nsTArray_CopyWithConstructors<T<S>>; \
#define MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR_FOR_TEMPLATE(T) \
template <typename S> \
struct nsTArray_RelocationStrategy<T<S>> { \
using Type = nsTArray_RelocateUsingMoveConstructor<T<S>>; \
};
DECLARE_USE_COPY_CONSTRUCTORS_FOR_TEMPLATE(JS::Heap)
DECLARE_USE_COPY_CONSTRUCTORS_FOR_TEMPLATE(std::function)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR_FOR_TEMPLATE(JS::Heap)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR_FOR_TEMPLATE(std::function)
DECLARE_USE_COPY_CONSTRUCTORS(nsRegion)
DECLARE_USE_COPY_CONSTRUCTORS(nsIntRegion)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::layers::TileClient)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::layers::RenderRootDisplayListData)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::layers::RenderRootUpdates)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::SerializedStructuredCloneBuffer)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::ipc::StructuredCloneData)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::ClonedMessageData)
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(nsRegion)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(nsIntRegion)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::layers::TileClient)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::layers::RenderRootDisplayListData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::layers::RenderRootUpdates)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::SerializedStructuredCloneBuffer)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::ipc::StructuredCloneData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::dom::ClonedMessageData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::ObjectStoreCursorResponse)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::indexedDB::IndexCursorResponse)
DECLARE_USE_COPY_CONSTRUCTORS(
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::IndexCursorResponse)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(
mozilla::dom::indexedDB::SerializedStructuredCloneReadInfo);
DECLARE_USE_COPY_CONSTRUCTORS(JSStructuredCloneData)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::MessageData)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::dom::RefMessageData)
DECLARE_USE_COPY_CONSTRUCTORS(mozilla::SourceBufferTask)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(JSStructuredCloneData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::dom::MessageData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::dom::RefMessageData)
MOZ_DECLARE_RELOCATE_USING_MOVE_CONSTRUCTOR(mozilla::SourceBufferTask)
//
// Base class for nsTArray_Impl that is templated on element type and derived
@ -868,15 +874,16 @@ struct CompareWrapper<T, U, false> {
//
template <class E, class Alloc>
class nsTArray_Impl
: public nsTArray_base<Alloc, typename nsTArray_CopyChooser<E>::Type>,
: public nsTArray_base<Alloc,
typename nsTArray_RelocationStrategy<E>::Type>,
public nsTArray_TypedBase<E, nsTArray_Impl<E, Alloc>> {
private:
typedef nsTArrayFallibleAllocator FallibleAlloc;
typedef nsTArrayInfallibleAllocator InfallibleAlloc;
public:
typedef typename nsTArray_CopyChooser<E>::Type copy_type;
typedef nsTArray_base<Alloc, copy_type> base_type;
typedef typename nsTArray_RelocationStrategy<E>::Type relocation_type;
typedef nsTArray_base<Alloc, relocation_type> base_type;
typedef typename base_type::size_type size_type;
typedef typename base_type::index_type index_type;
typedef E elem_type;
@ -2339,8 +2346,8 @@ void nsTArray_Impl<E, Alloc>::RemoveElementsBy(Predicate aPredicate) {
elem_traits::Destruct(Elements() + i);
} else {
if (j < i) {
copy_type::MoveNonOverlappingRegion(Elements() + j, Elements() + i, 1,
sizeof(elem_type));
relocation_type::RelocateNonOverlappingRegion(
Elements() + j, Elements() + i, 1, sizeof(elem_type));
}
++j;
}
@ -2439,8 +2446,8 @@ auto nsTArray_Impl<E, Alloc>::AppendElements(
len, otherLen, sizeof(elem_type)))) {
return nullptr;
}
copy_type::MoveNonOverlappingRegion(Elements() + len, aArray.Elements(),
otherLen, sizeof(elem_type));
relocation_type::RelocateNonOverlappingRegion(
Elements() + len, aArray.Elements(), otherLen, sizeof(elem_type));
this->IncrementLength(otherLen);
aArray.template ShiftData<Alloc>(0, otherLen, 0, sizeof(elem_type),
MOZ_ALIGNOF(elem_type));
@ -2663,7 +2670,7 @@ class MOZ_NON_MEMMOVABLE AutoTArray : public nsTArray<E> {
private:
// nsTArray_base casts itself as an nsAutoArrayBase in order to get a pointer
// to mAutoBuf.
template <class Allocator, class Copier>
template <class Allocator, class RelocationStrategy>
friend class nsTArray_base;
void Init() {
@ -2714,8 +2721,8 @@ template <class E>
class AutoTArray<E, 0> : public nsTArray<E> {};
template <class E, size_t N>
struct nsTArray_CopyChooser<AutoTArray<E, N>> {
typedef nsTArray_CopyWithConstructors<AutoTArray<E, N>> Type;
struct nsTArray_RelocationStrategy<AutoTArray<E, N>> {
using Type = nsTArray_RelocateUsingMoveConstructor<AutoTArray<E, N>>;
};
// Span integration

View File

@ -558,7 +558,7 @@ namespace detail {
// The UntypedTArray type allows low-level access from XPConnect to nsTArray
// internals without static knowledge of the array element type in question.
class UntypedTArray : public nsTArray_base<nsTArrayFallibleAllocator,
nsTArray_CopyWithMemutils> {
nsTArray_RelocateUsingMemutils> {
public:
void* Elements() const { return static_cast<void*>(Hdr() + 1); }

View File

@ -47,13 +47,13 @@ struct Movable {
} // namespace TestTArray
template <>
struct nsTArray_CopyChooser<TestTArray::Copyable> {
typedef nsTArray_CopyWithConstructors<TestTArray::Copyable> Type;
struct nsTArray_RelocationStrategy<TestTArray::Copyable> {
using Type = nsTArray_RelocateUsingMoveConstructor<TestTArray::Copyable>;
};
template <>
struct nsTArray_CopyChooser<TestTArray::Movable> {
typedef nsTArray_CopyWithConstructors<TestTArray::Movable> Type;
struct nsTArray_RelocationStrategy<TestTArray::Movable> {
using Type = nsTArray_RelocateUsingMoveConstructor<TestTArray::Movable>;
};
namespace TestTArray {