From f701e98418bd8e876173dbf5d6b91823c21e51d7 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 21 Feb 2011 22:19:19 +0200 Subject: Fix bug in decimal data types parsing --- libxsde/xsde/cxx/parser/non-validating/number.cxx | 7 +++---- libxsde/xsde/cxx/parser/validating/number.cxx | 7 +++---- 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: -- cgit v1.1