diff --git a/Packages/Number_types/changes.txt b/Packages/Number_types/changes.txt index 610a2aa8dfc..058b2afe2d6 100644 --- a/Packages/Number_types/changes.txt +++ b/Packages/Number_types/changes.txt @@ -1,3 +1,6 @@ +4.126 (4 Dec 2003) +- Protect operator>>(MP_Float) against end of stream. + 4.125 (1 Dec 2003) - Quotient now supports sqrt() iff NT supports it. diff --git a/Packages/Number_types/src/MP_Float.C b/Packages/Number_types/src/MP_Float.C index c03a357b543..0039cb7ebd5 100644 --- a/Packages/Number_types/src/MP_Float.C +++ b/Packages/Number_types/src/MP_Float.C @@ -54,7 +54,7 @@ MP_Float::MP_Float(double d) if (d == 0) return; - CGAL_expensive_assertion(is_finite(d) && is_valid(d)); + CGAL_assertion(is_finite(d) && is_valid(d)); CGAL_expensive_assertion_code(double bak = d;) // This is subtle, because ints are not symetric against 0. @@ -402,9 +402,10 @@ print (std::ostream & os, const MP_Float &b) std::istream & operator>> (std::istream & is, MP_Float &b) { - double i; - is >> i; - b = MP_Float(i); + double d; + is >> d; + if (is) + b = MP_Float(d); return is; }