diff options
author | Paolo Carlini <pcarlini@suse.de> | 2003-12-02 09:16:30 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2003-12-02 09:16:30 +0000 |
commit | 142b798be5651ea1ca4959d27f9144a78768d184 (patch) | |
tree | a519520ec81b9f1ba7ca1fbbf4d583f318b1ae31 | |
parent | 1d3f6c9fca057c3eec26affec0842a7d55ea759d (diff) | |
download | gcc-142b798be5651ea1ca4959d27f9144a78768d184.zip gcc-142b798be5651ea1ca4959d27f9144a78768d184.tar.gz gcc-142b798be5651ea1ca4959d27f9144a78768d184.tar.bz2 |
2003-12-02 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
(money_base::_S_construct_pattern): For case 3: and 4:
exchanging 'if (__precedes)' and 'if (__space)' allows
to factor out a few more assignments.
From-SVN: r74168
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/config/locale/gnu/monetary_members.cc | 58 |
2 files changed, 32 insertions, 33 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 080f55a..3e928ef 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2003-12-02 Paolo Carlini <pcarlini@suse.de> + + * config/locale/gnu/monetary_members.cc + (money_base::_S_construct_pattern): For case 3: and 4: + exchanging 'if (__precedes)' and 'if (__space)' allows + to factor out a few more assignments. + 2003-12-01 Benjamin Kosnik <bkoz@redhat.com> * include/bits/basic_ios.h (basic_ios::setstate): Revert. diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc index e39d7f9..580297b 100644 --- a/libstdc++-v3/config/locale/gnu/monetary_members.cc +++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc @@ -132,78 +132,70 @@ namespace std break; case 3: // 3 The sign immediately precedes the symbol. - if (__space) + if (__precedes) { - // Have space. - if (__precedes) + __ret.field[0] = sign; + __ret.field[1] = symbol; + if (__space) { - __ret.field[0] = sign; - __ret.field[1] = symbol; __ret.field[2] = space; __ret.field[3] = value; } else { - __ret.field[0] = value; - __ret.field[1] = space; - __ret.field[2] = sign; - __ret.field[3] = symbol; + __ret.field[2] = value; + __ret.field[3] = none; } } else { - // Have none. - if (__precedes) + __ret.field[0] = value; + if (__space) { - __ret.field[0] = sign; - __ret.field[1] = symbol; - __ret.field[2] = value; + __ret.field[1] = space; + __ret.field[2] = sign; + __ret.field[3] = symbol; } else { - __ret.field[0] = value; __ret.field[1] = sign; __ret.field[2] = symbol; + __ret.field[3] = none; } - __ret.field[3] = none; } break; case 4: - // 4 The sign immediately follows the symbol. - if (__space) + // 4 The sign immediately follows the symbol. + if (__precedes) { - // Have space. - if (__precedes) + __ret.field[0] = symbol; + __ret.field[1] = sign; + if (__space) { - __ret.field[0] = symbol; - __ret.field[1] = sign; __ret.field[2] = space; __ret.field[3] = value; } else { - __ret.field[0] = value; - __ret.field[1] = space; - __ret.field[2] = symbol; - __ret.field[3] = sign; + __ret.field[2] = value; + __ret.field[3] = none; } } else { - // Have none. - if (__precedes) + __ret.field[0] = value; + if (__space) { - __ret.field[0] = symbol; - __ret.field[1] = sign; - __ret.field[2] = value; + __ret.field[1] = space; + __ret.field[2] = symbol; + __ret.field[3] = sign; } else { - __ret.field[0] = value; __ret.field[1] = symbol; __ret.field[2] = sign; + __ret.field[3] = none; } - __ret.field[3] = none; } break; default: |