From 2ab83e1abbf5ee6d00e16056a9e9394114026f28 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sat, 7 Jan 2017 18:25:37 -0300 Subject: Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector --- core/variant.cpp | 234 +++++++++++++++++++++++++++---------------------------- 1 file changed, 117 insertions(+), 117 deletions(-) (limited to 'core/variant.cpp') diff --git a/core/variant.cpp b/core/variant.cpp index 19b0ea7129..f2c614e14f 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -842,37 +842,37 @@ bool Variant::is_zero() const { // arrays case RAW_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case INT_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case REAL_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case STRING_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case VECTOR2_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case VECTOR3_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; case COLOR_ARRAY: { - return reinterpret_cast*>(_data._mem)->size()==0; + return reinterpret_cast*>(_data._mem)->size()==0; } break; default: {} @@ -1070,37 +1070,37 @@ void Variant::reference(const Variant& p_variant) { // arrays case RAW_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case INT_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case REAL_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case STRING_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case VECTOR2_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case VECTOR3_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; case COLOR_ARRAY: { - memnew_placement( _data._mem, DVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); + memnew_placement( _data._mem, PoolVector ( *reinterpret_cast*>(p_variant._data._mem) ) ); } break; default: {} @@ -1198,37 +1198,37 @@ void Variant::clear() { // arrays case RAW_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case INT_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case REAL_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case STRING_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case VECTOR2_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case VECTOR3_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; case COLOR_ARRAY: { - reinterpret_cast< DVector* >(_data._mem)->~DVector(); + reinterpret_cast< PoolVector* >(_data._mem)->~PoolVector(); } break; default: {} /* not needed */ @@ -1578,7 +1578,7 @@ Variant::operator String() const { } break; case VECTOR2_ARRAY: { - DVector vec = operator DVector(); + PoolVector vec = operator PoolVector(); String str("["); for(int i=0;i vec = operator DVector(); + PoolVector vec = operator PoolVector(); String str("["); for(int i=0;i vec = operator DVector(); + PoolVector vec = operator PoolVector(); String str("["); for(int i=0;i vec = operator DVector(); + PoolVector vec = operator PoolVector(); String str("["); for(int i=0;i vec = operator DVector(); + PoolVector vec = operator PoolVector(); String str("["); for(int i=0;i( p_variant.operator Array () ); } - case Variant::RAW_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::INT_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::REAL_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::STRING_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::VECTOR2_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::VECTOR3_ARRAY: { return _convert_array >( p_variant.operator DVector () ); } - case Variant::COLOR_ARRAY: { return _convert_array >( p_variant.operator DVector() ); } + case Variant::RAW_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::INT_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::REAL_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::STRING_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::VECTOR2_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::VECTOR3_ARRAY: { return _convert_array >( p_variant.operator PoolVector () ); } + case Variant::COLOR_ARRAY: { return _convert_array >( p_variant.operator PoolVector() ); } default: { return DA(); } } @@ -1914,64 +1914,64 @@ Variant::operator Array() const { return _convert_array_from_variant(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==RAW_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==INT_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==REAL_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==STRING_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==VECTOR3_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==VECTOR2_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } -Variant::operator DVector() const { +Variant::operator PoolVector() const { if (type==COLOR_ARRAY) - return *reinterpret_cast* >(_data._mem); + return *reinterpret_cast* >(_data._mem); else - return _convert_array_from_variant >(*this); + return _convert_array_from_variant >(*this); } @@ -1990,13 +1990,13 @@ Variant::operator Vector() const { Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); if (len==0) return Vector(); to.resize(len); - DVector::Read r = from.read(); + PoolVector::Read r = from.read(); Vector2 *w = &to[0]; for (int i=0;i() const { return to; } -Variant::operator DVector() const { +Variant::operator PoolVector() const { Array va= operator Array(); - DVector planes; + PoolVector planes; int va_size=va.size(); if (va_size==0) return planes; planes.resize(va_size); - DVector::Write w = planes.write(); + PoolVector::Write w = planes.write(); for(int i=0;i() const { return planes; } -Variant::operator DVector() const { +Variant::operator PoolVector() const { - DVector va= operator DVector(); - DVector faces; + PoolVector va= operator PoolVector(); + PoolVector faces; int va_size=va.size(); if (va_size==0) return faces; faces.resize(va_size/3); - DVector::Write w = faces.write(); - DVector::Read r = va.read(); + PoolVector::Write w = faces.write(); + PoolVector::Read r = va.read(); for(int i=0;i() const { Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); to.resize(len); @@ -2084,7 +2084,7 @@ Variant::operator Vector() const { } Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); to.resize(len); @@ -2096,7 +2096,7 @@ Variant::operator Vector() const { } Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); to.resize(len); @@ -2109,7 +2109,7 @@ Variant::operator Vector() const { Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); to.resize(len); @@ -2122,13 +2122,13 @@ Variant::operator Vector() const { } Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); if (len==0) return Vector(); to.resize(len); - DVector::Read r = from.read(); + PoolVector::Read r = from.read(); Vector3 *w = &to[0]; for (int i=0;i() const { } Variant::operator Vector() const { - DVector from=operator DVector(); + PoolVector from=operator PoolVector(); Vector to; int len=from.size(); if (len==0) return Vector(); to.resize(len); - DVector::Read r = from.read(); + PoolVector::Read r = from.read(); Color *w = &to[0]; for (int i=0;i addr=operator DVector(); + PoolVector addr=operator PoolVector(); if (addr.size()==4) { return IP_Address(addr.get(0),addr.get(1),addr.get(2),addr.get(3)); } @@ -2418,7 +2418,7 @@ Variant::Variant(const Array& p_array) { } -Variant::Variant(const DVector& p_array) { +Variant::Variant(const PoolVector& p_array) { type=ARRAY; @@ -2467,11 +2467,11 @@ Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); if (len>0) { v.resize(len); - DVector::Write w = v.write(); + PoolVector::Write w = v.write(); const Vector2 *r = p_array.ptr(); for (int i=0;i& p_array) { } -Variant::Variant(const DVector& p_raw_array) { +Variant::Variant(const PoolVector& p_raw_array) { type=RAW_ARRAY; - memnew_placement( _data._mem, DVector(p_raw_array) ); + memnew_placement( _data._mem, PoolVector(p_raw_array) ); } -Variant::Variant(const DVector& p_int_array) { +Variant::Variant(const PoolVector& p_int_array) { type=INT_ARRAY; - memnew_placement( _data._mem, DVector(p_int_array) ); + memnew_placement( _data._mem, PoolVector(p_int_array) ); } -Variant::Variant(const DVector& p_real_array) { +Variant::Variant(const PoolVector& p_real_array) { type=REAL_ARRAY; - memnew_placement( _data._mem, DVector(p_real_array) ); + memnew_placement( _data._mem, PoolVector(p_real_array) ); } -Variant::Variant(const DVector& p_string_array) { +Variant::Variant(const PoolVector& p_string_array) { type=STRING_ARRAY; - memnew_placement( _data._mem, DVector(p_string_array) ); + memnew_placement( _data._mem, PoolVector(p_string_array) ); } -Variant::Variant(const DVector& p_vector3_array) { +Variant::Variant(const PoolVector& p_vector3_array) { type=VECTOR3_ARRAY; - memnew_placement( _data._mem, DVector(p_vector3_array) ); + memnew_placement( _data._mem, PoolVector(p_vector3_array) ); } -Variant::Variant(const DVector& p_vector2_array) { +Variant::Variant(const PoolVector& p_vector2_array) { type=VECTOR2_ARRAY; - memnew_placement( _data._mem, DVector(p_vector2_array) ); + memnew_placement( _data._mem, PoolVector(p_vector2_array) ); } -Variant::Variant(const DVector& p_color_array) { +Variant::Variant(const PoolVector& p_color_array) { type=COLOR_ARRAY; - memnew_placement( _data._mem, DVector(p_color_array) ); + memnew_placement( _data._mem, PoolVector(p_color_array) ); } -Variant::Variant(const DVector& p_face_array) { +Variant::Variant(const PoolVector& p_face_array) { - DVector vertices; + PoolVector vertices; int face_count=p_face_array.size(); vertices.resize(face_count*3); if (face_count) { - DVector::Read r = p_face_array.read(); - DVector::Write w = vertices.write(); + PoolVector::Read r = p_face_array.read(); + PoolVector::Write w = vertices.write(); for(int i=0;i& p_face_array) { w[i*3+j]=r[i].vertex[j]; } - r=DVector::Read(); - w=DVector::Write(); + r=PoolVector::Read(); + w=PoolVector::Write(); } @@ -2567,7 +2567,7 @@ Variant::Variant(const Vector& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); v.resize(len); for (int i=0;i& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); v.resize(len); for (int i=0;i& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); v.resize(len); for (int i=0;i& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); v.resize(len); for (int i=0;i& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); if (len>0) { v.resize(len); - DVector::Write w = v.write(); + PoolVector::Write w = v.write(); const Vector3 *r = p_array.ptr(); for (int i=0;i& p_array) { Variant::Variant(const Vector& p_array) { type=NIL; - DVector v; + PoolVector v; int len=p_array.size(); v.resize(len); for (int i=0;i& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); return hash_djb2_buffer((uint8_t*)&r[0],len); } break; case INT_ARRAY: { - const DVector& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); return hash_djb2_buffer((uint8_t*)&r[0],len*sizeof(int)); } break; case REAL_ARRAY: { - const DVector& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); return hash_djb2_buffer((uint8_t*)&r[0],len*sizeof(real_t)); @@ -2854,9 +2854,9 @@ uint32_t Variant::hash() const { case STRING_ARRAY: { uint32_t hash=5831; - const DVector& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); for(int i=0;i& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); for(int i=0;i& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); for(int i=0;i& arr = *reinterpret_cast* >(_data._mem); + const PoolVector& arr = *reinterpret_cast* >(_data._mem); int len = arr.size(); - DVector::Read r = arr.read(); + PoolVector::Read r = arr.read(); for(int i=0;i