Get rid of memsets

master
Piotr Dziwinski 2015-08-06 09:33:37 +02:00
parent 0c9e745213
commit bdeeaf690b
10 changed files with 35 additions and 28 deletions

View File

@ -93,8 +93,8 @@ struct ApplicationPrivate
ApplicationPrivate() ApplicationPrivate()
{ {
memset(&currentEvent, 0, sizeof(SDL_Event)); SDL_memset(&currentEvent, 0, sizeof(SDL_Event));
memset(&lastMouseMotionEvent, 0, sizeof(SDL_Event)); SDL_memset(&lastMouseMotionEvent, 0, sizeof(SDL_Event));
surface = nullptr; surface = nullptr;
joystick = nullptr; joystick = nullptr;
joystickTimer = 0; joystickTimer = 0;

View File

@ -94,8 +94,15 @@ inline bool ReadBinaryBool(std::istream &istr)
*/ */
inline void WriteBinaryFloat(float value, std::ostream &ostr) inline void WriteBinaryFloat(float value, std::ostream &ostr)
{ {
union { float fValue; unsigned int iValue; } u; union FloatCast
memset(&u, 0, sizeof(u)); {
float fValue;
unsigned int iValue;
};
FloatCast u;
u.fValue = 0.0f;
u.iValue = 0;
u.fValue = value; u.fValue = value;
IOUtils::WriteBinary<4, unsigned int>(u.iValue, ostr); IOUtils::WriteBinary<4, unsigned int>(u.iValue, ostr);
} }
@ -107,8 +114,15 @@ inline void WriteBinaryFloat(float value, std::ostream &ostr)
*/ */
inline float ReadBinaryFloat(std::istream &istr) inline float ReadBinaryFloat(std::istream &istr)
{ {
union { float fValue; unsigned int iValue; } u; union FloatCast
memset(&u, 0, sizeof(u)); {
float fValue;
unsigned int iValue;
};
FloatCast u;
u.fValue = 0.0f;
u.iValue = 0;
u.iValue = IOUtils::ReadBinary<4, unsigned int>(istr); u.iValue = IOUtils::ReadBinary<4, unsigned int>(istr);
return u.fValue; return u.fValue;
} }

View File

@ -317,7 +317,7 @@ int CParticle::CreateParticle(Math::Vector pos, Math::Vector speed, Math::Point
if (! m_particle[i].used) if (! m_particle[i].used)
{ {
memset(&m_particle[i], 0, sizeof(Particle)); m_particle[i] = Particle();
m_particle[i].used = true; m_particle[i].used = true;
m_particle[i].ray = false; m_particle[i].ray = false;
m_particle[i].uniqueStamp = m_uniqueStamp++; m_particle[i].uniqueStamp = m_uniqueStamp++;
@ -387,7 +387,7 @@ int CParticle::CreateFrag(Math::Vector pos, Math::Vector speed,
if (!m_particle[i].used) if (!m_particle[i].used)
{ {
memset(&m_particle[i], 0, sizeof(Particle)); m_particle[i] = Particle();
m_particle[i].used = true; m_particle[i].used = true;
m_particle[i].ray = false; m_particle[i].ray = false;
m_particle[i].uniqueStamp = m_uniqueStamp++; m_particle[i].uniqueStamp = m_uniqueStamp++;
@ -491,7 +491,7 @@ int CParticle::CreatePart(Math::Vector pos, Math::Vector speed,
if (!m_particle[i].used) if (!m_particle[i].used)
{ {
memset(&m_particle[i], 0, sizeof(Particle)); m_particle[i] = Particle();
m_particle[i].used = true; m_particle[i].used = true;
m_particle[i].ray = false; m_particle[i].ray = false;
m_particle[i].uniqueStamp = m_uniqueStamp++; m_particle[i].uniqueStamp = m_uniqueStamp++;
@ -547,7 +547,7 @@ int CParticle::CreateRay(Math::Vector pos, Math::Vector goal,
if (!m_particle[i].used) if (!m_particle[i].used)
{ {
memset(&m_particle[i], 0, sizeof(Particle)); m_particle[i] = Particle();
m_particle[i].used = true; m_particle[i].used = true;
m_particle[i].ray = true; m_particle[i].ray = true;
m_particle[i].uniqueStamp = m_uniqueStamp++; m_particle[i].uniqueStamp = m_uniqueStamp++;

View File

@ -161,7 +161,7 @@ COldObject::COldObject(int id)
m_infoReturn = NAN; m_infoReturn = NAN;
m_team = 0; m_team = 0;
memset(&m_character, 0, sizeof(m_character)); m_character = Character();
m_character.wheelFront = 1.0f; m_character.wheelFront = 1.0f;
m_character.wheelBack = 1.0f; m_character.wheelBack = 1.0f;
m_character.wheelLeft = 1.0f; m_character.wheelLeft = 1.0f;

View File

@ -48,11 +48,11 @@ struct Program;
struct Character struct Character
{ {
float wheelFront; // position X of the front wheels float wheelFront = 0.0f; // position X of the front wheels
float wheelBack; // position X of the back wheels float wheelBack = 0.0f; // position X of the back wheels
float wheelLeft; // position Z of the left wheels float wheelLeft = 0.0f; // position Z of the left wheels
float wheelRight; // position Z of the right wheels float wheelRight = 0.0f; // position Z of the right wheels
float height; // normal height on top of ground float height = 0.0f; // normal height on top of ground
Math::Vector posPower; // position of the battery Math::Vector posPower; // position of the battery
}; };

View File

@ -2063,8 +2063,7 @@ bool CTaskGoto::BitmapOpen()
BitmapClose(); BitmapClose();
m_bmSize = static_cast<int>(3200.0f/BM_DIM_STEP); m_bmSize = static_cast<int>(3200.0f/BM_DIM_STEP);
m_bmArray = new unsigned char[m_bmSize*m_bmSize/8*2]; m_bmArray = new unsigned char[m_bmSize*m_bmSize/8*2]();
memset(m_bmArray, 0, m_bmSize*m_bmSize/8*2);
m_bmOffset = m_bmSize/2; m_bmOffset = m_bmSize/2;
m_bmLine = m_bmSize/8; m_bmLine = m_bmSize/8;

View File

@ -525,7 +525,6 @@ bool CTaskShield::CreateLight(Math::Vector pos)
if ( !m_engine->GetLightMode() ) return true; if ( !m_engine->GetLightMode() ) return true;
memset(&light, 0, sizeof(light));
light.type = Gfx::LIGHT_SPOT; light.type = Gfx::LIGHT_SPOT;
light.ambient = Gfx::Color(0.0f, 0.0f, 0.0f); light.ambient = Gfx::Color(0.0f, 0.0f, 0.0f);
light.diffuse = Gfx::Color(0.0f, 1.0f, 2.0f); light.diffuse = Gfx::Color(0.0f, 1.0f, 2.0f);

View File

@ -358,8 +358,7 @@ bool CScript::Run()
if ( m_bStepMode ) // step by step mode? if ( m_bStepMode ) // step by step mode?
{ {
Event newEvent; Event newEvent;
memset(&newEvent, 0, sizeof(Event));
Step(newEvent); Step(newEvent);
} }

View File

@ -101,7 +101,7 @@ CEdit::CEdit () : CControl ()
m_text = std::vector<char>(m_maxChar+1, '\0'); m_text = std::vector<char>(m_maxChar+1, '\0');
m_len = 0; m_len = 0;
memset(m_lineOffset, 0, sizeof(int) * EDITLINEMAX); std::fill_n(m_lineOffset, EDITLINEMAX, 0);
m_fontType = Gfx::FONT_COURIER; m_fontType = Gfx::FONT_COURIER;
m_scroll = 0; m_scroll = 0;

View File

@ -321,11 +321,9 @@ void CScreenLevelList::UpdateSceneChap(int &chap)
CList* pl; CList* pl;
std::string fileName; std::string fileName;
char line[500]; char line[500] = {0};
bool bPassed; bool bPassed;
memset(line, 0, 500);
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) return; if ( pw == 0 ) return;
pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_CHAP)); pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_CHAP));
@ -403,12 +401,10 @@ void CScreenLevelList::UpdateSceneList(int chap, int &sel)
CWindow* pw; CWindow* pw;
CList* pl; CList* pl;
std::string fileName; std::string fileName;
char line[500]; char line[500] = {0};
int j; int j;
bool bPassed; bool bPassed;
memset(line, 0, 500);
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5)); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) return; if ( pw == 0 ) return;
pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_LIST)); pl = static_cast<CList*>(pw->SearchControl(EVENT_INTERFACE_LIST));