From d3c974a8385955ae20588cd305719f59e200e6c0 Mon Sep 17 00:00:00 2001 From: Crawcik Date: Fri, 23 Apr 2021 08:31:00 +0200 Subject: [PATCH 1/2] Access modifier detection fix --- Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp b/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp index 2013cffd7..2ffd39ff3 100644 --- a/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp @@ -33,15 +33,15 @@ MMethod::MMethod(MonoMethod* monoMethod, const char* name, MClass* parentClass) case MONO_METHOD_ATTR_PRIVATE: _visibility = MVisibility::Private; break; - case MONO_METHOD_ATTR_FAM_AND_ASSEM: - _visibility = MVisibility::ProtectedInternal; - break; case MONO_METHOD_ATTR_ASSEM: _visibility = MVisibility::Internal; break; case MONO_METHOD_ATTR_FAMILY: _visibility = MVisibility::Protected; break; + case MONO_METHOD_ATTR_FAM_OR_ASSEM: + _visibility = MVisibility::ProtectedInternal; + break; case MONO_METHOD_ATTR_PUBLIC: _visibility = MVisibility::Public; break; From ac33ba432d1f92c14cb8e30b239b8fa8cff26f74 Mon Sep 17 00:00:00 2001 From: Crawcik Date: Fri, 23 Apr 2021 14:02:16 +0200 Subject: [PATCH 2/2] Adding private protected access modifier --- Source/Engine/Scripting/ManagedCLR/MClass.Mono.cpp | 4 +++- Source/Engine/Scripting/ManagedCLR/MField.Mono.cpp | 5 ++++- Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp | 3 +++ Source/Engine/Scripting/ManagedCLR/MTypes.h | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Scripting/ManagedCLR/MClass.Mono.cpp b/Source/Engine/Scripting/ManagedCLR/MClass.Mono.cpp index 9e823ea20..21551afc0 100644 --- a/Source/Engine/Scripting/ManagedCLR/MClass.Mono.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MClass.Mono.cpp @@ -51,10 +51,12 @@ MClass::MClass(const MAssembly* parentAssembly, MonoClass* monoClass, const MStr case MONO_TYPE_ATTR_NESTED_ASSEMBLY: _visibility = MVisibility::Internal; break; - case MONO_TYPE_ATTR_NESTED_FAM_AND_ASSEM: case MONO_TYPE_ATTR_NESTED_FAM_OR_ASSEM: _visibility = MVisibility::ProtectedInternal; break; + case MONO_TYPE_ATTR_NESTED_FAM_AND_ASSEM: + _visibility = MVisibility::PrivateProtected; + break; default: CRASH; } diff --git a/Source/Engine/Scripting/ManagedCLR/MField.Mono.cpp b/Source/Engine/Scripting/ManagedCLR/MField.Mono.cpp index 3ca21be78..cea174462 100644 --- a/Source/Engine/Scripting/ManagedCLR/MField.Mono.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MField.Mono.cpp @@ -28,7 +28,7 @@ MField::MField(MonoClassField* monoField, const char* name, MClass* parentClass) _visibility = MVisibility::Private; break; case MONO_FIELD_ATTR_FAM_AND_ASSEM: - _visibility = MVisibility::ProtectedInternal; + _visibility = MVisibility::PrivateProtected; break; case MONO_FIELD_ATTR_ASSEMBLY: _visibility = MVisibility::Internal; @@ -36,6 +36,9 @@ MField::MField(MonoClassField* monoField, const char* name, MClass* parentClass) case MONO_FIELD_ATTR_FAMILY: _visibility = MVisibility::Protected; break; + case MONO_FIELD_ATTR_FAM_OR_ASSEM: + _visibility = MVisibility::ProtectedInternal; + break; case MONO_FIELD_ATTR_PUBLIC: _visibility = MVisibility::Public; break; diff --git a/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp b/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp index 2ffd39ff3..d1e8a6cef 100644 --- a/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MMethod.Mono.cpp @@ -33,6 +33,9 @@ MMethod::MMethod(MonoMethod* monoMethod, const char* name, MClass* parentClass) case MONO_METHOD_ATTR_PRIVATE: _visibility = MVisibility::Private; break; + case MONO_METHOD_ATTR_FAM_AND_ASSEM: + _visibility = MVisibility::PrivateProtected; + break; case MONO_METHOD_ATTR_ASSEM: _visibility = MVisibility::Internal; break; diff --git a/Source/Engine/Scripting/ManagedCLR/MTypes.h b/Source/Engine/Scripting/ManagedCLR/MTypes.h index 9ff4062f2..4a79758b4 100644 --- a/Source/Engine/Scripting/ManagedCLR/MTypes.h +++ b/Source/Engine/Scripting/ManagedCLR/MTypes.h @@ -62,8 +62,9 @@ class MType; enum class MVisibility { Private, - Protected, + PrivateProtected, Internal, + Protected, ProtectedInternal, Public, };