| @@ -192,7 +192,7 @@ public: | |||
| if (m_count >= m_reserved) | |||
| { | |||
| T tmp = x; | |||
| Reserve(m_count * 13 / 8 + 8); | |||
| Grow(); | |||
| new (&m_data[m_count]) Element(tmp); | |||
| } | |||
| else | |||
| @@ -251,7 +251,7 @@ public: | |||
| ASSERT(pos <= m_count); | |||
| if (m_count >= m_reserved) | |||
| Reserve(m_count * 13 / 8 + 8); | |||
| Grow(); | |||
| for (int i = m_count; i > pos; --i) | |||
| { | |||
| @@ -474,6 +474,11 @@ public: | |||
| inline int Bytes() const { return m_count * sizeof(Element); } | |||
| protected: | |||
| void Grow() | |||
| { | |||
| Reserve(m_count * 13 / 8 + 8); | |||
| } | |||
| Element *m_data; | |||
| int m_count, m_reserved; | |||
| }; | |||
| @@ -553,7 +558,7 @@ public: | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; T4 tmp4 = m4; | |||
| T5 tmp5 = m5; T6 tmp6 = m6; T7 tmp7 = m7; T8 tmp8 = m8; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -592,7 +597,7 @@ public: | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; T4 tmp4 = m4; | |||
| T5 tmp5 = m5; T6 tmp6 = m6; T7 tmp7 = m7; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -629,7 +634,7 @@ public: | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; T4 tmp4 = m4; | |||
| T5 tmp5 = m5; T6 tmp6 = m6; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -663,7 +668,7 @@ public: | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; T4 tmp4 = m4; | |||
| T5 tmp5 = m5; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -693,7 +698,7 @@ public: | |||
| if (this->m_count >= this->m_reserved) | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; T4 tmp4 = m4; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -721,7 +726,7 @@ public: | |||
| if (this->m_count >= this->m_reserved) | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; T3 tmp3 = m3; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| new (&this->m_data[this->m_count].m3) T3(tmp3); | |||
| @@ -747,7 +752,7 @@ public: | |||
| if (this->m_count >= this->m_reserved) | |||
| { | |||
| T1 tmp1 = m1; T2 tmp2 = m2; | |||
| this->Reserve(this->m_count * 13 / 8 + 8); | |||
| this->Grow(); | |||
| new (&this->m_data[this->m_count].m1) T1(tmp1); | |||
| new (&this->m_data[this->m_count].m2) T2(tmp2); | |||
| } | |||