summaryrefslogtreecommitdiff
path: root/src/md/winmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/md/winmd')
-rw-r--r--src/md/winmd/adapter.cpp28
-rw-r--r--src/md/winmd/inc/adapter.h2
-rw-r--r--src/md/winmd/winmdimport.cpp30
3 files changed, 37 insertions, 23 deletions
diff --git a/src/md/winmd/adapter.cpp b/src/md/winmd/adapter.cpp
index 5b4d95cc7c..2c9dd1b9fd 100644
--- a/src/md/winmd/adapter.cpp
+++ b/src/md/winmd/adapter.cpp
@@ -88,6 +88,8 @@ HRESULT CheckIfWinMDAdapterNeeded(IMDCommon *pRawMDCommon)
HRESULT hr;
LPWSTR wszCorVersion = NULL;
WinMDAdapter* pNewAdapter = NULL;
+ ULONG numAssemblyRefs = 0;
+ const char *szClrPortion = NULL;
*ppAdapter = NULL;
@@ -102,7 +104,7 @@ HRESULT CheckIfWinMDAdapterNeeded(IMDCommon *pRawMDCommon)
//------------------------------------------------------------------------------------------------
LPCSTR szVersion;
IfFailGo(pRawMDCommon->GetVersionString(&szVersion));
- const char *szClrPortion = strchr(szVersion, ';');
+ szClrPortion = strchr(szVersion, ';');
if (szClrPortion)
{
pNewAdapter->m_scenario = kWinMDExp;
@@ -148,7 +150,7 @@ HRESULT CheckIfWinMDAdapterNeeded(IMDCommon *pRawMDCommon)
//------------------------------------------------------------------------------------------------
// Find an assemblyRef to mscorlib (required to exist in .winmd files precisely to make the adapter's job easier.
//------------------------------------------------------------------------------------------------
- ULONG numAssemblyRefs = pNewAdapter->m_pRawMetaModelCommonRO->CommonGetRowCount(mdtAssemblyRef);
+ numAssemblyRefs = pNewAdapter->m_pRawMetaModelCommonRO->CommonGetRowCount(mdtAssemblyRef);
pNewAdapter->m_assemblyRefMscorlib = 0;
pNewAdapter->m_fReferencesMscorlibV4 = FALSE;
for (ULONG rid = 1; rid <= numAssemblyRefs; rid++)
@@ -860,10 +862,11 @@ WinMDAdapter::GetTypeRefProps(
HRESULT hr;
ULONG treatment;
+ ULONG treatmentClass;
IfFailGo(GetTypeRefTreatment(tkTypeRef, &treatment));
_ASSERTE(treatment != kTrNotYetInitialized);
- ULONG treatmentClass = treatment & kTrClassMask;
+ treatmentClass = treatment & kTrClassMask;
if (treatmentClass == kTrClassWellKnownRedirected)
{
ULONG nRewritePairIndex = treatment & ~kTrClassMask;
@@ -998,9 +1001,10 @@ WinMDAdapter::GetTypeRefRedirectedInfo(
HRESULT hr;
ULONG treatment;
+ ULONG treatmentClass;
IfFailGo(GetTypeRefTreatment(tkTypeRef, &treatment));
- ULONG treatmentClass = treatment & kTrClassMask;
+ treatmentClass = treatment & kTrClassMask;
if (treatmentClass == kTrClassWellKnownRedirected)
{
*pIndex = (RedirectedTypeIndex)(treatment & ~kTrClassMask);
@@ -1278,11 +1282,14 @@ HRESULT WinMDAdapter::ModifyMethodProps(mdMethodDef tkMethodDef, /*[in, out]*/ D
_ASSERTE(TypeFromToken(tkMethodDef) == mdtMethodDef);
ULONG mdTreatment;
+ DWORD dwAttr;
+ DWORD dwImplFlags;
+ ULONG ulRVA;
IfFailGo(GetMethodDefTreatment(tkMethodDef, &mdTreatment));
- DWORD dwAttr = pdwAttr ? *pdwAttr: 0;
- DWORD dwImplFlags = pdwImplFlags ? *pdwImplFlags : 0;
- ULONG ulRVA = pulRVA ? *pulRVA : 0;
+ dwAttr = pdwAttr ? *pdwAttr: 0;
+ dwImplFlags = pdwImplFlags ? *pdwImplFlags : 0;
+ ulRVA = pulRVA ? *pulRVA : 0;
switch (mdTreatment & kMdTreatmentMask)
{
@@ -2400,9 +2407,12 @@ HRESULT WinMDAdapter::TranslateWinMDAttributeUsageAttribute(mdTypeDef tkTypeDefO
{
IfFailGo(COR_E_BADIMAGEFORMAT);
}
- DWORD wfTargetValue = *(DWORD*)(pbWFUsageBlob + 2);
- *pClrTargetValue = ConvertToClrAttributeTarget(wfTargetValue);
+ {
+ DWORD wfTargetValue = *(DWORD*)(pbWFUsageBlob + 2);
+ *pClrTargetValue = ConvertToClrAttributeTarget(wfTargetValue);
+ }
+
// add AttributeTargets.Method, AttributeTargets.Constructor , AttributeTargets.Property, and AttributeTargets.Event if this is the VersionAttribute
LPCSTR szNamespace;
LPCSTR szName;
diff --git a/src/md/winmd/inc/adapter.h b/src/md/winmd/inc/adapter.h
index e69b620938..e42992f81f 100644
--- a/src/md/winmd/inc/adapter.h
+++ b/src/md/winmd/inc/adapter.h
@@ -136,7 +136,7 @@ public:
static BOOL ConvertWellKnownTypeNameFromClrToWinRT(LPCSTR *pszFullName);
// Map a well-known CLR typename to WinRT typename
- static BOOL WinMDAdapter::ConvertWellKnownTypeNameFromClrToWinRT(LPCSTR *pszNamespace, LPCSTR *pszName);
+ static BOOL ConvertWellKnownTypeNameFromClrToWinRT(LPCSTR *pszNamespace, LPCSTR *pszName);
// Returns names of redirected type 'index'.
static void GetRedirectedTypeInfo(
diff --git a/src/md/winmd/winmdimport.cpp b/src/md/winmd/winmdimport.cpp
index fe80bf0b04..cc983d2bfc 100644
--- a/src/md/winmd/winmdimport.cpp
+++ b/src/md/winmd/winmdimport.cpp
@@ -588,13 +588,15 @@ class WinMDImport : public IMetaDataImport2
*pmb = mdMethodDefNil;
- // check to see if this is a vararg signature
- PCCOR_SIGNATURE pvSigTemp = pvSigBlob;
- if (isCallConv(CorSigUncompressCallingConv(pvSigTemp), IMAGE_CEE_CS_CALLCONV_VARARG))
{
- // Get the fixed part of VARARG signature
- IfFailGo(_GetFixedSigOfVarArg(pvSigBlob, cbSigBlob, &qbSig, &cbSigBlob));
- pvSigBlob = (PCCOR_SIGNATURE) qbSig.Ptr();
+ // check to see if this is a vararg signature
+ PCCOR_SIGNATURE pvSigTemp = pvSigBlob;
+ if (isCallConv(CorSigUncompressCallingConv(pvSigTemp), IMAGE_CEE_CS_CALLCONV_VARARG))
+ {
+ // Get the fixed part of VARARG signature
+ IfFailGo(_GetFixedSigOfVarArg(pvSigBlob, cbSigBlob, &qbSig, &cbSigBlob));
+ pvSigBlob = (PCCOR_SIGNATURE) qbSig.Ptr();
+ }
}
// now iterate all methods in td and compare name and signature
@@ -1654,15 +1656,17 @@ class WinMDImport : public IMetaDataImport2
// Step 1: Call EnumAssemblyRefs with an empty buffer to create the HENUMInternal
IfFailGo(m_pRawAssemblyImport->EnumAssemblyRefs(phEnum, NULL, 0, NULL));
- // Step 2: Increment the cound to include the extra assembly refs
- HENUMInternal *phInternalEnum = static_cast<HENUMInternal*>(*phEnum);
+ {
+ // Step 2: Increment the count to include the extra assembly refs
+ HENUMInternal *phInternalEnum = static_cast<HENUMInternal*>(*phEnum);
- _ASSERTE(phInternalEnum->m_EnumType == MDSimpleEnum);
+ _ASSERTE(phInternalEnum->m_EnumType == MDSimpleEnum);
- _ASSERTE( phInternalEnum->m_ulCount == m_pWinMDAdapter->GetRawAssemblyRefCount());
- int n = m_pWinMDAdapter->GetExtraAssemblyRefCount();
- phInternalEnum->m_ulCount += n;
- phInternalEnum->u.m_ulEnd += n;
+ _ASSERTE( phInternalEnum->m_ulCount == m_pWinMDAdapter->GetRawAssemblyRefCount());
+ int n = m_pWinMDAdapter->GetExtraAssemblyRefCount();
+ phInternalEnum->m_ulCount += n;
+ phInternalEnum->u.m_ulEnd += n;
+ }
// Step 3: Call EnumAssemblyRefs again and pass in the modifed HENUMInternal and the real buffer
IfFailGo(m_pRawAssemblyImport->EnumAssemblyRefs(phEnum, rAssemblyRefs, cMax, pcTokens));