Hi Alin,

thanks for your report. For all: this is a splitter issue. The splitter 
should throw an ArrayIndexOutOfBoundsException if such numbers appear.

The bugfix looks good to me.

Steve, can you commit it?

Here is the expanded test case:

Index: test/uk/me/parabola/splitter/TestConvert.java
===================================================================
--- test/uk/me/parabola/splitter/TestConvert.java       (revision 173)
+++ test/uk/me/parabola/splitter/TestConvert.java       (working copy)
@@ -25,6 +25,8 @@
                parse("0");
                parse("1");
                parse("0.0000012345");
+               parse("12.");
+               parse(".12");
                parse("1.123");
                parse("1.123456789");
                parse("1.1234567891");


WanMil

> Ahoy there,
>
> I've found a bug in function parseDouble. In short, the function is
> unable to parse float numbers such as ".12" or "12.".
> This simple patch fixes the issue:
>
> --- Convert.java.old    2011-05-24 21:37:52.000000000 +0200
> +++ Convert.java        2011-05-24 21:38:31.000000000 +0200
> @@ -180,7 +180,7 @@
>                  if (isNegative)
>                          decimal = -decimal;
>
> -               if (decimalPoint>  0)
> +               if (decimalPoint>= 0&&  decimalPoint<  i - 1)
>                          return decimal / PowersOfTen[i - decimalPoint - 2];
>                  else
>                          return decimal;
>
> Cheers,
> Alin
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to