aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2003-12-02 09:16:30 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2003-12-02 09:16:30 +0000
commit142b798be5651ea1ca4959d27f9144a78768d184 (patch)
treea519520ec81b9f1ba7ca1fbbf4d583f318b1ae31
parent1d3f6c9fca057c3eec26affec0842a7d55ea759d (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--libstdc++-v3/config/locale/gnu/monetary_members.cc58
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: