aboutsummaryrefslogtreecommitdiff
path: root/libstdc++/stl/stl_rope.h
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@haight.constant.com>1999-11-22 23:35:50 +0000
committerMartin v. Löwis <loewis@gcc.gnu.org>1999-11-22 23:35:50 +0000
commitb49df33399b7267485bf2b6f519e32e1b3443d9f (patch)
tree0677f09df86aa7dc2ab9c516aa4e167ae762f169 /libstdc++/stl/stl_rope.h
parenta8196924328f5235c6739648f226534384b2a9b4 (diff)
downloadgcc-b49df33399b7267485bf2b6f519e32e1b3443d9f.zip
gcc-b49df33399b7267485bf2b6f519e32e1b3443d9f.tar.gz
gcc-b49df33399b7267485bf2b6f519e32e1b3443d9f.tar.bz2
stl_rope.h: Fix initialization order.
* stl_rope.h: Fix initialization order. * stl_deque.h: Use static_casts<size_type>(signed_type). Co-Authored-By: Matthias Klose <doko@cs.tu-berlin.de> From-SVN: r30622
Diffstat (limited to 'libstdc++/stl/stl_rope.h')
-rw-r--r--libstdc++/stl/stl_rope.h29
1 files changed, 14 insertions, 15 deletions
diff --git a/libstdc++/stl/stl_rope.h b/libstdc++/stl/stl_rope.h
index 44f51ae..0d8766a 100644
--- a/libstdc++/stl/stl_rope.h
+++ b/libstdc++/stl/stl_rope.h
@@ -386,8 +386,8 @@ struct _Rope_RopeRep : public _Rope_rep_base<_CharT,_Alloc> {
typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type;
_Rope_RopeRep(_Tag __t, int __d, bool __b, size_t __size,
allocator_type __a)
- : _M_tag(__t), _M_depth(__d), _M_is_balanced(__b), _M_c_string(0),
- _Rope_rep_base<_CharT,_Alloc>(__size, __a)
+ : _Rope_rep_base<_CharT,_Alloc>(__size, __a),
+ _M_tag(__t), _M_depth(__d), _M_is_balanced(__b), _M_c_string(0)
{
# ifndef __GC
_M_refcount = 1;
@@ -562,8 +562,8 @@ struct _Rope_RopeLeaf : public _Rope_RopeRep<_CharT,_Alloc> {
/* doesn't matter. */
typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type;
_Rope_RopeLeaf(__GC_CONST _CharT* __d, size_t __size, allocator_type __a)
- : _M_data(__d)
- , _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a)
+ : _Rope_RopeRep<_CharT,_Alloc>(_S_leaf, 0, true, __size, __a),
+ _M_data(__d)
{
__stl_assert(__size > 0);
if (_S_is_basic_char_type((_CharT *)0)) {
@@ -593,10 +593,10 @@ struct _Rope_RopeConcatenation : public _Rope_RopeRep<_CharT,_Alloc> {
_Rope_RopeConcatenation(_Rope_RopeRep<_CharT,_Alloc>* __l,
_Rope_RopeRep<_CharT,_Alloc>* __r,
allocator_type __a)
- : _M_left(__l), _M_right(__r)
- , _Rope_RopeRep<_CharT,_Alloc>(
+ : _Rope_RopeRep<_CharT,_Alloc>(
_S_concat, max(__l->_M_depth, __r->_M_depth) + 1, false,
- __l->_M_size + __r->_M_size, __a)
+ __l->_M_size + __r->_M_size, __a),
+ _M_left(__l), _M_right(__r)
{}
# ifndef __GC
~_Rope_RopeConcatenation() {
@@ -629,11 +629,12 @@ struct _Rope_RopeFunction : public _Rope_RopeRep<_CharT,_Alloc> {
typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type;
_Rope_RopeFunction(char_producer<_CharT>* __f, size_t __size,
bool __d, allocator_type __a)
- : _M_fn(__f)
+ :_Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a),
+ _M_fn(__f)
# ifndef __GC
, _M_delete_when_done(__d)
# endif
- , _Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a) {
+ {
__stl_assert(__size > 0);
# ifdef __GC
if (__d) {
@@ -693,9 +694,7 @@ struct _Rope_RopeSubstring : public _Rope_RopeFunction<_CharT,_Alloc>,
typedef _Rope_rep_base<_CharT,_Alloc>::allocator_type allocator_type;
_Rope_RopeSubstring(_Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s,
size_t __l, allocator_type __a)
- : _M_base(__b)
- , _M_start(__s)
- , _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a)
+ : _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a), _M_base(__b), _M_start(__s)
{
__stl_assert(__l > 0);
__stl_assert(__s + __l <= __b->_M_size);
@@ -766,16 +765,16 @@ class _Rope_char_ref_proxy {
_My_rope* _M_root; // The whole rope.
public:
_Rope_char_ref_proxy(_My_rope* __r, size_t __p) :
- _M_pos(__p), _M_root(__r), _M_current_valid(false) {}
+ _M_pos(__p), _M_current_valid(false), _M_root(__r) {}
_Rope_char_ref_proxy(const _Rope_char_ref_proxy& __x) :
- _M_pos(__x._M_pos), _M_root(__x._M_root), _M_current_valid(false) {}
+ _M_pos(__x._M_pos), _M_current_valid(false), _M_root(__x._M_root) {}
// Don't preserve cache if the reference can outlive the
// expression. We claim that's not possible without calling
// a copy constructor or generating reference to a proxy
// reference. We declare the latter to have undefined semantics.
_Rope_char_ref_proxy(_My_rope* __r, size_t __p,
_CharT __c) :
- _M_pos(__p), _M_root(__r), _M_current(__c), _M_current_valid(true) {}
+ _M_pos(__p), _M_current(__c), _M_current_valid(true), _M_root(__r) {}
inline operator _CharT () const;
_Rope_char_ref_proxy& operator= (_CharT __c);
_Rope_char_ptr_proxy<_CharT,_Alloc> operator& () const;