libcore: Added SourceLineTable, used it in Info and ScriptedInfo
All parsed ScriptedInfo records and their subrecords have source variables indicating the source code location of the data. Previously this was simply a string "(path):(linenum)" but that gets highly redundant when the full path of the source file is included in each record parsed from the file.
SourceLineTable is a new utility that maps unique paths to identifier numbers. Info uses this as a global table that gets used for storing all parsed Info source paths. The source variables now just store a 32-bit integer that identifies both the source path and the line number.
ScriptedInfo::sourceLocation() can be used to produce the human readable "(path):(linenum)" representation when needed.
libcore: Added SourceLineTable, used it in Info and ScriptedInfo
All parsed ScriptedInfo records and their subrecords have source
variables indicating the source code location of the data. Previously
this was simply a string "(path):(linenum)" but that gets highly
redundant when the full path of the source file is included in each
record parsed from the file.
SourceLineTable is a new utility that maps unique paths to identifier
numbers. Info uses this as a global table that gets used for storing
all parsed Info source paths. The source variables now just store
a 32-bit integer that identifies both the source path and the line
number.
ScriptedInfo::sourceLocation() can be used to produce the human
readable "(path):(linenum)" representation when needed.