| Newsgroups |
gmane.comp.gnome.mono.patches |
| Message-ID |
<0000014229aa6e31-6383f51e-7b2e-4c14-ba7e-9f999e8ba4b3-000000@email.amazonses.com> |
Branch: refs/heads/license-sync
Home: https://github.com/mono/monodevelop
Compare: https://github.com/mono/monodevelop/compare/3922fd55055c...051e904cc5e1
Commit: 051e904cc5e17ebf84885789231f200f7cf62dca
Author: Therzok <[email protected]> (Therzok)
Date: 2013-11-05 19:04:01 GMT
URL: https://github.com/mono/monodevelop/commit/051e904cc5e17ebf84885789231f200f7cf62dca
[CorDebug] Fix property reading issues.
Changed paths:
M main/src/addins/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataPropertyInfo.cs
M main/src/addins/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs
Modified: main/src/addins/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataPropertyInfo.cs
===================================================================
@@ -83,6 +83,12 @@ internal MetadataPropertyInfo (IMetadataImport importer, int propertyToken, Meta
m_propAttributes = (PropertyAttributes) pdwPropFlags;
m_name = szProperty.ToString ();
MetadataHelperFunctions.GetCustomAttribute (importer, propertyToken, typeof (System.Diagnostics.DebuggerBrowsableAttribute));
+
+ if (!m_importer.IsValidToken ((uint)m_pmdGetter))
+ m_pmdGetter = 0;
+
+ if (!m_importer.IsValidToken ((uint)m_pmdSetter))
+ m_pmdSetter = 0;
}
public override PropertyAttributes Attributes
@@ -107,11 +113,15 @@ public override MethodInfo[] GetAccessors (bool nonPublic)
public override MethodInfo GetGetMethod (bool nonPublic)
{
- if (m_getter == null) {
- if (m_pmdGetter != 0)
- m_getter = new MetadataMethodInfo (m_importer, m_pmdGetter);
- }
- return m_getter;
+ if (m_pmdGetter == 0)
+ return null;
+
+ if (m_getter == null)
+ m_getter = new MetadataMethodInfo (m_importer, m_pmdGetter);
+
+ if (nonPublic || m_getter.IsPublic)
+ return m_getter;
+ return null;
}
public override ParameterInfo[] GetIndexParameters ( )
@@ -124,11 +134,15 @@ public override ParameterInfo[] GetIndexParameters ( )
public override MethodInfo GetSetMethod (bool nonPublic)
{
- if (m_setter == null) {
- if (m_pmdSetter != 0)
- m_setter = new MetadataMethodInfo (m_importer, m_pmdSetter);
- }
- return m_setter;
+ if (m_pmdSetter == 0)
+ return null;
+
+ if (m_setter == null)
+ m_setter = new MetadataMethodInfo (m_importer, m_pmdSetter);
+
+ if (nonPublic || m_setter.IsPublic)
+ return m_setter;
+ return null;
}
public override object GetValue (object obj, BindingFlags invokeAttr, Binder binder, object[] index, System.Globalization.CultureInfo culture)
Modified: main/src/addins/MonoDevelop.Debugger.Win32/CorApi2/Metadata/MetadataType.cs
===================================================================
@@ -423,9 +423,9 @@ public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
break;
MetadataPropertyInfo prop = new MetadataPropertyInfo (m_importer, methodToken, this);
try {
- MethodInfo mi = prop.GetGetMethod ();
+ MethodInfo mi = prop.GetGetMethod () ?? prop.GetSetMethod ();
if (mi == null)
- mi = prop.GetSetMethod ();
+ continue;
if (FlagsMatch (mi.IsPublic, mi.IsStatic, bindingAttr))
al.Add (prop);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches