summaryrefslogtreecommitdiff
path: root/src/vm/jitinterface.cpp
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2018-12-03 12:52:20 -0800
committerGitHub <noreply@github.com>2018-12-03 12:52:20 -0800
commita089f64a7ad55a8ce0b3203b1bf87040775dff01 (patch)
treee408396ef22b34a5d06afbc235ee01ef29531e3e /src/vm/jitinterface.cpp
parent5632c9e3ac7f9dd6b858f175b2cf97963be996c4 (diff)
parent3bc3c61522c3a6c5663d5b4f9f535c4b3bc22a78 (diff)
downloadcoreclr-a089f64a7ad55a8ce0b3203b1bf87040775dff01.tar.gz
coreclr-a089f64a7ad55a8ce0b3203b1bf87040775dff01.tar.bz2
coreclr-a089f64a7ad55a8ce0b3203b1bf87040775dff01.zip
Merge pull request #21264 from fiigii/x64only
Implement 64-bit-only hardware intrinsic
Diffstat (limited to 'src/vm/jitinterface.cpp')
-rw-r--r--src/vm/jitinterface.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/vm/jitinterface.cpp b/src/vm/jitinterface.cpp
index 376bc2a260..63b407c488 100644
--- a/src/vm/jitinterface.cpp
+++ b/src/vm/jitinterface.cpp
@@ -6606,7 +6606,7 @@ const char* CEEInfo::getMethodName (CORINFO_METHOD_HANDLE ftnHnd, const char** s
return result;
}
-const char* CEEInfo::getMethodNameFromMetadata(CORINFO_METHOD_HANDLE ftnHnd, const char** className, const char** namespaceName)
+const char* CEEInfo::getMethodNameFromMetadata(CORINFO_METHOD_HANDLE ftnHnd, const char** className, const char** namespaceName, const char **enclosingClassName)
{
CONTRACTL {
SO_TOLERANT;
@@ -6618,6 +6618,7 @@ const char* CEEInfo::getMethodNameFromMetadata(CORINFO_METHOD_HANDLE ftnHnd, con
const char* result = NULL;
const char* classResult = NULL;
const char* namespaceResult = NULL;
+ const char* enclosingResult = NULL;
JIT_TO_EE_TRANSITION();
@@ -6626,10 +6627,16 @@ const char* CEEInfo::getMethodNameFromMetadata(CORINFO_METHOD_HANDLE ftnHnd, con
if (!IsNilToken(token))
{
- if (!FAILED(ftn->GetMDImport()->GetNameOfMethodDef(token, &result)))
+ MethodTable* pMT = ftn->GetMethodTable();
+ IMDInternalImport* pMDImport = pMT->GetMDImport();
+
+ IfFailThrow(pMDImport->GetNameOfMethodDef(token, &result));
+ IfFailThrow(pMDImport->GetNameOfTypeDef(pMT->GetCl(), &classResult, &namespaceResult));
+ // Query enclosingClassName when the method is in a nested class
+ // and get the namespace of enclosing classes (nested class's namespace is empty)
+ if (pMT->GetClass()->IsNested())
{
- MethodTable* pMT = ftn->GetMethodTable();
- classResult = pMT->GetFullyQualifiedNameInfo(&namespaceResult);
+ IfFailThrow(pMDImport->GetNameOfTypeDef(pMT->GetEnclosingCl(), &enclosingResult, &namespaceResult));
}
}
@@ -6643,6 +6650,11 @@ const char* CEEInfo::getMethodNameFromMetadata(CORINFO_METHOD_HANDLE ftnHnd, con
*namespaceName = namespaceResult;
}
+ if (enclosingClassName != NULL)
+ {
+ *enclosingClassName = enclosingResult;
+ }
+
EE_TO_JIT_TRANSITION();
return result;