commit 2025-10-03 16:01 delete ChangeCapacity() in ZtCBaseList : ZCppMain/ZMainHead.H
This commit is contained in:
@ -47,9 +47,7 @@ namespace ZNsMain
|
||||
friend class ZNsMain::ZtCSimList; /////////////////////////////
|
||||
|
||||
private:
|
||||
TypeSize ml_AllSize ;
|
||||
TypeSize ml_UseSize ;
|
||||
|
||||
ZCLink* mp_NoUseHead ;
|
||||
ZCLink* mp_NoUseTail ;
|
||||
private:
|
||||
@ -63,7 +61,7 @@ namespace ZNsMain
|
||||
if(TypeInit::ZEUseInit>0)
|
||||
TypeInit::OnInit(*VP_TempLink, *this);
|
||||
|
||||
return (++ml_AllSize, VP_TempLink);
|
||||
return VP_TempLink;
|
||||
}/*
|
||||
if(ml_UseSize==0)*/
|
||||
|
||||
@ -298,8 +296,6 @@ namespace ZNsMain
|
||||
if(TypeInit::ZEUseInit>0)
|
||||
TypeInit::OnInit(**APR_HeadLink, *this);
|
||||
|
||||
ml_AllSize += AL_MakeSize;
|
||||
|
||||
ZCLink* VP_MakeLink = 0 ;
|
||||
ZCLink* VP_TempLink = APR_HeadLink;
|
||||
bool VB_IsHeapOver= false ;
|
||||
@ -321,10 +317,7 @@ namespace ZNsMain
|
||||
|
||||
if(VP_MakeLink==0)
|
||||
{
|
||||
ml_AllSize -= AL_MakeSize+1 ;
|
||||
VB_IsHeapOver = true ;
|
||||
|
||||
break;
|
||||
VB_IsHeapOver = true; break;
|
||||
}/*
|
||||
if(VP_MakeLink==0)*/
|
||||
|
||||
@ -399,14 +392,10 @@ namespace ZNsMain
|
||||
VP_TailLink = VP_MakeLink =
|
||||
new ZCLink(**AP_LinkOrgin) ;
|
||||
|
||||
ml_AllSize += AL_FarNum+1 ;
|
||||
|
||||
if(VP_MakeLink==0)
|
||||
{
|
||||
//add codes for memory over
|
||||
|
||||
ml_AllSize -= AL_FarNum+1;
|
||||
|
||||
DeleteHeap(); return ;
|
||||
}/*
|
||||
if(VP_MakeLink==0)*/
|
||||
@ -421,7 +410,6 @@ namespace ZNsMain
|
||||
|
||||
if(VP_MakeLink==0)
|
||||
{
|
||||
ml_AllSize -= AL_FarNum+1 ;
|
||||
APR_TailCopy = VP_TailLink ;
|
||||
VB_IsHeapOver= true ;
|
||||
|
||||
@ -543,9 +531,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCBody()
|
||||
{
|
||||
ml_AllSize =
|
||||
ml_UseSize = 0 ;
|
||||
|
||||
mp_NoUseHead =
|
||||
mp_NoUseTail = 0 ;
|
||||
}/*
|
||||
@ -559,9 +545,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCBody(const ZtCBody& rhs)
|
||||
{
|
||||
ml_AllSize =
|
||||
ml_UseSize = 0 ;
|
||||
|
||||
mp_NoUseHead =
|
||||
mp_NoUseTail = 0 ;
|
||||
}/*
|
||||
@ -592,7 +576,6 @@ namespace ZNsMain
|
||||
}
|
||||
while(--VI_UseSize>0); /*++++++++*/
|
||||
|
||||
ml_AllSize -= ml_UseSize;
|
||||
ml_UseSize = 0 ;
|
||||
mp_NoUseHead =
|
||||
mp_NoUseTail = 0 ;
|
||||
@ -625,10 +608,7 @@ namespace ZNsMain
|
||||
}
|
||||
while(--VI_DelCntCopy>0); /*+++++*/
|
||||
|
||||
ml_AllSize -= AI_DelCnt;
|
||||
ml_UseSize -= AI_DelCnt;
|
||||
|
||||
return AI_DelCnt;
|
||||
ml_UseSize -= AI_DelCnt; return AI_DelCnt;
|
||||
}/*
|
||||
TypeSize DeleteHeap(TypeSize AI_DelCnt)*/
|
||||
|
||||
@ -676,11 +656,8 @@ namespace ZNsMain
|
||||
|
||||
this->mp_NoUseTail = rhs.mp_NoUseTail;
|
||||
this->ml_UseSize += rhs.ml_UseSize ;
|
||||
this->ml_AllSize += rhs.ml_UseSize ;
|
||||
|
||||
rhs.ml_AllSize -= rhs.ml_UseSize ;
|
||||
rhs.ml_UseSize = 0 ;
|
||||
|
||||
rhs.ml_UseSize = 0 ;
|
||||
rhs.mp_NoUseHead = 0 ;
|
||||
rhs.mp_NoUseTail = 0 ;
|
||||
}/*
|
||||
@ -720,11 +697,9 @@ namespace ZNsMain
|
||||
(this->mp_NoUseTail, rhs.mp_NoUseHead);
|
||||
}
|
||||
|
||||
this->ml_AllSize += AI_FetchSize ;
|
||||
this->ml_UseSize += AI_FetchSize ;
|
||||
this->mp_NoUseTail = VP_RhsCutTail;
|
||||
|
||||
rhs. ml_AllSize -= AI_FetchSize ;
|
||||
rhs. ml_UseSize -= AI_FetchSize ;
|
||||
rhs. mp_NoUseHead = VP_RhsNewHead;
|
||||
|
||||
@ -752,32 +727,12 @@ namespace ZNsMain
|
||||
}/*
|
||||
TypeSize GetUseHeapSize() const*/
|
||||
|
||||
TypeSize GetAllHeapSize() const
|
||||
{
|
||||
return ml_AllSize;
|
||||
}/*
|
||||
TypeSize GetAllHeapSize() const*/
|
||||
|
||||
|
||||
TypeSize size() const
|
||||
{
|
||||
return ml_UseSize;
|
||||
}/*
|
||||
TypeSize size() const*/
|
||||
|
||||
TypeSize capacity() const
|
||||
{
|
||||
return ml_AllSize;
|
||||
}/*
|
||||
TypeSize capacity() const*/
|
||||
|
||||
|
||||
void ChangeCapacity(TypeSize AI_AddCut)
|
||||
{
|
||||
ml_AllSize =+ AI_AddCut;
|
||||
}/*
|
||||
void ChangeCapacity(TypeSize AI_AddCut)*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
template<typename TSimList> class ZtCBody*/
|
||||
@ -1013,7 +968,7 @@ namespace ZNsMain
|
||||
//public :
|
||||
protected:
|
||||
|
||||
TTypSize ml_Size ;
|
||||
TTypSize ml_LinkSize ;
|
||||
ZCLink* mp_HeadLink ;
|
||||
ZCLink* mp_TailLink ; mutable
|
||||
ZCFreeHeap mo_FreeObjt ;
|
||||
@ -1051,7 +1006,7 @@ namespace ZNsMain
|
||||
|
||||
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
|
||||
ARR_StoreList.mp_TailLink= VP_TailLink ;
|
||||
ARR_StoreList.ml_Size = AL_FarNum+1 ;
|
||||
ARR_StoreList.ml_LinkSize= AL_FarNum+1 ;
|
||||
|
||||
return ARR_StoreList;
|
||||
}/*
|
||||
@ -1096,7 +1051,7 @@ namespace ZNsMain
|
||||
}
|
||||
//else
|
||||
|
||||
return (--ml_Size, AP_CutLink);
|
||||
return (--ml_LinkSize, AP_CutLink);
|
||||
}/*
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
||||
|
||||
@ -1130,7 +1085,7 @@ namespace ZNsMain
|
||||
}
|
||||
//else
|
||||
|
||||
return (--ml_Size, AP_CutLink);
|
||||
return (--ml_LinkSize, AP_CutLink);
|
||||
}
|
||||
//ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
||||
|
||||
@ -1172,11 +1127,12 @@ namespace ZNsMain
|
||||
}
|
||||
else // 잘라내려는 링크가 처음과 끝 링크를 포함하지 않을 때.
|
||||
{
|
||||
AP_CutHeadPrev->mp_NextLink=AP_CutTail->mp_NextLink;
|
||||
AP_CutHeadPrev->mp_NextLink = AP_CutTail->mp_NextLink;
|
||||
}
|
||||
//else
|
||||
|
||||
ml_Size -= AL_CutTailPos-AL_CutHeadPos+1 ;
|
||||
TypeSize VL_CutSize = AL_CutTailPos-AL_CutHeadPos+1 ;
|
||||
/*++++*/ ml_LinkSize-= VL_CutSize ;
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
@ -1185,20 +1141,20 @@ namespace ZNsMain
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl;
|
||||
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl;
|
||||
fileout<<" /**************************/ )" <<std::endl;
|
||||
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl;
|
||||
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl;
|
||||
fileout<<" /****************/ )" <<std::endl;
|
||||
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}
|
||||
//if(ARR_StoreList.IsEmpty()!=true)
|
||||
}/*
|
||||
if(ARR_StoreList.IsEmpty()!=true)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
ARR_StoreList.mp_HeadLink=AP_CutHead;
|
||||
ARR_StoreList.mp_TailLink=AP_CutTail;
|
||||
ARR_StoreList.ml_Size =AL_CutTailPos-AL_CutHeadPos+1;
|
||||
ARR_StoreList.mp_HeadLink= AP_CutHead;
|
||||
ARR_StoreList.mp_TailLink= AP_CutTail;
|
||||
ARR_StoreList.ml_LinkSize= VL_CutSize;
|
||||
|
||||
return ARR_StoreList;
|
||||
}/*
|
||||
@ -1225,7 +1181,7 @@ namespace ZNsMain
|
||||
|
||||
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
|
||||
ARR_StoreList.mp_TailLink= VP_TailLink ;
|
||||
ARR_StoreList.ml_Size = AL_DefaultSize ;
|
||||
ARR_StoreList.ml_LinkSize= AL_DefaultSize ;
|
||||
|
||||
return ARR_StoreList;
|
||||
}/*
|
||||
@ -1238,7 +1194,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCSimList()
|
||||
{
|
||||
ml_Size =0;
|
||||
ml_LinkSize=0;
|
||||
mp_HeadLink=0;
|
||||
mp_TailLink=0;
|
||||
}/*
|
||||
@ -1246,7 +1202,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCSimList(TypeArg AR_Type)
|
||||
{
|
||||
ml_Size =0;
|
||||
ml_LinkSize=0;
|
||||
mp_HeadLink=0;
|
||||
mp_TailLink=0;
|
||||
|
||||
@ -1256,30 +1212,30 @@ namespace ZNsMain
|
||||
|
||||
ZtCSimList(const ZtCSimList& rhs)
|
||||
{
|
||||
ml_Size =0;
|
||||
ml_LinkSize=0;
|
||||
mp_HeadLink=0;
|
||||
mp_TailLink=0;
|
||||
|
||||
ZtCSimList VO_StoreList;
|
||||
|
||||
JoinHead( CopyLink(rhs.mp_HeadLink, rhs.ml_Size-1 ,VO_StoreList) );
|
||||
JoinHead( CopyLink(rhs.mp_HeadLink, rhs.ml_LinkSize-1 ,VO_StoreList) );
|
||||
}/*
|
||||
ZtCSimList(const ZtCSimList& rhs)*/
|
||||
|
||||
ZtCSimList& operator=(const ZtCSimList& rhs)
|
||||
{
|
||||
if(&rhs ==this){return *this;}
|
||||
if(&rhs == this){return *this;}
|
||||
{ DeleteAll(); }
|
||||
if(rhs.ml_Size==0 ){return *this;}
|
||||
if(rhs.ml_LinkSize== 0 ){return *this;}
|
||||
|
||||
#if(_CODE_NEW_)
|
||||
CopyLink(rhs.mp_HeadLink, rhs.ml_Size-1, *this); return *this;
|
||||
CopyLink(rhs.mp_HeadLink, rhs.ml_LinkSize-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_LinkSize-1, VO_StoreList)
|
||||
);
|
||||
return *this; //////////////////////
|
||||
#endif
|
||||
@ -1303,7 +1259,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -1313,7 +1269,7 @@ namespace ZNsMain
|
||||
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -1325,7 +1281,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -1334,7 +1290,7 @@ namespace ZNsMain
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -1366,7 +1322,7 @@ namespace ZNsMain
|
||||
#endif
|
||||
VP_AddLink->mo_Data= AR_Type ;
|
||||
|
||||
if(++ml_Size==1) // ml_Size==0
|
||||
if(++ml_LinkSize==1) // ml_LinkSize==0
|
||||
{
|
||||
mp_HeadLink =
|
||||
mp_TailLink = VP_AddLink ;
|
||||
@ -1387,7 +1343,7 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLink* VP_AddLink=GetCFreeHeap().SendFreeOut();
|
||||
|
||||
if(++ml_Size==1) // ml_Size==0
|
||||
if(++ml_LinkSize==1) // ml_LinkSize==0
|
||||
{
|
||||
mp_HeadLink =
|
||||
mp_TailLink = VP_AddLink ;
|
||||
@ -1416,7 +1372,7 @@ namespace ZNsMain
|
||||
#endif
|
||||
VP_AddLink->mo_Data= AR_Type ;
|
||||
|
||||
if(++ml_Size==1) // ml_Size==0
|
||||
if(++ml_LinkSize==1) // ml_LinkSize==0
|
||||
{
|
||||
mp_HeadLink =
|
||||
mp_TailLink = VP_AddLink ;
|
||||
@ -1437,7 +1393,7 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLink* VP_AddLink = GetCFreeHeap().SendFreeOut();
|
||||
|
||||
if(++ml_Size==1) // ml_Size==0
|
||||
if(++ml_LinkSize==1) // ml_LinkSize==0
|
||||
{
|
||||
mp_HeadLink =
|
||||
mp_TailLink = VP_AddLink ;
|
||||
@ -1605,7 +1561,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -1614,7 +1570,7 @@ namespace ZNsMain
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -1626,7 +1582,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -1635,7 +1591,7 @@ namespace ZNsMain
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -1677,7 +1633,7 @@ namespace ZNsMain
|
||||
mp_HeadLink = AP_Link ;
|
||||
}
|
||||
|
||||
++ml_Size; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
++ml_LinkSize; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void JoinHead(ZCLink* AP_Link)*/
|
||||
|
||||
@ -1717,7 +1673,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
else*/
|
||||
|
||||
++ml_Size; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
++ml_LinkSize; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void JoinTail(ZCLink* AP_Link)*/
|
||||
|
||||
@ -1731,26 +1687,23 @@ namespace ZNsMain
|
||||
{
|
||||
mp_HeadLink= rhs.mp_HeadLink;
|
||||
mp_TailLink= rhs.mp_TailLink;
|
||||
ml_Size = rhs.ml_Size ;
|
||||
ml_LinkSize= rhs.ml_LinkSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
rhs.mp_TailLink->mp_NextLink = mp_HeadLink;
|
||||
|
||||
mp_HeadLink= rhs.mp_HeadLink ;
|
||||
ml_Size += rhs.ml_Size ;
|
||||
mp_HeadLink = rhs.mp_HeadLink ;
|
||||
ml_LinkSize += rhs.ml_LinkSize ;
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
|
||||
this->ChangeCapacity( rhs.ml_LinkCnt) ;
|
||||
rhs. ChangeCapacity(-rhs.ml_LinkCnt) ;
|
||||
|
||||
rhs.mp_HeadLink=0;
|
||||
rhs.mp_TailLink=0;
|
||||
rhs.ml_Size =0;
|
||||
rhs.ml_LinkSize=0;
|
||||
}/*
|
||||
void JoinHead(ZtCSimList& rhs)*/
|
||||
|
||||
@ -1762,45 +1715,42 @@ namespace ZNsMain
|
||||
|
||||
if(mp_HeadLink==0)
|
||||
{
|
||||
mp_HeadLink=rhs.mp_HeadLink;
|
||||
mp_TailLink=rhs.mp_TailLink;
|
||||
ml_Size =rhs.ml_Size ;
|
||||
mp_HeadLink = rhs.mp_HeadLink ;
|
||||
mp_TailLink = rhs.mp_TailLink ;
|
||||
ml_LinkSize = rhs.ml_LinkSize ;
|
||||
}
|
||||
else
|
||||
{
|
||||
mp_TailLink->mp_NextLink=rhs.mp_HeadLink;
|
||||
mp_TailLink =rhs.mp_TailLink;
|
||||
|
||||
ml_Size += rhs.ml_Size;
|
||||
ml_LinkSize += rhs.ml_LinkSize;
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
this->ChangeCapacity( rhs.ml_LinkCnt) ;
|
||||
rhs. ChangeCapacity(-rhs.ml_LinkCnt) ;
|
||||
|
||||
rhs.mp_HeadLink=0;
|
||||
rhs.mp_TailLink=0;
|
||||
rhs.ml_Size =0;
|
||||
rhs.mp_HeadLink =0 ;
|
||||
rhs.mp_TailLink =0 ;
|
||||
rhs.ml_LinkSize =0 ;
|
||||
}/*
|
||||
void JoinTail(ZtCSimList& rhs)*/
|
||||
|
||||
|
||||
void DeleteHead()
|
||||
{
|
||||
if(ml_Size==0) return;
|
||||
if(ml_LinkSize==0) return;
|
||||
|
||||
ZCLink* VP_DelLink= mp_HeadLink ;
|
||||
mp_HeadLink = mp_HeadLink->mp_NextLink;
|
||||
ZCLink* VP_DelLink = mp_HeadLink ;
|
||||
/*+++*/ mp_HeadLink = mp_HeadLink->mp_NextLink;
|
||||
|
||||
GetCFreeHeap().RecvFreeIn(VP_DelLink);
|
||||
|
||||
if(--ml_Size==0)
|
||||
if(--ml_LinkSize==0)
|
||||
{
|
||||
mp_HeadLink = mp_TailLink = 0 ; return;
|
||||
}/*
|
||||
if(--ml_Size==0)*/
|
||||
if(--ml_LinkSize==0)*/
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
@ -1810,41 +1760,51 @@ namespace ZNsMain
|
||||
{
|
||||
// AL_DelSize 개의 링크를 앞 부분에서 삭제
|
||||
|
||||
if(AL_DelSize < 1 ) AL_DelSize= 1 ;
|
||||
if(AL_DelSize > ml_Size) AL_DelSize= ml_Size;
|
||||
if(ml_LinkSize==0 || AL_DelSize<1){ return; }
|
||||
|
||||
ZCLink* VP_CutTail =
|
||||
mp_HeadLink->GetNextPtr(AL_DelSize-1);
|
||||
if(AL_DelSize> ml_LinkSize){ AL_DelSize=ml_LinkSize; }
|
||||
|
||||
ZtCSimList VO_StoreList; CutLink /////////////
|
||||
(
|
||||
0, mp_HeadLink
|
||||
, 1, VP_CutTail
|
||||
, AL_DelSize
|
||||
, VO_StoreList
|
||||
)
|
||||
.DeleteAll();
|
||||
////////////////////////////////////////////////
|
||||
if(AL_DelSize==ml_LinkSize)
|
||||
{
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
(ml_LinkSize, mp_HeadLink, mp_TailLink);
|
||||
mp_HeadLink=0 ;
|
||||
mp_TailLink=0 ;
|
||||
ml_LinkSize=0 ;
|
||||
|
||||
return;
|
||||
}/*
|
||||
if(AL_DelSize==ml_LinkSize)*/
|
||||
|
||||
ZCLink* VP_NewHead= mp_HeadLink->
|
||||
GetNextPtr( AL_DelSize );
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
(AL_DelSize, mp_HeadLink, VP_NewHead->mp_PrevLink);
|
||||
|
||||
mp_HeadLink = VP_NewHead ;
|
||||
ml_LinkSize -= AL_DelSize ;
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteHead(TTypSize AL_DelSize)*/
|
||||
|
||||
void DeleteTail()
|
||||
{
|
||||
if(ml_Size==0){return;}
|
||||
if(ml_LinkSize==0){return;}
|
||||
|
||||
ZCLink* VP_CutLink = mp_TailLink;
|
||||
|
||||
if(--ml_Size==0)
|
||||
if(--ml_LinkSize==0)
|
||||
{
|
||||
mp_HeadLink =
|
||||
mp_TailLink = 0 ;
|
||||
|
||||
return;
|
||||
}/*
|
||||
if(--ml_Size==0)*/
|
||||
if(--ml_LinkSize==0)*/
|
||||
|
||||
mp_TailLink =
|
||||
mp_HeadLink->GetNextPtr(ml_Size-1);
|
||||
mp_HeadLink->GetNextPtr(ml_LinkSize-1);
|
||||
mp_TailLink->mp_NextLink=0 ;
|
||||
|
||||
GetCFreeHeap().RecvFreeIn(VP_CutLink);
|
||||
@ -1855,30 +1815,29 @@ namespace ZNsMain
|
||||
|
||||
void DeleteTail(TTypSize AL_DelSize)
|
||||
{
|
||||
if(ml_Size==0){return;}
|
||||
if(ml_LinkSize==0 || AL_DelSize<1){ return; }
|
||||
|
||||
if(AL_DelSize> ml_Size){ AL_DelSize=ml_Size; }
|
||||
if(AL_DelSize< 1 ){ AL_DelSize=1 ; }
|
||||
if(AL_DelSize> ml_LinkSize){ AL_DelSize=ml_LinkSize; }
|
||||
|
||||
if(AL_DelSize==ml_Size)
|
||||
if(AL_DelSize==ml_LinkSize)
|
||||
{
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
(ml_Size, mp_HeadLink, mp_TailLink);
|
||||
(ml_LinkSize, mp_HeadLink, mp_TailLink);
|
||||
mp_HeadLink=0 ;
|
||||
mp_TailLink=0 ;
|
||||
ml_Size =0 ;
|
||||
ml_LinkSize=0 ;
|
||||
|
||||
return;
|
||||
}/*
|
||||
if(AL_DelSize==ml_Size)*/
|
||||
if(AL_DelSize==ml_LinkSize)*/
|
||||
|
||||
ZCLink* VP_NewTail= mp_HeadLink->
|
||||
GetNextPtr( ml_Size-AL_DelSize-1 );
|
||||
ZCLink* VP_NewTail= mp_TailLink->
|
||||
GetNextPtr( -AL_DelSize );
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
(AL_DelSize, VP_NewTail->mp_NextLink, mp_TailLink);
|
||||
|
||||
mp_TailLink = VP_NewTail ;
|
||||
ml_Size -= AL_DelSize ;
|
||||
mp_TailLink = VP_NewTail ;
|
||||
ml_LinkSize -= AL_DelSize ;
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
@ -1908,7 +1867,7 @@ namespace ZNsMain
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if ( ml_Size==0 ||
|
||||
if ( ml_LinkSize==0 ||
|
||||
Find(AP_CutLink) !=AL_CutPos ||
|
||||
Find(AP_PrevLink)!=(AL_CutPos-1)
|
||||
)
|
||||
@ -1937,7 +1896,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if ( ml_Size==0 ||
|
||||
if ( ml_LinkSize==0 ||
|
||||
AL_CutHeadPos>AL_CutTailPos ||
|
||||
Find(AP_CutHead)!=AL_CutHeadPos ||
|
||||
Find(AP_CutTail)!=AL_CutTailPos ||
|
||||
@ -1976,14 +1935,14 @@ namespace ZNsMain
|
||||
|
||||
void DeleteAll()
|
||||
{
|
||||
if(ml_Size==0) {return;}
|
||||
if(ml_LinkSize==0) {return;}
|
||||
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
(ml_Size, mp_HeadLink, mp_TailLink);
|
||||
(ml_LinkSize, mp_HeadLink, mp_TailLink);
|
||||
|
||||
mp_HeadLink =
|
||||
mp_TailLink =0;
|
||||
ml_Size =0;
|
||||
mp_TailLink =0 ;
|
||||
ml_LinkSize =0 ;
|
||||
}/*
|
||||
void DeleteAll()*/
|
||||
|
||||
@ -2004,7 +1963,7 @@ namespace ZNsMain
|
||||
(
|
||||
mp_HeadLink ==0 ||
|
||||
AL_FirstFindIndex < 1 ||
|
||||
AL_FirstFindIndex > ml_Size
|
||||
AL_FirstFindIndex > ml_LinkSize
|
||||
);
|
||||
if(CB_DoStop) {return 0;} /////////
|
||||
|
||||
@ -2019,7 +1978,7 @@ namespace ZNsMain
|
||||
{ return VL_FindIndex; }
|
||||
/*+++++++++++++++++++++++++++*/
|
||||
|
||||
if(VL_FindIndex==ml_Size){return 0; }
|
||||
if(VL_FindIndex==ml_LinkSize){return 0; }
|
||||
|
||||
VP_TempLink = VP_TempLink->mp_NextLink;
|
||||
VL_FindIndex= VL_FindIndex + 1 ;
|
||||
@ -2032,7 +1991,7 @@ namespace ZNsMain
|
||||
{
|
||||
const bool CB_DoStop =
|
||||
(
|
||||
mp_HeadLink==0 || AL_FirstFindIndex<1 || AL_FirstFindIndex>ml_Size
|
||||
mp_HeadLink==0 || AL_FirstFindIndex<1 || AL_FirstFindIndex>ml_LinkSize
|
||||
);
|
||||
if(CB_DoStop) return 0;
|
||||
|
||||
@ -2047,7 +2006,7 @@ namespace ZNsMain
|
||||
{return VL_FindIndex;}
|
||||
/*+++++++++++++++++++++++++*/
|
||||
|
||||
if(VL_FindIndex==ml_Size){return 0; }
|
||||
if(VL_FindIndex==ml_LinkSize){return 0; }
|
||||
|
||||
VP_TempLink = VP_TempLink->mp_NextLink;
|
||||
VL_FindIndex= VL_FindIndex + 1 ;
|
||||
@ -2077,7 +2036,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -2086,7 +2045,7 @@ namespace ZNsMain
|
||||
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -2099,7 +2058,7 @@ namespace ZNsMain
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_Index<1 || AL_Index>ml_Size)
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -2108,7 +2067,7 @@ namespace ZNsMain
|
||||
|
||||
exit(1);
|
||||
}/*
|
||||
if(AL_Index<1 || AL_Index>ml_Size)*/
|
||||
if(AL_Index<1 || AL_Index>ml_LinkSize)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
@ -2126,19 +2085,19 @@ namespace ZNsMain
|
||||
|
||||
inline TTypSize GetSize() const
|
||||
{
|
||||
return ml_Size;
|
||||
return ml_LinkSize;
|
||||
}/*
|
||||
inline TTypSize GetSize() const*/
|
||||
|
||||
inline TTypSize size() const
|
||||
{
|
||||
return ml_Size;
|
||||
return ml_LinkSize;
|
||||
}/*
|
||||
inline TTypSize size() const*/
|
||||
|
||||
inline TTypSize capacity() const
|
||||
{
|
||||
return mo_FreeObjt.capacity();
|
||||
return size()+mo_FreeObjt.size();
|
||||
}/*
|
||||
inline TTypSize capacity() const*/
|
||||
|
||||
@ -2148,12 +2107,6 @@ namespace ZNsMain
|
||||
}/*
|
||||
inline TypeSize GetFreeSize() const*/
|
||||
|
||||
void ChangeCapacity(TypeSize AI_AddCut) const
|
||||
{
|
||||
mo_FreeObjt.ChangeCapacity(AI_AddCut);
|
||||
}/*
|
||||
void ChangeCapacity(TypeSize AI_AddCut) const*/
|
||||
|
||||
|
||||
inline bool IsEmpty() const
|
||||
{
|
||||
@ -2174,14 +2127,14 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLink* VP_LoopLink = mp_HeadLink;
|
||||
|
||||
__for1(TTypSize, VL_Index, ml_Size)
|
||||
__for1(TTypSize, VL_Index, ml_LinkSize)
|
||||
{
|
||||
ZtCTypeData<TFunctor>::
|
||||
GetObjRef(AO_Functor)(VP_LoopLink->mo_Data);
|
||||
|
||||
VP_LoopLink = VP_LoopLink->mp_NextLink;
|
||||
}/*
|
||||
__for1(TTypSize, VL_Index, ml_Size)*/
|
||||
__for1(TTypSize, VL_Index, ml_LinkSize)*/
|
||||
}/*
|
||||
template<typename TFunctor> void IterElement(TFunctor AO_Functor) */
|
||||
|
||||
@ -2194,7 +2147,7 @@ namespace ZNsMain
|
||||
|
||||
ZCLink* VP_LoopLink=mp_HeadLink;
|
||||
|
||||
__for0(TTypSize, i, ml_Size)
|
||||
__for0(TTypSize, i, ml_LinkSize)
|
||||
{
|
||||
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||
(
|
||||
@ -2204,7 +2157,7 @@ namespace ZNsMain
|
||||
|
||||
VP_LoopLink = VP_LoopLink->mp_NextLink ;
|
||||
}/*
|
||||
__for0(TTypSize, i, ml_Size)*/
|
||||
__for0(TTypSize, i, ml_LinkSize)*/
|
||||
}/*
|
||||
template<typename TFunctor, typename TTypeHelp>
|
||||
void IterElement(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
|
||||
@ -2219,7 +2172,7 @@ namespace ZNsMain
|
||||
|
||||
ZCLink* VP_LoopLink = mp_HeadLink ;
|
||||
|
||||
__for0(TTypSize, i, ml_Size)
|
||||
__for0(TTypSize, i, ml_LinkSize)
|
||||
{
|
||||
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||
(
|
||||
@ -2231,7 +2184,7 @@ namespace ZNsMain
|
||||
|
||||
VP_LoopLink = VP_LoopLink->mp_NextLink ;
|
||||
}/*
|
||||
__for0(TTypSize, i, ml_Size)*/
|
||||
__for0(TTypSize, i, ml_LinkSize)*/
|
||||
}/*
|
||||
template
|
||||
<typename TFunctor , typename TTypeHelp1 , typename TTypeHelp2 >
|
||||
@ -2250,10 +2203,10 @@ namespace ZNsMain
|
||||
ZCLink* VP_TempBefore=VP_TempLink ;
|
||||
|
||||
// 순회 도중에 링크가 삭제되면 노드갯수가 변할 수 있으므로
|
||||
// ml_Size 를 다른 변수에 담아 놓는다.
|
||||
// ml_LinkSize 를 다른 변수에 담아 놓는다.
|
||||
|
||||
TTypSize VL_Count=ml_Size ;
|
||||
TTypSize VL_Index=1 ;
|
||||
TTypSize VL_Count=ml_LinkSize ;
|
||||
TTypSize VL_Index=1 ;
|
||||
|
||||
__for1(TTypSize, VL_Loop, VL_Count)
|
||||
{
|
||||
@ -2299,7 +2252,7 @@ namespace ZNsMain
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(ml_Size==0 || Find(AP_StdLink)==0 || AL_WorkDistance>=ml_Size || AL_WorkDistance<0)
|
||||
if(ml_LinkSize==0 || Find(AP_StdLink)==0 || AL_WorkDistance>=ml_LinkSize || AL_WorkDistance<0)
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
@ -2311,7 +2264,7 @@ namespace ZNsMain
|
||||
fileout.close();
|
||||
exit(1);
|
||||
}
|
||||
/*if(ml_Size==0 || Find(AP_StdLink)==0 || AL_WorkDistance>=ml_Size || AL_WorkDistance<0)*/
|
||||
/*if(ml_LinkSize==0 || Find(AP_StdLink)==0 || AL_WorkDistance>=ml_LinkSize || AL_WorkDistance<0)*/
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
|
Reference in New Issue
Block a user