summaryrefslogtreecommitdiff
path: root/src/vm/clsload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/clsload.cpp')
-rw-r--r--src/vm/clsload.cpp39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/vm/clsload.cpp b/src/vm/clsload.cpp
index ff4d0a0724..9eccd5ec21 100644
--- a/src/vm/clsload.cpp
+++ b/src/vm/clsload.cpp
@@ -438,34 +438,63 @@ TypeHandle ClassLoader::LoadTypeByNameThrowing(Assembly *pAssembly,
ClassLoader::LoadTypesFlag fLoadTypes,
ClassLoadLevel level)
{
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing B\n");
CONTRACT(TypeHandle)
{
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
if (FORBIDGC_LOADER_USE_ENABLED()) NOTHROW; else THROWS;
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
if (FORBIDGC_LOADER_USE_ENABLED()) GC_NOTRIGGER; else GC_TRIGGERS;
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
if (FORBIDGC_LOADER_USE_ENABLED()) FORBID_FAULT; else { INJECT_FAULT(COMPlusThrowOM()); }
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
MODE_ANY;
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
if (FORBIDGC_LOADER_USE_ENABLED() || fLoadTypes != LoadTypes) { LOADS_TYPE(CLASS_LOAD_BEGIN); } else { LOADS_TYPE(level); }
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
PRECONDITION(CheckPointer(pAssembly));
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
PRECONDITION(level > CLASS_LOAD_BEGIN && level <= CLASS_LOADED);
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
POSTCONDITION(CheckPointer(RETVAL,
(fNotFound == ThrowIfNotFound && fLoadTypes == LoadTypes )? NULL_NOT_OK : NULL_OK));
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
POSTCONDITION(RETVAL.IsNull() || RETVAL.CheckLoadLevel(level));
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
SUPPORTS_DAC;
#ifdef DACCESS_COMPILE
PRECONDITION((fNotFound == ClassLoader::ReturnNullIfNotFound) && (fLoadTypes == DontLoadTypes));
#endif
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
}
CONTRACT_END
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
NameHandle nameHandle(nameSpace, name);
- if (fLoadTypes == DontLoadTypes)
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ if (fLoadTypes == DontLoadTypes) {
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
nameHandle.SetTokenNotToLoad(tdAllTypes);
- if (fNotFound == ThrowIfNotFound)
- RETURN pAssembly->GetLoader()->LoadTypeHandleThrowIfFailed(&nameHandle, level);
- else
- RETURN pAssembly->GetLoader()->LoadTypeHandleThrowing(&nameHandle, level);
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ }
+
+ TypeHandle ret;
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ if (fNotFound == ThrowIfNotFound) {
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ ret = pAssembly->GetLoader()->LoadTypeHandleThrowIfFailed(&nameHandle, level);
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ } else {
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ ret = pAssembly->GetLoader()->LoadTypeHandleThrowing(&nameHandle, level);
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing == [%s +%d]\n", __FILE__, __LINE__);
+ }
+
+ dprintf(1, "#### ClassLoader::LoadTypeByNameThrowing E: ret=%p\n", ret);
+
+ RETURN ret;
}
#ifndef DACCESS_COMPILE