The Method and Field table records don't carry a token (or RID) of the parent class, 
so the records in Method (or MethodPtr) and Field (or FieldPtr) tables pertaining to 
the same class must be contiguous. A TypeDef record carries RIDs of first method and 
field pertaining to this class.

With InterfaceImpl records, the story is quite different. First of all, a TypeDef 
record carries no RID or token pointing to the InterfaceImpl table. Second, an 
InterfaceImpl record carries both the RID of implementing class and the token of the 
implemented interface. Hence, there is no requirement that the InterfaceImpl records 
pertaining to the same class be contiguous.

Thanks,
Serge


-----Original Message-----
From: Brent E. Rector [mailto:[EMAIL PROTECTED]]
Sent: Saturday, May 11, 2002 11:38 PM
To: [EMAIL PROTECTED]
Subject: [DOTNET] Partition II metadata spec question


Re: the InterfaceImpl table.

In the metadata, the interfaces implemented by a type consume a
contiguous range in the InterfaceImpl table. That is, it's possible to
specify the interfaces implemented by a type using a tuple consisting of
the indices of first and last entries for the type in the InterfaceImpl
table.

Some other metadata tables explicitly support using such references
(Field, Method). However there is no such guarantee in the spec for the
InterfaceImpl table. Will the InterfaceImpl table always have a type's
interfaces listed in a contiguous range? (I'm assuming that Class==0
entries are ignored.)

Brent Rector
Demeanor for .NET - the premier .NET obfuscation utility
http://www.wiseowl.com/Products/Products.aspx

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to