1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<!-- Mozilla Gecko Visualizers -->
<Type Name="mozilla::Maybe<*>">
<DisplayString Condition="mIsSome == false">Nothing</DisplayString>
<DisplayString Condition="mIsSome == true">Some({*($T1 *)&mStorage.val})</DisplayString>
<Expand>
<ExpandedItem Condition="mIsSome == true">*($T1 *)&mStorage.val</ExpandedItem>
</Expand>
</Type>
<Type Name="mozilla::Result<*,*>">
<DisplayString>{mImpl}</DisplayString>
</Type>
<Type Name="mozilla::detail::ResultImplementation<*,*,mozilla::detail::PackingStrategy::Variant>">
<DisplayString Condition="mStorage.tag == false">ok: {*($T1 *)(mStorage.rawData)}</DisplayString>
<DisplayString Condition="mStorage.tag == true">err: {*($T2 *)(mStorage.rawData)}</DisplayString>
<DisplayString>%% invalid storage tag in variant %%</DisplayString>
<Expand>
<ExpandedItem Condition="mStorage.tag == false">*($T1 *)(mStorage.rawData)</ExpandedItem>
<ExpandedItem Condition="mStorage.tag == true">*($T2 *)(mStorage.rawData)</ExpandedItem>
</Expand>
</Type>
<!-- nsTArray -->
<Type Name="nsTArray<*>">
<DisplayString Condition="mHdr->mLength == 0 && mHdr->mCapacity == 0">empty</DisplayString>
<DisplayString Condition="mHdr->mLength == mHdr->mCapacity">size = {mHdr->mLength}</DisplayString>
<DisplayString>size = {mHdr->mLength}, capacity = {mHdr->mCapacity}</DisplayString>
<Expand>
<ArrayItems Condition="mHdr->mLength > 0">
<Size>mHdr->mLength</Size>
<ValuePointer>($T1*)(mHdr + 1)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<!-- refcounts -->
<Type Name="nsAutoRefCnt">
<DisplayString>{mValue}</DisplayString>
</Type>
<Type Name="nsCycleCollectingAutoRefCnt">
<!-- this value needs to be updated if NS_NUMBER_OF_FLAGS_IN_REFCNT in xpcom/glue/nsISupportsImpl.h changes -->
<DisplayString>{mValue >> 2}</DisplayString>
<Expand>
<Synthetic Name="In Purple Buffer"><DisplayString>{mValue & 1 != 0}</DisplayString></Synthetic>
<Synthetic Name="Is Purple"><DisplayString>{mValue & 2 != 0}</DisplayString></Synthetic>
</Expand>
</Type>
<Type Name="mozilla::ThreadSafeAutoRefCnt">
<DisplayString>{mValue.mValue._My_val}</DisplayString>
</Type>
<!-- smart pointer/refcount pointer things -->
<Type Name="nsRefPtr<*>">
<AlternativeType Name="nsCOMPtr<*>" />
<AlternativeType Name="nsAutoPtr<*>" />
<AlternativeType Name="mozilla::WebGLRefPtr<*>" />
<DisplayString Condition="mRawPtr == 0">NULL</DisplayString>
<DisplayString>{*($T1*)mRawPtr}</DisplayString>
<Expand>
<ExpandedItem>($T1*)mRawPtr</ExpandedItem>
</Expand>
</Type>
<!-- strings -->
<Type Name="nsTString<char>">
<AlternativeType Name="nsTLiteralString<char>" />
<AlternativeType Name="mozilla::detail::nsTStringRepr<char>" />
<AlternativeType Name="nsTSubstring<char>" />
<DisplayString>{mData,s}</DisplayString>
<StringView>mData,s</StringView>
<Expand>
<Item Name="Length">mLength</Item>
<Item Name="Flags">mDataFlags</Item>
</Expand>
</Type>
<Type Name="nsTSubstringTuple<char>">
<DisplayString Condition="mHead != nullptr">{mHead,na} {mFragB->mData,s}</DisplayString>
<DisplayString Condition="mHead == nullptr">{mFragA->mData,s} {mFragB->mData,s}</DisplayString>
</Type>
<Type Name="nsTString<char16_t>">
<AlternativeType Name="nsTLiteralString<char16_t>" />
<AlternativeType Name="mozilla::detail::nsTStringRepr<char16_t>" />
<AlternativeType Name="nsTSubstring<char16_t>" />
<DisplayString>{mData,su}</DisplayString>
<StringView>mData,su</StringView>
<Expand>
<Item Name="Length">mLength</Item>
<Item Name="Flags">mDataFlags</Item>
</Expand>
</Type>
<Type Name="nsTSubstringTuple<char16_t>">
<DisplayString Condition="mHead != nullptr">{mHead,na} {mFragB->mData,su}</DisplayString>
<DisplayString Condition="mHead == nullptr">{mFragA->mData,su} {mFragB->mData,su}</DisplayString>
</Type>
<!-- rects, points, etc. -->
<Type Name="mozilla::gfx::BaseRect<*,*,*,*,*>">
<AlternativeType Name="mozilla::gfx::Rect" />
<DisplayString>x={x}, y={y}, width={width}, height={height}</DisplayString>
</Type>
<Type Name="mozilla::gfx::BaseSize<*,*>">
<AlternativeType Name="mozilla::gfx::Size" />
<AlternativeType Name="nsIntSize" />
<DisplayString>width={width}, height={height}</DisplayString>
</Type>
<Type Name="mozilla::gfx::BasePoint<*,*>">
<AlternativeType Name="mozilla::gfx::Point" />
<DisplayString>x={x}, y={y}</DisplayString>
</Type>
<Type Name="mozilla::gfx::Matrix4x4">
<AlternativeType Name="gfx3DMatrix" />
<DisplayString Condition="(_11==_22==_33==_44==1) && (_12==_13==_14==_21==_23==_24==_31==_32==_34==_41==_42==_43==0)">[Identity]</DisplayString>
<DisplayString Condition="(_11==_22==_33==_44==1) && (_12==_13==_14==_21==_23==_24==_31==_32==_34==0)">[Translate: ({_41}, {_42}, {_43})]</DisplayString>
<DisplayString Condition="_44==1 && (_12==_13==_14==_21==_23==_24==_31==_32==_34==_41==_42==_43==0)">[Scale: ({_11}, {_22}, {_33})]</DisplayString>
<DisplayString>[4x4 Matrix]</DisplayString>
<Expand>
<Synthetic Name="R1"><DisplayString>[{_11}, {_12}, {_13}, {_14}]</DisplayString></Synthetic>
<Synthetic Name="R2"><DisplayString>[{_21}, {_22}, {_23}, {_24}]</DisplayString></Synthetic>
<Synthetic Name="R3"><DisplayString>[{_31}, {_32}, {_33}, {_34}]</DisplayString></Synthetic>
<Synthetic Name="R4"><DisplayString>[{_41}, {_42}, {_43}, {_44}]</DisplayString></Synthetic>
</Expand>
</Type>
<!-- JS types -->
<Type Name="JS::Handle<*>">
<DisplayString Condition="ptr == 0">NULL</DisplayString>
<DisplayString>{*($T1*)ptr}</DisplayString>
<Expand>
<ExpandedItem>($T1*)ptr</ExpandedItem>
</Expand>
</Type>
</AutoVisualizer>
|