fixes some divide by zero exception while drawing
This commit is contained in:
parent
c8e587c1ea
commit
ceaf52bfa1
|
@ -328,7 +328,6 @@ public class FtrDbLoader implements IWaveformDbLoader {
|
||||||
long array_len = readArrayLength();
|
long array_len = readArrayLength();
|
||||||
assert(array_len==-1);
|
assert(array_len==-1);
|
||||||
CborType next = peekType();
|
CborType next = peekType();
|
||||||
int chunk_idx=0;
|
|
||||||
while(next != null && !break_type.isEqualType(next)) {
|
while(next != null && !break_type.isEqualType(next)) {
|
||||||
long tag = readTag();
|
long tag = readTag();
|
||||||
switch((int)tag) {
|
switch((int)tag) {
|
||||||
|
@ -400,7 +399,6 @@ public class FtrDbLoader implements IWaveformDbLoader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
next = peekType();
|
next = peekType();
|
||||||
chunk_idx++;
|
|
||||||
}
|
}
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
long pos = 0;
|
long pos = 0;
|
||||||
|
@ -468,7 +466,6 @@ public class FtrDbLoader implements IWaveformDbLoader {
|
||||||
long tx_size = cborDecoder.readArrayLength();
|
long tx_size = cborDecoder.readArrayLength();
|
||||||
long txId = 0;
|
long txId = 0;
|
||||||
long genId = 0;
|
long genId = 0;
|
||||||
long attr_idx=0;
|
|
||||||
for(long i = 0; i<tx_size; ++i) {
|
for(long i = 0; i<tx_size; ++i) {
|
||||||
long tag = cborDecoder.readTag();
|
long tag = cborDecoder.readTag();
|
||||||
switch((int)tag) {
|
switch((int)tag) {
|
||||||
|
@ -497,10 +494,8 @@ public class FtrDbLoader implements IWaveformDbLoader {
|
||||||
default: { // skip over 7:begin attr, 8:record attr, 9:end attr
|
default: { // skip over 7:begin attr, 8:record attr, 9:end attr
|
||||||
long sz = cborDecoder.readArrayLength();
|
long sz = cborDecoder.readArrayLength();
|
||||||
assert(sz==3);
|
assert(sz==3);
|
||||||
long name_id = cborDecoder.readInt();
|
cborDecoder.readInt();
|
||||||
String name = loader.strDict.get((int)name_id);
|
switch((int)cborDecoder.readInt()) {
|
||||||
long type_id = cborDecoder.readInt();
|
|
||||||
switch((int)type_id) {
|
|
||||||
case 0: // BOOLEAN
|
case 0: // BOOLEAN
|
||||||
cborDecoder.readBoolean();
|
cborDecoder.readBoolean();
|
||||||
break;
|
break;
|
||||||
|
@ -512,7 +507,6 @@ public class FtrDbLoader implements IWaveformDbLoader {
|
||||||
default:
|
default:
|
||||||
cborDecoder.readInt();
|
cborDecoder.readInt();
|
||||||
}
|
}
|
||||||
attr_idx++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,8 +56,9 @@ public class RulerPainter implements IPainter {
|
||||||
int baselineY=waveCanvas.rulerHeight - 1;
|
int baselineY=waveCanvas.rulerHeight - 1;
|
||||||
int bottom=waveCanvas.rulerHeight - 2;
|
int bottom=waveCanvas.rulerHeight - 2;
|
||||||
|
|
||||||
|
long safe_scale_factor = scaleFactor!=0?scaleFactor:1;
|
||||||
long startTickTime = startTime+rulerTickMinor-(startTime % rulerTickMinor);
|
long startTickTime = startTime+rulerTickMinor-(startTime % rulerTickMinor);
|
||||||
long majorTickDist = rulerTickMajor/scaleFactor;
|
long majorTickDist = rulerTickMajor/safe_scale_factor;
|
||||||
|
|
||||||
gc.setBackground(waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
|
gc.setBackground(waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
|
||||||
gc.fillRectangle(new Rectangle(area.x, area.y, area.width, waveCanvas.rulerHeight));
|
gc.fillRectangle(new Rectangle(area.x, area.y, area.width, waveCanvas.rulerHeight));
|
||||||
|
@ -75,7 +76,7 @@ public class RulerPainter implements IPainter {
|
||||||
boolean drawEvery = majorTickDist>maxTextLength;
|
boolean drawEvery = majorTickDist>maxTextLength;
|
||||||
boolean drawText=true;
|
boolean drawText=true;
|
||||||
for (long tickTime = startTickTime; tickTime < endTime; tickTime+= rulerTickMinor) {
|
for (long tickTime = startTickTime; tickTime < endTime; tickTime+= rulerTickMinor) {
|
||||||
int x0Pos = (int) (tickTime/scaleFactor) + proj.getTranslation().x;
|
int x0Pos = (int) (tickTime/safe_scale_factor) + proj.getTranslation().x;
|
||||||
if ((tickTime % rulerTickMajor) == 0) {
|
if ((tickTime % rulerTickMajor) == 0) {
|
||||||
if(drawEvery || drawText)
|
if(drawEvery || drawText)
|
||||||
gc.drawText(waveCanvas.timeToString(tickTime), x0Pos, area.y+textY);
|
gc.drawText(waveCanvas.timeToString(tickTime), x0Pos, area.y+textY);
|
||||||
|
|
Loading…
Reference in New Issue