commit 2025-09-27 08:52 bug fix in DeleteHeap(TypeSize AI_DelCnt) : ZCppMain/ZtCObjList.H

This commit is contained in:
2025-09-27 08:52:19 +09:00
parent 2c553a20e0
commit a407d97d70
4 changed files with 42 additions and 14 deletions

View File

@ -628,6 +628,9 @@ namespace ZNsMain
ml_AllSize -= AI_DelCnt;
ml_UseSize -= AI_DelCnt;
if(ml_UseSize<1)
mp_NoUseHead = mp_NoUseTail = 0 ;
return AI_DelCnt;
}/*
TypeSize DeleteHeap(TypeSize AI_DelCnt)*/
@ -1025,6 +1028,8 @@ namespace ZNsMain
{
// AP_CopyLink 부터 AP_CopyLink->GetNextPrePtr(AL_FarNum)
// 링크까지를 복사한다. 총 AL_FarNum + 1 개의 링크가 만들어진다.
//
// ARR_StoreList.size() 는 0 이어야 한다.
ZCLink* VP_HeadLink=0;
ZCLink* VP_TailLink=0;
@ -1038,7 +1043,7 @@ namespace ZNsMain
);
//////////////////////////////
VP_TailLink->mp_NextLink=0;
ZCLink::MakeCircle(VP_HeadLink, VP_TailLink);
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
ARR_StoreList.mp_TailLink= VP_TailLink ;
@ -1263,13 +1268,17 @@ namespace ZNsMain
{ DeleteAll(); }
if(rhs.ml_Size==0 ){return *this;}
#if(_CODE_NEW_)
CopyLink(rhs.mp_HeadLink, rhs.ml_Size-1, *this); return *this;
#else
ZtCSimList VO_StoreList;
JoinHead ///////////////////////////
(
CopyLink(rhs.mp_HeadLink, rhs.ml_Size-1 ,VO_StoreList)
CopyLink(rhs.mp_HeadLink, rhs.ml_Size-1, VO_StoreList)
);
return *this; //////////////////////
#endif
}/*
ZtCSimList& operator=(const ZtCSimList& rhs)*/
@ -2136,6 +2145,7 @@ namespace ZNsMain
inline bool IsEmpty() const*/
// ***************************************************************** //
// *********************** Functor 부분 시작 *********************** //
@ -2207,7 +2217,7 @@ namespace ZNsMain
__for0(TTypSize, i, ml_Size)*/
}/*
template
<typename TFunctor , typename TTypeHelp1 , typename TTypeHelp2 >
<typename TFunctor , typename TTypeHelp1 , typename TTypeHelp2 >
void IterElement
(TFunctor AO_Functor, TTypeHelp1 AO_TypeHelp1, TTypeHelp2 AO_TypeHelp2)
*/
@ -2256,13 +2266,13 @@ namespace ZNsMain
template<typename TFunctor> void IterEleCutIf(TFunctor AO_Functor) */
template<typename TFunctor> void IterEleLink
template<typename TFunctor> void IterEleLink ////////////////////////
(
ZCLink* AP_StdLink ,
TTypSize AL_WorkDistance,
TFunctor AO_Functor
)
/*########################################*/
/*#################################################################*/
{
/* AP_StdLink 부터 AL_WorkDistance 만큼 이동하면서
* 각 ZCLink 에 대하여 AO_Functor() 함수를 수행한다.(총 수행 횟수는 (AL_WorkDistance)절대값+1)
@ -2297,20 +2307,21 @@ namespace ZNsMain
}/*
for(TTypSize VL_Loop=0; VL_Loop<=AL_WorkDistance; ++VL_Loop)*/
}/*
void IterEleLink /////////////////
void IterEleLink ////////////////////////////////////////////////////
(
ZCLink* AP_StdLink ,
TTypSize AL_WorkDistance,
TFunctor AO_Functor
)
////////////////////////////////*/
/*#################################################################*/
// ***************************************************************
// ******************************************************************
// *********************** Functor 부분 끝 ***********************
// ************************* Functor 부분 끝 ************************
// ******************************************************************
// ***************************************************************
/*///////////////////////////////////////////////////////////////////////////