symbol files: bugfixes

This commit is contained in:
Araq 2018-02-13 17:19:52 +01:00
commit 83a8019027

View file

@ -390,9 +390,9 @@ proc symStack(w: PRodWriter): int =
inc result inc result
elif iiTableGet(w.index.tab, s.id) == InvalidKey: elif iiTableGet(w.index.tab, s.id) == InvalidKey:
var m = getModule(s) var m = getModule(s)
if m == nil and s.kind != skPackage and sfGenSym notin s.flags: #if m == nil and s.kind != skPackage and sfGenSym notin s.flags:
internalError("symStack: module nil: " & s.name.s) # internalError("symStack: module nil: " & s.name.s & " " & $s.kind & " ID " & $s.id)
if s.kind == skPackage or {sfFromGeneric, sfGenSym} * s.flags != {} or m.id == w.module.id: if m == nil or s.kind == skPackage or {sfFromGeneric, sfGenSym} * s.flags != {} or m.id == w.module.id:
# put definition in here # put definition in here
var L = w.data.len var L = w.data.len
addToIndex(w.index, s.id, L) addToIndex(w.index, s.id, L)
@ -411,7 +411,7 @@ proc symStack(w: PRodWriter): int =
add(w.compilerProcs, ' ') add(w.compilerProcs, ' ')
encodeVInt(s.id, w.compilerProcs) encodeVInt(s.id, w.compilerProcs)
add(w.compilerProcs, rodNL) add(w.compilerProcs, rodNL)
if s.kind == skConverter or hasPattern(s): if s.kind == skConverter or (s.ast != nil and hasPattern(s)):
if w.converters.len != 0: add(w.converters, ' ') if w.converters.len != 0: add(w.converters, ' ')
encodeVInt(s.id, w.converters) encodeVInt(s.id, w.converters)
if s.kind == skMethod and sfDispatcher notin s.flags: if s.kind == skMethod and sfDispatcher notin s.flags: