From 5269ae13b2d1bcb52029a07db50f2ba0444516df Mon Sep 17 00:00:00 2001 From: Sylvain Pion Date: Thu, 4 Dec 2003 15:23:09 +0000 Subject: [PATCH] - Protect operator>>(MP_Float) against end of stream. --- Packages/Number_types/changes.txt | 3 +++ Packages/Number_types/src/MP_Float.C | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) 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; }