From e48cc1a7041ce952bf1c4653e5b0daccb39654bb Mon Sep 17 00:00:00 2001 From: Mincol Date: Wed, 29 Mar 2017 16:36:24 +0200 Subject: [PATCH] Description length cannot be negative, therefore if we use write (unsigned) instead of writeByte (signed) we can potentially use one more byte. --- .../src/main/java/btools/mapcreator/NodeData.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/brouter-map-creator/src/main/java/btools/mapcreator/NodeData.java b/brouter-map-creator/src/main/java/btools/mapcreator/NodeData.java index 515ac16..6825e47 100644 --- a/brouter-map-creator/src/main/java/btools/mapcreator/NodeData.java +++ b/brouter-map-creator/src/main/java/btools/mapcreator/NodeData.java @@ -29,7 +29,7 @@ public class NodeData extends MapCreatorBase ilon = (int)dis.readDiffed( 1 ); ilat = (int)dis.readDiffed( 2 ); int mode = dis.readByte(); - if ( ( mode & 1 ) != 0 ) { int dlen = dis.readByte(); description = new byte[dlen]; dis.readFully( description ); } + if ( ( mode & 1 ) != 0 ) { int dlen = dis.read(); description = new byte[dlen]; dis.readFully( description ); } if ( ( mode & 2 ) != 0 ) selev = dis.readShort(); } @@ -38,9 +38,9 @@ public class NodeData extends MapCreatorBase dos.writeDiffed( nid, 0 ); dos.writeDiffed( ilon, 1 ); dos.writeDiffed( ilat, 2 ); - int mode = ( description == null ? 0 : 1 ) | ( selev == Short.MIN_VALUE ? 0 : 2 ); - dos.writeByte( (byte)mode ); - if ( ( mode & 1 ) != 0 ) { dos.writeByte( description.length ); dos.write( description ); } - if ( ( mode & 2 ) != 0 ) dos.writeShort( selev ); + int mode = (description == null ? 0 : 1) | (selev == Short.MIN_VALUE ? 0 : 2); + dos.writeByte((byte) mode); + if ((mode & 1) != 0) { dos.write(description.length); dos.write(description); } + if ((mode & 2) != 0) dos.writeShort(selev); } }