From ca78f36ae3b7b61eb78dc8e7d624add10e8718df Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Mon, 28 Apr 2003 23:28:25 +0200 Subject: [PATCH] sstream.tcc (pbackfail): Shorten a bit (6 lines) the innermost 'if' by factoring out some code. 2003-04-28 Paolo Carlini * include/bits/sstream.tcc (pbackfail): Shorten a bit (6 lines) the innermost 'if' by factoring out some code. From-SVN: r66187 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/bits/sstream.tcc | 23 +++++++++-------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 75c88010ff0..cc8ed88c95c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2003-04-28 Paolo Carlini + + * include/bits/sstream.tcc (pbackfail): Shorten a bit (6 lines) + the innermost 'if' by factoring out some code. + 2003-04-28 Phil Edwards * configure.in: Test for libintl.h. diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc index 801a34a4dba..1d8cc005d98 100644 --- a/libstdc++-v3/include/bits/sstream.tcc +++ b/libstdc++-v3/include/bits/sstream.tcc @@ -55,24 +55,19 @@ namespace std // Order these tests done in is unspecified by the standard. if (__testpos) { - if (traits_type::eq(traits_type::to_char_type(__c), - this->_M_in_cur[-1]) - && !__testeof) + const bool __testeq = traits_type::eq(traits_type::to_char_type(__c), + this->_M_in_cur[-1]); + + --this->_M_in_cur; + if (!__testeof && __testeq) + __ret = __c; + else if (__testeof) + __ret = traits_type::not_eof(__c); + else { - --this->_M_in_cur; - __ret = __c; - } - else if (!__testeof) - { - --this->_M_in_cur; *this->_M_in_cur = traits_type::to_char_type(__c); __ret = __c; } - else if (__testeof) - { - --this->_M_in_cur; - __ret = traits_type::not_eof(__c); - } } return __ret; }