commit 2025-09-12 14:54 add ZIFreeHeap in ZCppMain/ZMainHead.H
This commit is contained in:
@ -3765,6 +3765,57 @@ namespace ZNsMain
|
||||
class ZCFreeAllocBase*/
|
||||
|
||||
|
||||
namespace ZNsIFace
|
||||
{
|
||||
|
||||
// 자료 구조에서 자유 기억 공간을 구현하는 interface
|
||||
|
||||
class ZIFreeHeap
|
||||
{
|
||||
public:
|
||||
|
||||
template
|
||||
<typename TTypeLink, typename TTypSize=ZTypLong>
|
||||
class ZtIMain
|
||||
{
|
||||
public:
|
||||
void RecvFreeIn(TTypeLink* AP_CutLink){}
|
||||
void RecvFreeIn ////////////////////////
|
||||
(
|
||||
TTypeLink* AP_CutHead ,
|
||||
TTypeLink* AP_CutTail ,
|
||||
TTypSize AL_CutCnt
|
||||
)
|
||||
{ } ////////////////////////////////////
|
||||
|
||||
|
||||
TTypeLink* SendFreeOut(){}
|
||||
void SendFreeOut /////////////////
|
||||
(
|
||||
TTypeLink*& APR_NewHead ,
|
||||
TTypeLink*& APR_NewTail ,
|
||||
TTypSize AL_NeedCnt
|
||||
)
|
||||
{ } ////////////////////////////////////
|
||||
|
||||
|
||||
void DeleteHeap(){}
|
||||
|
||||
public:
|
||||
};/*
|
||||
template
|
||||
<typename TTypeLink, typename TTypSize=ZTypLong>
|
||||
class ZtIMain */
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZIFreeHeap*/
|
||||
|
||||
|
||||
}/*
|
||||
namespace ZNsIFace*/
|
||||
|
||||
|
||||
// 자유 기억 공간을 총괄하는 단방향 연결 리스트
|
||||
|
||||
class ZCHeapAllocList
|
||||
@ -3993,7 +4044,8 @@ namespace ZNsMain
|
||||
TypeData& mr_TypeData;
|
||||
public :
|
||||
|
||||
ZtCObjPtr(TType& AR_CData) : mr_TypeData(AR_CData){}
|
||||
ZtCObjPtr(TType& AR_CData) : mr_TypeData(AR_CData ){}
|
||||
ZtCObjPtr(ZtCObjPtr& AR_Rhs ) : mr_TypeData(AR_Rhs.mr_TypeData){}
|
||||
|
||||
TypeData* operator->(){return &mr_TypeData;}
|
||||
TypeData& operator* (){return mr_TypeData;}
|
||||
|
@ -58,6 +58,7 @@ namespace ZNsMain
|
||||
typedef const ZCIterator const_iterator;
|
||||
public:
|
||||
|
||||
|
||||
class ZCLink : public TypeAlloc
|
||||
{
|
||||
public :
|
||||
@ -748,7 +749,7 @@ namespace ZNsMain
|
||||
}
|
||||
else if(ml_Size<=rhs.ml_Size)
|
||||
{
|
||||
AddDefault(rhs.ml_Size-ml_Size,ml_Size+1);
|
||||
AddDefault(rhs.ml_Size-ml_Size, ml_Size+1);
|
||||
|
||||
ZCLink* pRhsLink=rhs.mp_HeadLink;
|
||||
ZCLink* pLhsLink= mp_HeadLink;
|
||||
@ -1034,27 +1035,27 @@ namespace ZNsMain
|
||||
|
||||
ZtCObjList& DeleteAll()
|
||||
{
|
||||
if(mp_HeadLink!=0)
|
||||
if(mp_HeadLink==0) return *this;
|
||||
|
||||
OnDelete /*============================*/
|
||||
(
|
||||
mp_HeadLink , 1 ,
|
||||
mp_HeadLink->mp_PrevLink, ml_Size
|
||||
);
|
||||
/*=====================================*/
|
||||
|
||||
ZCLink* VP_DelLink=0 ;
|
||||
|
||||
do ///////////////////
|
||||
{
|
||||
OnDelete(
|
||||
mp_HeadLink, 1, mp_HeadLink->mp_PrevLink, ml_Size);
|
||||
VP_DelLink =mp_HeadLink ;
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink ;
|
||||
|
||||
ZCLink* VP_DelLink=0;
|
||||
delete VP_DelLink;
|
||||
}
|
||||
while(--ml_Size>0);
|
||||
|
||||
do ////
|
||||
{
|
||||
VP_DelLink =mp_HeadLink;
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink ;
|
||||
|
||||
delete VP_DelLink;
|
||||
}
|
||||
while(--ml_Size>0);
|
||||
|
||||
mp_HeadLink =0;
|
||||
}/*
|
||||
if(mp_HeadLink!=0)*/
|
||||
|
||||
return *this;
|
||||
mp_HeadLink =0; return *this;
|
||||
}/*
|
||||
ZtCObjList& DeleteAll()*/
|
||||
|
||||
@ -1168,7 +1169,7 @@ namespace ZNsMain
|
||||
{
|
||||
if(AL_DefaultSize<1 || AL_AddPos<1 || AL_AddPos>ml_Size+1)
|
||||
return 0;
|
||||
//////////////////////////////////////////////////////////
|
||||
/*======================================================*/
|
||||
|
||||
ZtCObjList VO_StoreList; MakeDefault(
|
||||
AL_DefaultSize, VO_StoreList);
|
||||
|
Reference in New Issue
Block a user