gecko-dev/xpcom/reflect/xptinfo
Andrew McCreight 81b1d1c977 Bug 1447849 - Eliminate the anonymous union from XPTTypeDescriptor. r=njn
For bug 1438688, I need to statically initialize all of the data types
in xpt_struct.h. It turns out that the approach I was using for unions
is C99 and not C++. While for some reason Clang and GCC are okay with
that, MSVC is not.

One of the unions is a gnarly anonymous union in
XPTTypeDescriptor. However, every arm of this union is either 1 or 2
uint8_t, so I think it is reasonable to eliminate the union and
replace it with two fields, mData1 and mData2. I've fixed up the
places that read this data to use accessor methods with nice asserts
about the tag on the variant, so if anything I think that part is
nicer.

The code in xpt_struct.cpp that writes to this data is maybe less
nice, but I'm deleting it in bug 1438688 so I think that's okay. We
also lose some detail in the comments about the relationship between
what is stored in memory compared to what is stored on disk, but I
think that's okay, too.

MozReview-Commit-ID: DGi19f8HnMi

--HG--
extra : rebase_source : e3535ecb3d7f02bdb643df153e8aba3e106d9104
2018-03-21 16:35:55 -07:00
..
ShimInterfaceInfo.cpp Bug 1444143 part 13. Remove nsIFrameLoader. r=mystor 2018-03-21 22:43:17 -04:00
ShimInterfaceInfo.h
TODO
XPTInterfaceInfoManager.h Bug 1442363, part 2 - Constify XPTHeader::interface_directory. r=njn 2018-02-27 15:08:42 -08:00
moz.build Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium 2017-12-07 22:09:15 +01:00
nsIInterfaceInfo.idl Bug 1296726, part 1 - Remove trailing whitespace from xpcom/reflect/xptinfo. r=froydnj 2016-08-23 06:05:01 -07:00
nsIInterfaceInfoManager.idl Bug 1296726, part 2 - Remove unused methods from nsIInterfaceInfoManager. r=froydnj 2016-08-23 06:05:01 -07:00
xptiInterfaceInfo.cpp Bug 1447849 - Eliminate the anonymous union from XPTTypeDescriptor. r=njn 2018-03-21 16:35:55 -07:00
xptiInterfaceInfoManager.cpp Bug 1445073 - Pass XPTInterfaceDirectoryEntry into xptiInterfaceEntry::Create(). r=njn 2018-03-12 11:17:48 -07:00
xptiTypelibGuts.cpp Bug 1444129, part 2 - Rename fields of XPTInterfaceDirectoryEntry. r=njn 2018-03-07 13:37:08 -08:00
xptiWorkingSet.cpp Bug 1249174 (part 7.5) - Avoid wasted space around XPT strings. r=khuey. 2016-02-23 16:17:58 +11:00
xptinfo.h Bug 1444129, part 7 - Rename fields of XPTMethodDescriptor. r=njn 2018-03-07 15:22:35 -08:00
xptiprivate.h Bug 1445073 - Pass XPTInterfaceDirectoryEntry into xptiInterfaceEntry::Create(). r=njn 2018-03-12 11:17:48 -07:00