From 1c50fbfaeb86db35f6b0027da02433d2268c8437 Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Fri, 30 Mar 2018 16:15:14 -0700 Subject: [PATCH 1/2] [Feature] Some random fixes when reading code --- .../engine/CoreAdapter.cs | 4 ++-- .../engine/EventManager.cs | 2 +- .../engine/InitialSessionState.cs | 2 +- src/System.Management.Automation/engine/MshObject.cs | 8 ++++---- .../engine/SessionStateProviderAPIs.cs | 11 +++++------ 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/System.Management.Automation/engine/CoreAdapter.cs b/src/System.Management.Automation/engine/CoreAdapter.cs index 1092fa290f3..dc6d14bcd3d 100644 --- a/src/System.Management.Automation/engine/CoreAdapter.cs +++ b/src/System.Management.Automation/engine/CoreAdapter.cs @@ -4252,7 +4252,7 @@ protected override T GetMember(object obj, string memberName) // are ignored. if (typeof(T) == typeof(PSMemberInfo)) { - T returnValue = PSObject.dotNetInstanceAdapter.GetDotNetMethod(obj, memberName); + T returnValue = base.GetDotNetMethod(obj, memberName); // We only return a method if there is no property by the same name // to match the behavior we have in GetMembers if (returnValue != null && property == null) @@ -4263,7 +4263,7 @@ protected override T GetMember(object obj, string memberName) if (IsTypeParameterizedProperty(typeof(T))) { - PSParameterizedProperty parameterizedProperty = PSObject.dotNetInstanceAdapter.GetDotNetProperty(obj, memberName); + PSParameterizedProperty parameterizedProperty = base.GetDotNetProperty(obj, memberName); // We only return a parameterized property if there is no property by the same name // to match the behavior we have in GetMembers if (parameterizedProperty != null && property == null) diff --git a/src/System.Management.Automation/engine/EventManager.cs b/src/System.Management.Automation/engine/EventManager.cs index b279481ef49..46779076fdf 100644 --- a/src/System.Management.Automation/engine/EventManager.cs +++ b/src/System.Management.Automation/engine/EventManager.cs @@ -2029,7 +2029,7 @@ internal PSEventSubscriber(ExecutionContext context, int id, Object source, internal void RegisterJob() { - // And this event subscriber to the job repository if it's not a support event. + // Add this event subscriber to the job repository if it's not a support event. if (!SupportEvent) { if (this.Action != null) diff --git a/src/System.Management.Automation/engine/InitialSessionState.cs b/src/System.Management.Automation/engine/InitialSessionState.cs index 68a37b8c3ad..582199fb026 100644 --- a/src/System.Management.Automation/engine/InitialSessionState.cs +++ b/src/System.Management.Automation/engine/InitialSessionState.cs @@ -5219,7 +5219,7 @@ internal static void AnalyzePSSnapInAssembly(Assembly assembly, string name, PSS { clone[entry.Key] = (SessionStateProviderEntry)entry.Value.Clone(); } - s_providerCache.Value[assembly] = providers; + s_providerCache.Value[assembly] = clone; } } diff --git a/src/System.Management.Automation/engine/MshObject.cs b/src/System.Management.Automation/engine/MshObject.cs index 1e3589a0b21..2bfb73f873e 100644 --- a/src/System.Management.Automation/engine/MshObject.cs +++ b/src/System.Management.Automation/engine/MshObject.cs @@ -171,9 +171,9 @@ private static PSMemberInfoInternalCollection AdapterGetMembersDelegate(PS private static PSMemberInfoInternalCollection DotNetGetMembersDelegate(PSObject msjObj) where T : PSMemberInfo { // Don't lookup dotnet members if the object doesn't insist. - if (null != msjObj.InternalAdapterSet.DotNetAdapter) + if (null != msjObj.InternalBaseDotNetAdapter) { - PSMemberInfoInternalCollection retValue = msjObj.InternalAdapterSet.DotNetAdapter.BaseGetMembers(msjObj._immediateBaseObject); + PSMemberInfoInternalCollection retValue = msjObj.InternalBaseDotNetAdapter.BaseGetMembers(msjObj._immediateBaseObject); PSObject.memberResolution.WriteLine("DotNet members: {0}.", retValue.VisibleCount); return retValue; } @@ -184,9 +184,9 @@ private static PSMemberInfoInternalCollection DotNetGetMembersDelegate(PSO private static T DotNetGetMemberDelegate(PSObject msjObj, string name) where T : PSMemberInfo { // Don't lookup dotnet member if the object doesn't insist. - if (null != msjObj.InternalAdapterSet.DotNetAdapter) + if (null != msjObj.InternalBaseDotNetAdapter) { - T retValue = msjObj.InternalAdapterSet.DotNetAdapter.BaseGetMember(msjObj._immediateBaseObject, name); + T retValue = msjObj.InternalBaseDotNetAdapter.BaseGetMember(msjObj._immediateBaseObject, name); PSObject.memberResolution.WriteLine("DotNet member: {0}.", retValue == null ? "not found" : retValue.Name); return retValue; } diff --git a/src/System.Management.Automation/engine/SessionStateProviderAPIs.cs b/src/System.Management.Automation/engine/SessionStateProviderAPIs.cs index 4608c005aee..8975c390b30 100644 --- a/src/System.Management.Automation/engine/SessionStateProviderAPIs.cs +++ b/src/System.Management.Automation/engine/SessionStateProviderAPIs.cs @@ -58,12 +58,11 @@ internal Dictionary ProvidersCurrentWorkingDrive /// internal void AddSessionStateEntry(SessionStateProviderEntry providerEntry) { - ProviderInfo provider = AddProvider(providerEntry.ImplementingType, - providerEntry.Name, - providerEntry.HelpFileName, - providerEntry.PSSnapIn, - providerEntry.Module - ); + AddProvider(providerEntry.ImplementingType, + providerEntry.Name, + providerEntry.HelpFileName, + providerEntry.PSSnapIn, + providerEntry.Module); } private ProviderInfo AddProvider(Type implementingType, string name, string helpFileName, PSSnapInInfo psSnapIn, PSModuleInfo module) From aeef7a9c802efa8c28ccb433f31e7040ad2d9717 Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Tue, 3 Apr 2018 13:53:11 -0700 Subject: [PATCH 2/2] [Feature] Change 'PSObject.dotNetInstanceAdapter' to 'base' in PropertyOnlyAdapter --- src/System.Management.Automation/engine/CoreAdapter.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/System.Management.Automation/engine/CoreAdapter.cs b/src/System.Management.Automation/engine/CoreAdapter.cs index dc6d14bcd3d..36ecbad3250 100644 --- a/src/System.Management.Automation/engine/CoreAdapter.cs +++ b/src/System.Management.Automation/engine/CoreAdapter.cs @@ -4604,7 +4604,7 @@ protected override T GetMember(object obj, string memberName) if (typeof(T).IsAssignableFrom(typeof(PSMethod))) { - T returnValue = PSObject.dotNetInstanceAdapter.GetDotNetMethod(obj, memberName); + T returnValue = base.GetDotNetMethod(obj, memberName); // We only return a method if there is no property by the same name // to match the behavior we have in GetMembers if (returnValue != null && property == null) @@ -4614,7 +4614,7 @@ protected override T GetMember(object obj, string memberName) } if (IsTypeParameterizedProperty(typeof(T))) { - PSParameterizedProperty parameterizedProperty = PSObject.dotNetInstanceAdapter.GetDotNetProperty(obj, memberName); + PSParameterizedProperty parameterizedProperty = base.GetDotNetProperty(obj, memberName); // We only return a parameterized property if there is no property by the same name // to match the behavior we have in GetMembers if (parameterizedProperty != null && property == null) @@ -4644,11 +4644,11 @@ protected override PSMemberInfoInternalCollection GetMembers(object obj) { DoAddAllProperties(obj, returnValue); } - PSObject.dotNetInstanceAdapter.AddAllMethods(obj, returnValue, true); + base.AddAllMethods(obj, returnValue, true); if (IsTypeParameterizedProperty(typeof(T))) { var parameterizedProperties = new PSMemberInfoInternalCollection(); - PSObject.dotNetInstanceAdapter.AddAllProperties(obj, parameterizedProperties, true); + base.AddAllProperties(obj, parameterizedProperties, true); foreach (PSParameterizedProperty parameterizedProperty in parameterizedProperties) { try