summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRainer Schuetze <r.sagitario@gmx.de>2017-01-20 08:53:39 (GMT)
committerRainer Schuetze <r.sagitario@gmx.de>2017-01-20 08:53:39 (GMT)
commit3e0d57ca2607de1313060df084f55173100b3596 (patch)
tree731a607347c795040880816a095a2345f84921e9 /src
parent12694e906933b1dc57d8026e4d0a4363530cf92b (diff)
downloadcv2pdb-3e0d57ca2607de1313060df084f55173100b3596.zip
cv2pdb-3e0d57ca2607de1313060df084f55173100b3596.tar.gz
cv2pdb-3e0d57ca2607de1313060df084f55173100b3596.tar.bz2
Version 0.39: do not assume sorted line numbers per segment
Diffstat (limited to 'src')
-rw-r--r--src/cv2pdb.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cv2pdb.cpp b/src/cv2pdb.cpp
index 4208f3f..c95d409 100644
--- a/src/cv2pdb.cpp
+++ b/src/cv2pdb.cpp
@@ -2659,13 +2659,17 @@ bool CV2PDB::addSrcLines()
int segend = getNextSrcLine(seg, sourceLine->offset[cnt-1]);
int seglength = (segend >= 0 ? segend - 1 - segoff : lnSegStartEnd[2*s + 1] - segoff);
+ int lineMin = lineNo[0];
+ for (int ln = 1; ln < cnt; ln++)
+ if (lineMin > lineNo[ln])
+ lineMin = lineNo[ln];
mspdb::LineInfoEntry* lineInfo = new mspdb::LineInfoEntry[cnt];
for (int ln = 0; ln < cnt; ln++)
{
lineInfo[ln].offset = sourceLine->offset[ln] - segoff;
- lineInfo[ln].line = lineNo[ln] - lineNo[0];
+ lineInfo[ln].line = lineNo[ln] - lineMin;
}
- int rc = mod->AddLines(name, seg, segoff, seglength, segoff, lineNo[0],
+ int rc = mod->AddLines(name, seg, segoff, seglength, segoff, lineMin,
(unsigned char*) lineInfo, cnt * sizeof(*lineInfo));
if (rc <= 0)
return setError("cannot add line number info to module");