diff options
author | David Wrighton <davidwr@microsoft.com> | 2015-12-15 05:38:24 +0300 |
---|---|---|
committer | David Wrighton <davidwr@microsoft.com> | 2015-12-15 05:38:24 +0300 |
commit | f44356acdcecd48242354eadda1bcfae04d93ee4 (patch) | |
tree | b47d30d0b39d96047c9160296eb1399ae42c71b9 /src/Common | |
parent | 964952dfbda231ab28e582ce4638488729e94e57 (diff) |
Make the HandleType property on NativeFormat Metadata Handles public, and use it as appropriate (The current api uselessly takes a MetadataReader parameter and shuffles through several layers of indirection, and those can be non-free operations)
[tfs-changeset: 1557632]
Diffstat (limited to 'src/Common')
3 files changed, 6 insertions, 16 deletions
diff --git a/src/Common/src/Internal/Metadata/NativeFormat/NativeFormatReaderCommonGen.cs b/src/Common/src/Internal/Metadata/NativeFormat/NativeFormatReaderCommonGen.cs index 37d9594b7..ba3ea7b4c 100644 --- a/src/Common/src/Internal/Metadata/NativeFormat/NativeFormatReaderCommonGen.cs +++ b/src/Common/src/Internal/Metadata/NativeFormat/NativeFormatReaderCommonGen.cs @@ -1717,7 +1717,10 @@ namespace Internal.Metadata.NativeFormat internal interface IHandle : IEquatable<Handle>, IEquatable<Object> { int GetHashCode(); - HandleType GetHandleType(MetadataReader reader); + HandleType HandleType + { + get; + } // HandleType PropertySignatureHandle ToPropertySignatureHandle(MetadataReader reader); MethodSemanticsHandle ToMethodSemanticsHandle(MetadataReader reader); diff --git a/src/Common/src/Internal/Metadata/NativeFormat/NativeMetadataReader.cs b/src/Common/src/Internal/Metadata/NativeFormat/NativeMetadataReader.cs index b0519c4a9..d67a7038b 100644 --- a/src/Common/src/Internal/Metadata/NativeFormat/NativeMetadataReader.cs +++ b/src/Common/src/Internal/Metadata/NativeFormat/NativeMetadataReader.cs @@ -110,7 +110,7 @@ namespace Internal.Metadata.NativeFormat _value = (int)type << 24 | (int)offset; } - internal HandleType HandleType + public HandleType HandleType { get { @@ -126,11 +126,6 @@ namespace Internal.Metadata.NativeFormat } } - public HandleType GetHandleType(MetadataReader reader) - { - return (reader as MetadataReader).GetHandleType(this); - } - public bool IsNull(MetadataReader reader) { return reader.IsNull(this); @@ -199,14 +194,6 @@ namespace Internal.Metadata.NativeFormat } /// <summary> - /// Fetches the HandleType from a given Handle. - /// </summary> - public HandleType GetHandleType(Handle handle) - { - return (HandleType)(handle._value >> 24); - } - - /// <summary> /// Returns a Handle value representing the null value. Can be used /// to test handle values of all types for null. /// </summary> diff --git a/src/Common/src/Internal/Metadata/NativeFormat/Script/CsPublicGen2.py b/src/Common/src/Internal/Metadata/NativeFormat/Script/CsPublicGen2.py index 008566781..294d36305 100644 --- a/src/Common/src/Internal/Metadata/NativeFormat/Script/CsPublicGen2.py +++ b/src/Common/src/Internal/Metadata/NativeFormat/Script/CsPublicGen2.py @@ -303,7 +303,7 @@ def CsEmitSource(): Ty.IMetadataReader = CreateReader('IMetadataReader', recs, hnds) Ty.MetadataReader = ClassDef('MetadataReader', flags = TypeFlags.Partial, interfaces = [Ty.IMetadataReader]) - Ty.IHandle.members.add(MethodDef('GetHandleType', sig = [Ty.HandleType, [(Ty.MetadataReader, 'reader')]])) + Ty.IHandle.members.add(PropertyDef('HandleType', Ty.HandleType, getter = PropertyGetter())) ns.members.add(Ty.IMetadataReader) ns.members.add(Ty.MetadataReader) |