summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike McLaughlin <mikem@microsoft.com>2015-04-13 18:27:46 -0700
committerMike McLaughlin <mikem@microsoft.com>2015-04-13 20:56:56 -0700
commit9f8ba7c36e4683ec28f03f3322f62d593a307427 (patch)
tree814aedfa77ff3b908f0d3d590686cb456b3c1a03 /src
parent1426853c339e0c101e9301bf442c94e2afb7555f (diff)
downloadcoreclr-9f8ba7c36e4683ec28f03f3322f62d593a307427.tar.gz
coreclr-9f8ba7c36e4683ec28f03f3322f62d593a307427.tar.bz2
coreclr-9f8ba7c36e4683ec28f03f3322f62d593a307427.zip
Add back security classes to dac global vtable.
Diffstat (limited to 'src')
-rw-r--r--src/inc/daccess.h8
-rw-r--r--src/inc/vptr_list.h2
-rw-r--r--src/vm/security.h13
-rw-r--r--src/vm/securitydescriptor.h7
-rw-r--r--src/vm/securitydescriptorappdomain.h2
-rw-r--r--src/vm/securitydescriptorassembly.h2
6 files changed, 16 insertions, 18 deletions
diff --git a/src/inc/daccess.h b/src/inc/daccess.h
index e4f011b3ef..b44c895f8c 100644
--- a/src/inc/daccess.h
+++ b/src/inc/daccess.h
@@ -1864,6 +1864,9 @@ public: name(TADDR addr, TADDR vtAddr); \
#define VPTR_ABSTRACT_VTABLE_CLASS(name, base) \
public: name(TADDR addr, TADDR vtAddr) : base(addr, vtAddr) {}
+#define VPTR_ABSTRACT_VTABLE_CLASS_AND_CTOR(name, base) \
+ VPTR_ABSTRACT_VTABLE_CLASS(name, base)
+
#define VPTR_ABSTRACT_VTABLE_CLASS_NO_CTOR_BODY(name, base) \
public: name(TADDR addr, TADDR vtAddr);
@@ -2131,6 +2134,10 @@ public: name(int dummy) {}
friend struct _DacGlobals; \
public: name(int dummy) : base(dummy) {}
+#define VPTR_ABSTRACT_VTABLE_CLASS_AND_CTOR(name, base) \
+ VPTR_ABSTRACT_VTABLE_CLASS(name, base) \
+ name() : base() {}
+
#else // FEATURE_PAL
#define VPTR_VTABLE_CLASS(name, base)
@@ -2140,6 +2147,7 @@ public: name(int dummy) : base(dummy) {}
#define VPTR_BASE_VTABLE_CLASS(name)
#define VPTR_BASE_VTABLE_CLASS_AND_CTOR(name)
#define VPTR_ABSTRACT_VTABLE_CLASS(name, base)
+#define VPTR_ABSTRACT_VTABLE_CLASS_AND_CTOR(name, base)
#endif // FEATURE_PAL
diff --git a/src/inc/vptr_list.h b/src/inc/vptr_list.h
index 352f6f83a0..a5198bb89f 100644
--- a/src/inc/vptr_list.h
+++ b/src/inc/vptr_list.h
@@ -153,7 +153,5 @@ VPTR_CLASS(GlobalLoaderAllocator)
VPTR_CLASS(AppDomainLoaderAllocator)
VPTR_CLASS(AssemblyLoaderAllocator)
-#ifndef FEATURE_PAL
VPTR_CLASS(AssemblySecurityDescriptor)
VPTR_CLASS(ApplicationSecurityDescriptor)
-#endif // FEATURE_PAL
diff --git a/src/vm/security.h b/src/vm/security.h
index f549b1045b..fbc9256138 100644
--- a/src/vm/security.h
+++ b/src/vm/security.h
@@ -248,9 +248,8 @@ namespace Security
class ISecurityDescriptor
{
public:
-#ifndef FEATURE_PAL
- VPTR_BASE_VTABLE_CLASS(ISecurityDescriptor)
-#endif
+ VPTR_BASE_VTABLE_CLASS_AND_CTOR(ISecurityDescriptor)
+
virtual ~ISecurityDescriptor() { LIMITED_METHOD_CONTRACT; }
virtual BOOL IsFullyTrusted() = 0;
@@ -278,9 +277,7 @@ public:
class IApplicationSecurityDescriptor : public ISecurityDescriptor
{
public:
-#ifndef FEATURE_PAL
- VPTR_ABSTRACT_VTABLE_CLASS(IApplicationSecurityDescriptor, ISecurityDescriptor)
-#endif
+ VPTR_ABSTRACT_VTABLE_CLASS_AND_CTOR(IApplicationSecurityDescriptor, ISecurityDescriptor)
#ifndef DACCESS_COMPILE
public:
@@ -324,9 +321,7 @@ public:
class IAssemblySecurityDescriptor : public ISecurityDescriptor
{
public:
-#ifndef FEATURE_PAL
- VPTR_ABSTRACT_VTABLE_CLASS(IAssemblySecurityDescriptor, ISecurityDescriptor)
-#endif
+ VPTR_ABSTRACT_VTABLE_CLASS_AND_CTOR(IAssemblySecurityDescriptor, ISecurityDescriptor)
#ifndef DACCESS_COMPILE
virtual SharedSecurityDescriptor *GetSharedSecDesc() = 0;
diff --git a/src/vm/securitydescriptor.h b/src/vm/securitydescriptor.h
index 5d52f0494b..e45b95ac0b 100644
--- a/src/vm/securitydescriptor.h
+++ b/src/vm/securitydescriptor.h
@@ -132,16 +132,17 @@ protected:
//--------------------
#ifndef DACCESS_COMPILE
inline SecurityDescriptor(AppDomain *pAppDomain, DomainAssembly *pAssembly, PEFile* pPEFile, LoaderAllocator *pLoaderAllocator);
-#endif // #ifndef DACCESS_COMPILE
+#ifdef FEATURE_PAL
+ SecurityDescriptor() {}
+#endif // FEATURE_PAL
+#endif // !DACCESS_COMPILE
};
template<typename IT>
class SecurityDescriptorBase : public IT, public SecurityDescriptor
{
public:
-#ifndef FEATURE_PAL
VPTR_ABSTRACT_VTABLE_CLASS(SecurityDescriptorBase, IT) // needed for the DAC
-#endif
inline SecurityDescriptorBase(AppDomain *pAppDomain, DomainAssembly *pAssembly, PEFile* pPEFile, LoaderAllocator *pLoaderAllocator);
diff --git a/src/vm/securitydescriptorappdomain.h b/src/vm/securitydescriptorappdomain.h
index 6deab32c2d..d39cf0e3a9 100644
--- a/src/vm/securitydescriptorappdomain.h
+++ b/src/vm/securitydescriptorappdomain.h
@@ -36,9 +36,7 @@
class ApplicationSecurityDescriptor : public SecurityDescriptorBase<IApplicationSecurityDescriptor>
{
public:
-#ifndef FEATURE_PAL
VPTR_VTABLE_CLASS(ApplicationSecurityDescriptor, SecurityDescriptorBase<IApplicationSecurityDescriptor>)
-#endif
private:
// Dependency in managed : System.Security.HostSecurityManager.cs
diff --git a/src/vm/securitydescriptorassembly.h b/src/vm/securitydescriptorassembly.h
index 3687538a06..306ac24517 100644
--- a/src/vm/securitydescriptorassembly.h
+++ b/src/vm/securitydescriptorassembly.h
@@ -57,9 +57,7 @@ void StoreObjectInLazyHandle(LOADERHANDLE& handle, OBJECTREF ref, LoaderAllocato
class AssemblySecurityDescriptor : public SecurityDescriptorBase<IAssemblySecurityDescriptor>
{
public:
-#ifndef FEATURE_PAL
VPTR_VTABLE_CLASS(AssemblySecurityDescriptor, SecurityDescriptorBase<IAssemblySecurityDescriptor>)
-#endif
private:
PsetCacheEntry* m_arrPassedLinktimeDemands[MAX_PASSED_DEMANDS];