From 37612872f5514bdf2b150e6c5aa724c3f98084d1 Mon Sep 17 00:00:00 2001 From: Igor Novikov Date: Sat, 9 Dec 2017 15:23:07 +0500 Subject: [PATCH] To avoid potentially memory leak. And avoid use ZeroMemory of this pointer. --- .../xrRenderDX10/3DFluid/dx103DFluidData.cpp | 3 ++- src/xrCore/Animation/Bone.hpp | 8 ++++++-- src/xrEngine/tntQAVI.cpp | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidData.cpp b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidData.cpp index 6cc8dd42b5d..3e924aa3377 100644 --- a/src/Layers/xrRenderDX10/3DFluid/dx103DFluidData.cpp +++ b/src/Layers/xrRenderDX10/3DFluid/dx103DFluidData.cpp @@ -160,13 +160,14 @@ void dx103DFluidData::ParseProfile(const xr_string& Profile) u32 iEmittersNum = ini.r_u32("volume", "EmittersNum"); + m_Emitters.clear(); m_Emitters.resize(iEmittersNum); for (u32 i = 0; i < iEmittersNum; ++i) { string32 EmitterSectionName; CEmitter& Emitter = m_Emitters[i]; - ZeroMemory(&Emitter, sizeof(Emitter)); + xr_sprintf(EmitterSectionName, "emitter%02d", i); Emitter.m_eType = (dx103DFluidEmitters::EmitterType)ini.r_token(EmitterSectionName, "Type", emitter_type_token); diff --git a/src/xrCore/Animation/Bone.hpp b/src/xrCore/Animation/Bone.hpp index c6548c3d2a7..41969e666ca 100644 --- a/src/xrCore/Animation/Bone.hpp +++ b/src/xrCore/Animation/Bone.hpp @@ -564,11 +564,15 @@ enum EBoneCallbackType IC void CBoneInstance::construct() { - ZeroMemory(this, sizeof(*this)); mTransform.identity(); - mRenderTransform.identity(); + + Callback = NULL; + Callback_Param = NULL; Callback_overwrite = FALSE; + Callback_type = 0; + + ZeroMemory(¶m, sizeof(param)); } #endif diff --git a/src/xrEngine/tntQAVI.cpp b/src/xrEngine/tntQAVI.cpp index a3ca9dc4ff5..546cee688c3 100644 --- a/src/xrEngine/tntQAVI.cpp +++ b/src/xrEngine/tntQAVI.cpp @@ -5,9 +5,25 @@ CAviPlayerCustom::CAviPlayerCustom() { - ZeroMemory(this, sizeof(*this)); + alpha = NULL; + + m_pMovieIndex = NULL; + m_pMovieData = NULL; + m_aviIC = NULL; + m_pDecompressedBuf = NULL; + + ZeroMemory(&m_biOutFormat, sizeof(BITMAPINFOHEADER)); + ZeroMemory(&m_biInFormat, sizeof(BITMAPINFOHEADER)); + + m_fRate = 0.0f; + m_fCurrentRate = 0.0f; + + m_dwFrameTotal = 0; m_dwFrameCurrent = 0xfffffffd; // страхуемся от 0xffffffff + 1 == 0 m_dwFirstFrameOffset = 0; + + m_dwWidth = 0; + m_dwHeight = 0; } CAviPlayerCustom::~CAviPlayerCustom()