aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-02-21 22:19:19 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-02-21 22:19:19 +0200
commitf701e98418bd8e876173dbf5d6b91823c21e51d7 (patch)
treec7e696f360faedb757f38dde9bc55bc0eb2fff4d
parente891fcb47edb6e3b3474747018d15a528b0f404d (diff)
Fix bug in decimal data types parsing
-rw-r--r--libxsde/xsde/cxx/parser/non-validating/number.cxx7
-rw-r--r--libxsde/xsde/cxx/parser/validating/number.cxx7
2 files changed, 6 insertions, 8 deletions
diff --git a/libxsde/xsde/cxx/parser/non-validating/number.cxx b/libxsde/xsde/cxx/parser/non-validating/number.cxx
index 52c175d..3906eb3 100644
--- a/libxsde/xsde/cxx/parser/non-validating/number.cxx
+++ b/libxsde/xsde/cxx/parser/non-validating/number.cxx
@@ -69,11 +69,10 @@ namespace xsde
if (sign_ != none)
tmp.assign (tmp.data () + 1, --size);
- if (size != 0)
- state_ = leading_zeros;
- else
- break;
+ state_ = leading_zeros;
+ if (size == 0)
+ break;
// Fall through.
}
case leading_zeros:
diff --git a/libxsde/xsde/cxx/parser/validating/number.cxx b/libxsde/xsde/cxx/parser/validating/number.cxx
index 0e6b405..a0fc43f 100644
--- a/libxsde/xsde/cxx/parser/validating/number.cxx
+++ b/libxsde/xsde/cxx/parser/validating/number.cxx
@@ -71,11 +71,10 @@ namespace xsde
if (sign_ != none)
tmp.assign (tmp.data () + 1, --size);
- if (size != 0)
- state_ = leading_zeros;
- else
- break;
+ state_ = leading_zeros;
+ if (size == 0)
+ break;
// Fall through.
}
case leading_zeros: