Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit cc5df16

Browse files
authored
Delete CORCOMPILE_IMPORT_TABLE_ENTRY (#21109)
1 parent baee9b6 commit cc5df16

File tree

16 files changed

+61
-254
lines changed

16 files changed

+61
-254
lines changed

src/debug/daccess/nidump.cpp

Lines changed: 19 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,13 +1122,6 @@ NativeImageDumper::DumpNativeImage()
11221122
DisplayEndArray( "Total Dependencies", COR_INFO );
11231123
DisplayEndStructure(COR_INFO); //CORCOMPILE_VERSION_INFO
11241124

1125-
//Now load all dependencies and imports. There may be more
1126-
//dependencies than imports, so make sure to get them all.
1127-
for( COUNT_T i = 0; i < m_decoder.GetNativeImportTableCount(); ++i )
1128-
{
1129-
NativeImageDumper::Import * import = OpenImport(i);
1130-
TraceDumpImport( i, import );
1131-
}
11321125
NativeImageDumper::Dependency * traceDependency = OpenDependency(0);
11331126
TraceDumpDependency( 0, traceDependency );
11341127

@@ -1266,16 +1259,6 @@ void NativeImageDumper::DumpNative()
12661259
DumpTypes( module );
12671260
}
12681261

1269-
void NativeImageDumper::TraceDumpImport(int idx, NativeImageDumper::Import * import)
1270-
{
1271-
IF_OPT(DEBUG_TRACE)
1272-
{
1273-
m_display->ErrorPrintF("Import: %d\n", idx);
1274-
m_display->ErrorPrintF("\tDependency: %p\n", import->dependency);
1275-
m_display->ErrorPrintF("\twAssemblyRid: %d\n", import->entry->wAssemblyRid);
1276-
m_display->ErrorPrintF("\twModuleRid %d\n", import->entry->wModuleRid);
1277-
}
1278-
}
12791262
void NativeImageDumper::TraceDumpDependency(int idx, NativeImageDumper::Dependency * dependency)
12801263
{
12811264
IF_OPT(DEBUG_TRACE)
@@ -1942,21 +1925,12 @@ void NativeImageDumper::FixupBlobToString(RVA rva, SString& buf)
19421925

19431926
// print assembly/module info
19441927

1945-
PTR_CORCOMPILE_IMPORT_TABLE_ENTRY entry = import->entry;
1946-
if (entry->wAssemblyRid != 0)
1947-
{
1948-
mdToken realRef =
1949-
MapAssemblyRefToManifest(TokenFromRid(entry->wAssemblyRid,
1950-
mdtAssemblyRef),
1951-
m_assemblyImport);
1952-
AppendToken(realRef, buf, m_manifestImport);
1953-
buf.Append( W(" ") );
1954-
}
1955-
if (entry->wModuleRid != 0)
1956-
{
1957-
AppendToken(TokenFromRid(entry->wModuleRid, mdtFile), buf, pImport);
1958-
buf.Append( W(" ") );
1959-
}
1928+
mdToken realRef =
1929+
MapAssemblyRefToManifest(TokenFromRid(import->index,
1930+
mdtAssemblyRef),
1931+
m_assemblyImport);
1932+
AppendToken(realRef, buf, m_manifestImport);
1933+
buf.Append( W(" ") );
19601934
}
19611935

19621936
// print further info
@@ -2231,21 +2205,12 @@ void NativeImageDumper::FixupBlobToString(RVA rva, SString& buf)
22312205
int targetModuleIndex = DacSigUncompressData(sig);
22322206
Import *targetImport = OpenImport(targetModuleIndex);
22332207

2234-
CORCOMPILE_IMPORT_TABLE_ENTRY *entry = targetImport->entry;
2235-
if (entry->wAssemblyRid != 0)
2236-
{
2237-
mdToken realRef =
2238-
MapAssemblyRefToManifest(TokenFromRid(entry->wAssemblyRid,
2239-
mdtAssemblyRef),
2240-
m_assemblyImport);
2241-
AppendToken(realRef, buf, m_manifestImport);
2242-
buf.Append( W(" ") );
2243-
}
2244-
if (entry->wModuleRid != 0)
2245-
{
2246-
AppendToken(TokenFromRid(entry->wModuleRid, mdtFile), buf,
2247-
targetImport->dependency->pImport);
2248-
}
2208+
mdToken realRef =
2209+
MapAssemblyRefToManifest(TokenFromRid(targetImport->index,
2210+
mdtAssemblyRef),
2211+
m_assemblyImport);
2212+
AppendToken(realRef, buf, m_manifestImport);
2213+
buf.Append( W(" ") );
22492214
}
22502215
break;
22512216

@@ -2464,23 +2429,23 @@ NativeImageDumper::Import * NativeImageDumper::OpenImport(int i)
24642429
{
24652430
if (m_imports == NULL)
24662431
{
2467-
COUNT_T count = m_decoder.GetNativeImportTableCount();
2432+
COUNT_T count;
2433+
m_decoder.GetNativeDependencies(&count);
24682434
m_numImports = count;
24692435
m_imports = new Import [count];
24702436
ZeroMemory(m_imports, count * sizeof(m_imports[0]));
24712437
}
24722438

2473-
if (m_imports[i].entry == NULL)
2439+
if (m_imports[i].index == 0)
24742440
{
24752441
//GetNativeImportFromIndex returns a host pointer.
2476-
CORCOMPILE_IMPORT_TABLE_ENTRY * entry = m_decoder.GetNativeImportFromIndex(i);
2477-
m_imports[i].entry = (PTR_CORCOMPILE_IMPORT_TABLE_ENTRY)(TADDR)entry;
2442+
m_imports[i].index = i;
24782443

24792444
/*
2480-
mdToken tok = TokenFromRid(entry->wAssemblyRid, mdtAssemblyRef);
2445+
mdToken tok = TokenFromRid(entry->index, mdtAssemblyRef);
24812446
Dependency * dependency = GetDependency( MapAssemblyRefToManifest(tok,
24822447
*/
2483-
Dependency *dependency = GetDependency(TokenFromRid(entry->wAssemblyRid, mdtAssemblyRef));
2448+
Dependency *dependency = GetDependency(TokenFromRid(i, mdtAssemblyRef));
24842449
m_imports[i].dependency = dependency;
24852450
_ASSERTE(dependency); //Why can this be null?
24862451

@@ -2497,7 +2462,7 @@ const NativeImageDumper::Dependency *NativeImageDumper::GetDependencyForFixup(RV
24972462
{
24982463
unsigned idx = DacSigUncompressData(sig);
24992464

2500-
_ASSERTE(idx >= 0 && idx < (int)m_decoder.GetNativeImportTableCount());
2465+
_ASSERTE(idx >= 0 && idx < (int)m_numImports);
25012466
return OpenImport(idx)->dependency;
25022467
}
25032468

@@ -5329,22 +5294,6 @@ void NativeImageDumper::DumpNativeHeader()
53295294
}
53305295
DisplayEndArray( NULL, ALWAYS ); //delayLoads
53315296

5332-
WRITE_NATIVE_FIELD(ImportTable);
5333-
DisplayStartArray( "imports", NULL, ALWAYS );
5334-
PTR_CORCOMPILE_IMPORT_TABLE_ENTRY ent( nativeHeader->ImportTable.VirtualAddress + PTR_TO_TADDR(m_decoder.GetBase()) );
5335-
for( COUNT_T i = 0; i < nativeHeader->ImportTable.Size / sizeof(*ent); ++i )
5336-
{
5337-
DisplayStartStructure( "CORCOMPILE_IMPORT_TABLE_ENTRY",
5338-
DPtrToPreferredAddr(ent + i),
5339-
sizeof(ent[i]), ALWAYS );
5340-
DisplayWriteFieldUInt( wAssemblyRid, ent[i].wAssemblyRid,
5341-
CORCOMPILE_IMPORT_TABLE_ENTRY, ALWAYS );
5342-
DisplayWriteFieldUInt( wModuleRid, ent[i].wModuleRid,
5343-
CORCOMPILE_IMPORT_TABLE_ENTRY, ALWAYS );
5344-
DisplayEndStructure( ALWAYS ); //CORCOMPILE_IMPORT_TABLE_ENTRY
5345-
}
5346-
DisplayEndArray( NULL, ALWAYS ); //imports
5347-
53485297
WRITE_NATIVE_FIELD(VersionInfo);
53495298
WRITE_NATIVE_FIELD(DebugMap);
53505299
WRITE_NATIVE_FIELD(ModuleImage);

src/debug/daccess/nidump.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ class NativeImageDumper
322322
*/
323323
struct Import
324324
{
325-
PTR_CORCOMPILE_IMPORT_TABLE_ENTRY entry;
325+
DWORD index;
326326
Dependency *dependency;
327327
};
328328
private:

src/inc/corcompile.h

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ typedef DPTR(struct CORCOMPILE_EE_INFO_TABLE)
4545
PTR_CORCOMPILE_EE_INFO_TABLE;
4646
typedef DPTR(struct CORCOMPILE_HEADER)
4747
PTR_CORCOMPILE_HEADER;
48-
typedef DPTR(struct CORCOMPILE_IMPORT_TABLE_ENTRY)
49-
PTR_CORCOMPILE_IMPORT_TABLE_ENTRY;
5048
typedef DPTR(struct CORCOMPILE_COLD_METHOD_ENTRY)
5149
PTR_CORCOMPILE_COLD_METHOD_ENTRY;
5250
typedef DPTR(struct CORCOMPILE_EXCEPTION_LOOKUP_TABLE)
@@ -238,7 +236,7 @@ struct CORCOMPILE_HEADER
238236

239237
IMAGE_DATA_DIRECTORY HelperTable; // Table of function pointers to JIT helpers indexed by helper number
240238
IMAGE_DATA_DIRECTORY ImportSections; // points to array of code:CORCOMPILE_IMPORT_SECTION
241-
IMAGE_DATA_DIRECTORY ImportTable; // points to table CORCOMPILE_IMPORT_TABLE_ENTRY
239+
IMAGE_DATA_DIRECTORY Dummy0;
242240
IMAGE_DATA_DIRECTORY StubsData; // contains the value to register with the stub manager for the delegate stubs & AMD64 tail call stubs
243241
IMAGE_DATA_DIRECTORY VersionInfo; // points to a code:CORCOMPILE_VERSION_INFO
244242
IMAGE_DATA_DIRECTORY Dependencies; // points to an array of code:CORCOMPILE_DEPENDENCY
@@ -451,12 +449,6 @@ public :
451449
}
452450
};
453451

454-
struct CORCOMPILE_IMPORT_TABLE_ENTRY
455-
{
456-
USHORT wAssemblyRid;
457-
USHORT wModuleRid;
458-
};
459-
460452
struct CORCOMPILE_EE_INFO_TABLE
461453
{
462454
TADDR inlinedCallFrameVptr;
@@ -1636,11 +1628,10 @@ class ICorCompileInfo
16361628
) = 0;
16371629

16381630
// Encode a module for the imports table
1639-
virtual void EncodeModuleAsIndexes(
1631+
virtual void EncodeModuleAsIndex(
16401632
CORINFO_MODULE_HANDLE fromHandle,
16411633
CORINFO_MODULE_HANDLE handle,
1642-
DWORD *pAssemblyIndex,
1643-
DWORD *pModuleIndex,
1634+
DWORD *pIndex,
16441635
IMetaDataAssemblyEmit *pAssemblyEmit) = 0;
16451636

16461637

src/inc/pedecoder.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -329,10 +329,6 @@ class PEDecoder
329329
void GetNativeILPEKindAndMachine(DWORD* pdwKind, DWORD* pdwMachine) const;
330330
CORCOMPILE_DEPENDENCY * GetNativeDependencies(COUNT_T *pCount = NULL) const;
331331

332-
COUNT_T GetNativeImportTableCount() const;
333-
CORCOMPILE_IMPORT_TABLE_ENTRY *GetNativeImportFromIndex(COUNT_T index) const;
334-
CHECK CheckNativeImportFromIndex(COUNT_T index) const;
335-
336332
PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSections(COUNT_T *pCount = NULL) const;
337333
PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSectionFromIndex(COUNT_T index) const;
338334
PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSectionForRVA(RVA rva) const;

src/utilcode/pedecoder.cpp

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2496,56 +2496,6 @@ PTR_CVOID PEDecoder::GetNativeManifestMetadata(COUNT_T *pSize) const
24962496
RETURN dac_cast<PTR_VOID>(GetDirectoryData(pDir));
24972497
}
24982498

2499-
CHECK PEDecoder::CheckNativeImportFromIndex(COUNT_T index) const
2500-
{
2501-
CONTRACT_CHECK
2502-
{
2503-
PRECONDITION(CheckNativeHeader());
2504-
NOTHROW;
2505-
GC_NOTRIGGER;
2506-
}
2507-
CONTRACT_CHECK_END;
2508-
2509-
CHECK_MSG(index >= 0 && index < GetNativeImportTableCount(), "Bad Native Import Index");
2510-
2511-
CHECK_OK;
2512-
}
2513-
2514-
COUNT_T PEDecoder::GetNativeImportTableCount() const
2515-
{
2516-
CONTRACT(COUNT_T)
2517-
{
2518-
PRECONDITION(CheckNativeHeader());
2519-
NOTHROW;
2520-
GC_NOTRIGGER;
2521-
}
2522-
CONTRACT_END;
2523-
2524-
IMAGE_DATA_DIRECTORY *pDir = &GetNativeHeader()->ImportTable;
2525-
2526-
RETURN (VAL32(pDir->Size) / sizeof(CORCOMPILE_IMPORT_TABLE_ENTRY));
2527-
}
2528-
2529-
CORCOMPILE_IMPORT_TABLE_ENTRY *PEDecoder::GetNativeImportFromIndex(COUNT_T index) const
2530-
{
2531-
CONTRACT(CORCOMPILE_IMPORT_TABLE_ENTRY *)
2532-
{
2533-
PRECONDITION(CheckNativeHeader());
2534-
PRECONDITION(CheckNativeImportFromIndex(index));
2535-
POSTCONDITION(CheckPointer(RETVAL));
2536-
NOTHROW;
2537-
GC_NOTRIGGER;
2538-
}
2539-
CONTRACT_END;
2540-
2541-
IMAGE_DATA_DIRECTORY *pDir = &GetNativeHeader()->ImportTable;
2542-
2543-
CORCOMPILE_IMPORT_TABLE_ENTRY *pEntry
2544-
= (CORCOMPILE_IMPORT_TABLE_ENTRY *) GetDirectoryData(pDir);
2545-
2546-
RETURN pEntry + index;
2547-
}
2548-
25492499
PTR_CORCOMPILE_IMPORT_SECTION PEDecoder::GetNativeImportSections(COUNT_T *pCount) const
25502500
{
25512501
CONTRACT(PTR_CORCOMPILE_IMPORT_SECTION)

src/vm/ceeload.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10279,9 +10279,7 @@ Module *Module::GetModuleFromIndex(DWORD ix)
1027910279

1028010280
if (HasNativeImage())
1028110281
{
10282-
PRECONDITION(GetNativeImage()->CheckNativeImportFromIndex(ix));
10283-
CORCOMPILE_IMPORT_TABLE_ENTRY *p = GetNativeImage()->GetNativeImportFromIndex(ix);
10284-
RETURN ZapSig::DecodeModuleFromIndexes(this, p->wAssemblyRid, p->wModuleRid);
10282+
RETURN ZapSig::DecodeModuleFromIndex(this, ix);
1028510283
}
1028610284
else
1028710285
{
@@ -10313,15 +10311,12 @@ Module *Module::GetModuleFromIndexIfLoaded(DWORD ix)
1031310311
GC_NOTRIGGER;
1031410312
MODE_ANY;
1031510313
PRECONDITION(HasNativeImage());
10316-
PRECONDITION(GetNativeImage()->CheckNativeImportFromIndex(ix));
1031710314
POSTCONDITION(CheckPointer(RETVAL, NULL_OK));
1031810315
}
1031910316
CONTRACT_END;
1032010317

1032110318
#ifndef DACCESS_COMPILE
10322-
CORCOMPILE_IMPORT_TABLE_ENTRY *p = GetNativeImage()->GetNativeImportFromIndex(ix);
10323-
10324-
RETURN ZapSig::DecodeModuleFromIndexesIfLoaded(this, p->wAssemblyRid, p->wModuleRid);
10319+
RETURN ZapSig::DecodeModuleFromIndexIfLoaded(this, ix);
1032510320
#else // DACCESS_COMPILE
1032610321
DacNotImpl();
1032710322
RETURN NULL;

src/vm/compile.cpp

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,11 +1471,10 @@ HRESULT CEECompileInfo::GetFieldDef(CORINFO_FIELD_HANDLE fieldHandle,
14711471
return S_OK;
14721472
}
14731473

1474-
void CEECompileInfo::EncodeModuleAsIndexes(CORINFO_MODULE_HANDLE fromHandle,
1475-
CORINFO_MODULE_HANDLE handle,
1476-
DWORD* pAssemblyIndex,
1477-
DWORD* pModuleIndex,
1478-
IMetaDataAssemblyEmit* pAssemblyEmit)
1474+
void CEECompileInfo::EncodeModuleAsIndex(CORINFO_MODULE_HANDLE fromHandle,
1475+
CORINFO_MODULE_HANDLE handle,
1476+
DWORD* pIndex,
1477+
IMetaDataAssemblyEmit* pAssemblyEmit)
14791478
{
14801479
STANDARD_VM_CONTRACT;
14811480

@@ -1488,7 +1487,7 @@ void CEECompileInfo::EncodeModuleAsIndexes(CORINFO_MODULE_HANDLE fromHandle,
14881487
Assembly *assembly = module->GetAssembly();
14891488

14901489
if (assembly == fromAssembly)
1491-
*pAssemblyIndex = 0;
1490+
*pIndex = 0;
14921491
else
14931492
{
14941493
UPTR result;
@@ -1534,19 +1533,11 @@ void CEECompileInfo::EncodeModuleAsIndexes(CORINFO_MODULE_HANDLE fromHandle,
15341533
}
15351534
}
15361535

1537-
*pAssemblyIndex = RidFromToken(token);
1536+
*pIndex = RidFromToken(token);
15381537

15391538
pRefCache->m_sAssemblyRefMap.InsertValue((UPTR) assembly, (UPTR)token);
15401539
}
15411540

1542-
if (module == assembly->GetManifestModule())
1543-
*pModuleIndex = 0;
1544-
else
1545-
{
1546-
_ASSERTE(module->GetModuleRef() != mdFileNil);
1547-
*pModuleIndex = RidFromToken(module->GetModuleRef());
1548-
}
1549-
15501541
COOPERATIVE_TRANSITION_END();
15511542
}
15521543

src/vm/compile.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,10 @@ class CEECompileInfo : public ICorCompileInfo
247247
void GetModuleFileName(CORINFO_MODULE_HANDLE module,
248248
SString &result);
249249

250-
void EncodeModuleAsIndexes( CORINFO_MODULE_HANDLE fromHandle,
251-
CORINFO_MODULE_HANDLE handle,
252-
DWORD *pAssemblyIndex,
253-
DWORD *pModuleIndex,
254-
IMetaDataAssemblyEmit *pAssemblyEmit);
250+
void EncodeModuleAsIndex( CORINFO_MODULE_HANDLE fromHandle,
251+
CORINFO_MODULE_HANDLE handle,
252+
DWORD *pIndex,
253+
IMetaDataAssemblyEmit *pAssemblyEmit);
255254

256255
void EncodeClass( CORINFO_MODULE_HANDLE referencingModule,
257256
CORINFO_CLASS_HANDLE classHandle,

0 commit comments

Comments
 (0)