Browse Source

Fixed DebugMethodInfo.GetBackingField for fields

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6262 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
David Srbecký 16 years ago
parent
commit
15a676dc13
  1. 7
      src/AddIns/Debugger/Debugger.Core/MetaData/DebugMethodInfo.cs
  2. 6
      src/AddIns/Debugger/Debugger.Core/MetaData/DebugType.cs

7
src/AddIns/Debugger/Debugger.Core/MetaData/DebugMethodInfo.cs

@ -337,10 +337,9 @@ namespace Debugger.MetaData
if (!success) return null; if (!success) return null;
MemberInfo member = declaringType.GetMember(token); // The token can be a field in different class (static or instance in base class) - so it might not be found in the next call
MemberInfo member;
if (member == null) return null; if (!declaringType.TryGetMember(token, out member)) return null;
if (!(member is DebugFieldInfo)) return null;
if (this.Process.Options.Verbose) { if (this.Process.Options.Verbose) {
this.Process.TraceMessage(string.Format("Found backing field for {0}: {1}", this.FullName, member.Name)); this.Process.TraceMessage(string.Format("Found backing field for {0}: {1}", this.FullName, member.Name));

6
src/AddIns/Debugger/Debugger.Core/MetaData/DebugType.cs

@ -281,6 +281,12 @@ namespace Debugger.MetaData
return membersByToken[(int)token]; return membersByToken[(int)token];
} }
/// <summary> Return member with the given token</summary>
public bool TryGetMember(uint token, out MemberInfo memberInfo)
{
return membersByToken.TryGetValue((int)token, out memberInfo);
}
public T GetMember<T>(string name, BindingFlags bindingFlags, Predicate<T> filter) where T:MemberInfo public T GetMember<T>(string name, BindingFlags bindingFlags, Predicate<T> filter) where T:MemberInfo
{ {
T[] res = GetMembers<T>(name, bindingFlags, filter); T[] res = GetMembers<T>(name, bindingFlags, filter);

Loading…
Cancel
Save