From 4b54430a17b62baaa71e46d8c6bb83b8656983c7 Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 27 Feb 2018 12:23:08 +0100 Subject: [PATCH 1/2] fixed a bug in the splitter, which ocures if definition is invalid --- src/main/java/de/neemann/digital/core/wiring/Splitter.java | 7 +++++-- .../java/de/neemann/digital/draw/shapes/MissingShape.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/wiring/Splitter.java b/src/main/java/de/neemann/digital/core/wiring/Splitter.java index 43444d8ec..ceb2f3710 100644 --- a/src/main/java/de/neemann/digital/core/wiring/Splitter.java +++ b/src/main/java/de/neemann/digital/core/wiring/Splitter.java @@ -272,8 +272,11 @@ public class Splitter implements Element { if (pos >= 0) { int from = Integer.decode(strVal.substring(0, pos).trim()); int to = Integer.decode(strVal.substring(pos + 1).trim()); - if (to < from) - throw new BitsException(Lang.get("err_spitterDefSyntaxError", definition)); + if (to < from) { + int z = to; + to = from; + from = z; + } add(new Port(from, to - from + 1)); } else add(new Port(bits, Integer.decode(strVal))); diff --git a/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java b/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java index 0dee8c90e..41a3af260 100644 --- a/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java +++ b/src/main/java/de/neemann/digital/draw/shapes/MissingShape.java @@ -50,7 +50,7 @@ public class MissingShape implements Shape { while (c != null) { y += style.getFontSize(); String message = c.getMessage(); - if (message.length() > 100) + if (message != null && message.length() > 100) message = message.substring(0, 100) + "..."; graphic.drawText(new Vector(4, y), new Vector(5, y), message, Orientation.LEFTTOP, style); c = c.getCause(); From d24b991bed24f926559d2d1bcec4ea122c166d14 Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 27 Feb 2018 12:30:40 +0100 Subject: [PATCH 2/2] fixed a bug in the splitter, which ocures if definition is invalid --- .../de/neemann/digital/core/wiring/PortsTest.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/test/java/de/neemann/digital/core/wiring/PortsTest.java b/src/test/java/de/neemann/digital/core/wiring/PortsTest.java index 55e352464..c38af3e14 100644 --- a/src/test/java/de/neemann/digital/core/wiring/PortsTest.java +++ b/src/test/java/de/neemann/digital/core/wiring/PortsTest.java @@ -89,13 +89,11 @@ public class PortsTest extends TestCase { } public void testInputConsistency3() throws Exception { - Splitter.Ports p = new Splitter.Ports("4-7,4-4"); - try { - p = new Splitter.Ports("4-7,4-3"); - fail(); - } catch (NodeException e) { - assertTrue(true); - } + Splitter.Ports p = new Splitter.Ports("7-4,4-4"); + assertEquals(4, p.getPort(0).getPos()); + assertEquals(4, p.getPort(0).getBits()); + assertEquals(4, p.getPort(1).getPos()); + assertEquals(1, p.getPort(1).getBits()); }