Speed-up symbolFiles:on operations on windows

This commit is contained in:
Zahary Karadjov 2011-12-07 00:45:52 +02:00
commit 2f95e4d829
2 changed files with 12 additions and 14 deletions

View file

@ -15,7 +15,8 @@ import
os, lists, condsyms, rodread, rodwrite, ropes, trees,
wordrecg, sem, semdata, idents, passes, docgen, extccomp,
cgen, ecmasgen,
platform, nimconf, importer, passaux, depends, transf, evals, types, idgen
platform, nimconf, importer, passaux, depends, transf, evals, types, idgen,
tables
const
has_LLVM_Backend = false
@ -27,19 +28,16 @@ proc MainCommand*()
# ------------------ module handling -----------------------------------------
type
TFileModuleRec = tuple[filename: string, module: PSym]
TFileModuleMap = seq[TFileModuleRec]
var compMods: TFileModuleMap = @[] # all compiled modules
var
compMods = initTable[string, PSym]() # all compiled modules
# This expects a normalized module path
proc registerModule(filename: string, module: PSym) =
compMods.add((filename, module))
compMods[filename] = module
# This expects a normalized module path
proc getModule(filename: string): PSym =
for i in countup(0, high(compMods)):
if sameFile(compMods[i].filename, filename):
return compMods[i].module
result = compMods[filename]
proc newModule(filename: string): PSym =
# We cannot call ``newSym`` here, because we have to circumvent the ID

View file

@ -788,7 +788,7 @@ proc loadMethods(r: PRodReader) =
proc getModuleIdx(filename: string): int =
for i in countup(0, high(gMods)):
if sameFile(gMods[i].filename, filename): return i
if gMods[i].filename == filename: return i
result = len(gMods)
setlen(gMods, result + 1)
@ -853,7 +853,7 @@ proc handleSymbolFile(module: PSym, filename: string): PRodReader =
proc GetCRC*(filename: string): TCrc32 =
for i in countup(0, high(gMods)):
if sameFile(gMods[i].filename, filename): return gMods[i].crc
if gMods[i].filename == filename: return gMods[i].crc
result = crcFromFile(filename)
#var idx = getModuleIdx(filename)