commit 2025-09-28 10:10 template parameter TTypeCRTP in ZtCBaseList : ZCppMain/ZMainHead.H
This commit is contained in:
@ -1023,13 +1023,23 @@ namespace ZNsMain
|
||||
/////////////////////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
|
||||
/*#########################################################################################
|
||||
|
||||
■ 2번 template parameter 가 bool TTypebUseCRTP 인데, 만약 TTypeChild 가 유효한 자료형이라
|
||||
면, TTypebUseCRTP 이 true 인 것이 맞겠으나, DEBUG 등의 특수한 용도로 TTypebUseCRTP 을
|
||||
false 로 설정할 수 있게 한 것이다.
|
||||
|
||||
-- 2025-09-28 08:41
|
||||
|
||||
#########################################################################################*/
|
||||
|
||||
template< typename TTypeChild=ZCEmpty, bool TTypebUseCRTP =false
|
||||
>
|
||||
class ZtCTypeCRTP ////////////////////////////////////////////////
|
||||
{
|
||||
public:
|
||||
typedef TTypeChild TypeData;
|
||||
typedef TTypeChild TypeHigh;
|
||||
public:
|
||||
enum{ZEUseCRTP=(ZTypIntE)TTypebUseCRTP};
|
||||
public:
|
||||
@ -1039,6 +1049,17 @@ namespace ZNsMain
|
||||
class ZtCTypeCRTP //////////////////////////////////////////////*/
|
||||
|
||||
|
||||
|
||||
#if(_CODE_OLD_)
|
||||
|
||||
/*#########################################################################################
|
||||
|
||||
■ ZtCTypeCRTP2 이 필요한 곳에 ZtCTypeNowCRTP 을 사용하자. -- 2025-09-28 09:25
|
||||
|
||||
ZtCBaseList 에서 ZtCTypeCRTP 와 ZtCTypeNowCRTP 을 사용하고 있다.
|
||||
|
||||
#########################################################################################*/
|
||||
|
||||
template< typename TTypeChild = ZCEmpty , ////////////////////
|
||||
typename TTypeBase = ZCEmpty ,
|
||||
bool TTypebUseCRTP= false
|
||||
@ -1047,7 +1068,6 @@ namespace ZNsMain
|
||||
{
|
||||
public:
|
||||
typedef TTypeChild TypeData;
|
||||
typedef TTypeChild TypeHigh;
|
||||
typedef TTypeBase TypeBase;
|
||||
public:
|
||||
enum{ZEUseCRTP=(ZTypIntE)TTypebUseCRTP};
|
||||
@ -1059,6 +1079,8 @@ namespace ZNsMain
|
||||
>
|
||||
class ZtCTypeCRTP2 /////////////////////////////////////////////*/
|
||||
|
||||
#endif //_CODE_OLD_
|
||||
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1067,7 +1089,7 @@ namespace ZNsMain
|
||||
|
||||
-- 2012-09-20 09:46:00
|
||||
|
||||
■ 해당 코드는 대충 이렇다.-- 2025-09-28 02:41
|
||||
■ 해당 코드는 대충 이렇다. -- 2025-09-28 02:41
|
||||
|
||||
template< typename TWork ,
|
||||
typename TWorkExec , // 작업(TWork)에 대하여 어떤 처리를 하는 클래스
|
||||
@ -1148,13 +1170,69 @@ namespace ZNsMain
|
||||
typedef typename TTypeCtrlAllocWork::CThreadLink CThreadLink;
|
||||
typedef typename TTypeCtrlAllocWork::CTypeCRTP CTypeCRTP ;
|
||||
|
||||
// 이후 아래 코드로
|
||||
//
|
||||
// typedef typename CTypeCRTP::TypeData CCtrlAllocWorkEx;
|
||||
//
|
||||
// CCtrlAllocWork_T 의 상속 클래스에 접근할 수 있다.
|
||||
|
||||
// some code
|
||||
|
||||
|
||||
void SetCloseMark(CWork& ARR_CWork)
|
||||
{
|
||||
if(CTypeCRTP::EUseCRTP>0)
|
||||
{
|
||||
typedef typename CTypeCRTP::TypeData CCtrlAllocWorkEx;
|
||||
|
||||
#if(_CODE_NEW_)
|
||||
static_cast<CCtrlAllocWorkEx&>(*this). // 코드-CCtrlAllocWork::CRTP2
|
||||
SetCloseMarkInChild(RR(ARR_CWork)); return;
|
||||
#else
|
||||
((CCtrlAllocWorkEx&)(*this)). // 코드-CCtrlAllocWork::CRTP
|
||||
SetCloseMarkInChild(RR(ARR_CWork)); return;
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
■ 주석-CCtrlAllocWork::CRTP2
|
||||
|
||||
이전에는 상속 클래스의 SetCloseMarkInChild() 을 사용하기 위해 위의 '코드-CCtrlAllocWork::CRTP'
|
||||
를 사용하였으나 약간의 안전성 상승을 위해, std::NsType::CTypeCRTP2_T<> 을 긴급히 정의하고, NsT
|
||||
ype::CTypeCtrlAllocWork_T<> 의 템플릿 인수에 typename TTypeCRTP 를 추가한 다음, '코드-CCtrlAll
|
||||
ocWork::CRTP2' 를 사용하게 되었다. 그래서 class CCtrlAllocWork_T<> 이
|
||||
|
||||
TTypeCtrlAllocWork::CTypeCRTP::TypeBase
|
||||
|
||||
을 상속하고 있다. 이 TypeBase 는 SetCloseMarkInChild(CWork&) 함수를 가져야 한다.
|
||||
|
||||
-- 2012-09-20 09:43:00
|
||||
|
||||
■ NsType::CTypeCRTP2_T<> 는 NsType::CTypeCRTP_T<> 에서 TypeBase 가 추가된 것이다.
|
||||
|
||||
-- 2012-09-20 09:57:00
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
CWorkExec::SetCloseMark(RR(ARR_CWork));
|
||||
}
|
||||
//void SetCloseMark(CWork& ARR_CWork)
|
||||
|
||||
|
||||
// some code
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
즉 아래 코드로
|
||||
|
||||
typedef typename CTypeCRTP::TypeData CCtrlAllocWorkEx;
|
||||
|
||||
CCtrlAllocWork_T 의 상속 클래스에 접근하고 있는데, 이것은 좀 이상하다.
|
||||
|
||||
즉 CTypeCRTP::TypeData 은 NsIFace::ICtrlAllocWork 이기 때문이다. 예전
|
||||
코드라 그런지 나쁜 냄새가 난다.
|
||||
|
||||
-- 2025-09-28 07-27
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
@ -5130,29 +5208,39 @@ namespace ZNsMain
|
||||
|
||||
// class ZtCBaseList : circular double linked list
|
||||
|
||||
template ///////////////////////////////////////////////
|
||||
template //////////////////////////////////////////////////////////////////
|
||||
<
|
||||
typename TType ,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TTypArgu = const TType& ,
|
||||
typename TTypeAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
ZtCMoveObj<TType, TTypArgu, true> ,
|
||||
typename TTypeCRTP = ZNsType::ZtCTypeCRTP<ZCEmpty, false>
|
||||
>
|
||||
class ZtCBaseList /*##################################*/
|
||||
class ZtCBaseList /*#####################################################*/
|
||||
{
|
||||
public:
|
||||
class ZCLink;
|
||||
public:
|
||||
typedef TType TypeData ;
|
||||
typedef TTypArgu TypeArg ;
|
||||
typedef TTypCAlloc TypeAlloc ;
|
||||
typedef TTypeAlloc TypeAlloc ;
|
||||
typedef TTypSize TypeSize ;
|
||||
typedef TMoveObj TypeMoveObj ;
|
||||
typedef ZCLink* IterEasy ; // 가장 대표적으로 쓰일 수 있는 반복자.
|
||||
typedef ZCLink* iterator ;
|
||||
public:
|
||||
|
||||
typedef ZNsType::ZtCTypeNowCRTP ///////////////////
|
||||
<
|
||||
ZtCBaseList, typename TTypeCRTP::TypeData
|
||||
>
|
||||
ZCTypeNowCRTP ; ///////////////////////////////////
|
||||
|
||||
typedef typename ZCTypeNowCRTP::TypeData TypeChild;
|
||||
|
||||
public :
|
||||
|
||||
class ZCLink : public TypeAlloc
|
||||
{
|
||||
@ -5163,11 +5251,27 @@ namespace ZNsMain
|
||||
ZCLink* mp_NextLink ;
|
||||
ZCLink* mp_PrevLink ;
|
||||
private:
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
ZCLink* GetNextPtr() {return mp_NextLink;}
|
||||
ZCLink* GetPrevPtr() {return mp_PrevLink;}
|
||||
const ZCLink* GetNextPtr()const{return mp_NextLink;}
|
||||
const ZCLink* GetPrevPtr()const{return mp_PrevLink;}
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
private:
|
||||
|
||||
ZCLink* GetNextPtr() {return mp_NextLink;}
|
||||
ZCLink* GetPrevPtr() {return mp_PrevLink;}
|
||||
const ZCLink* GetNextPtr()const{return mp_NextLink;}
|
||||
const ZCLink* GetPrevPtr()const{return mp_PrevLink;}
|
||||
static void JoinLink(ZCLink* AP_PrevLink, ZCLink* AP_NextLink)
|
||||
{
|
||||
AP_PrevLink->mp_NextLink=AP_NextLink;
|
||||
AP_NextLink->mp_PrevLink=AP_PrevLink;
|
||||
}/*
|
||||
static void JoinLink(ZCLink* AP_PrevLink, ZCLink* AP_NextLink)*/
|
||||
|
||||
static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
{
|
||||
AP_HeadLink->mp_PrevLink=AP_TailLink;
|
||||
AP_TailLink->mp_NextLink=AP_HeadLink;
|
||||
}/*
|
||||
static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)*/
|
||||
|
||||
public:
|
||||
|
||||
@ -5244,6 +5348,35 @@ namespace ZNsMain
|
||||
TypeSize ml_LinkCnt ;
|
||||
private :
|
||||
|
||||
ZCLink* NewLink()
|
||||
{
|
||||
if(TTypeCRTP::ZEUseCRTP<1) return new ZCLink;
|
||||
|
||||
return (*static_cast<TypeChild*>(this)).NewLink();
|
||||
}/*
|
||||
ZCLink* NewLink()*/
|
||||
|
||||
ZCLink* NewLink(TypeArg AO_ArgData)
|
||||
{
|
||||
if(TTypeCRTP::ZEUseCRTP<1)
|
||||
{ return new ZCLink(AO_ArgData); }
|
||||
|
||||
return (*static_cast<TypeChild*>(this)).NewLink(AO_ArgData);
|
||||
}/*
|
||||
ZCLink* NewLink(TypeArg AO_ArgData)*/
|
||||
|
||||
void DelLink(ZCLink* AP_DelLink)
|
||||
{
|
||||
if(TTypeCRTP::ZEUseCRTP<1)
|
||||
{ delete AP_DelLink; return; }
|
||||
|
||||
return (*static_cast<TypeChild*>(this)).DelLink(AP_DelLink);
|
||||
}/*
|
||||
void DelLink(ZCLink* AP_DelLink)*/
|
||||
|
||||
/*private :*/
|
||||
private :
|
||||
|
||||
ZCLink* AddTailLink(ZCLink* AP_NewLink)
|
||||
{
|
||||
if(ml_LinkCnt<1)
|
||||
@ -5251,22 +5384,19 @@ namespace ZNsMain
|
||||
mp_HeadLink = AP_NewLink;
|
||||
mp_TailLink = AP_NewLink;
|
||||
|
||||
mp_HeadLink->mp_NextLink = mp_HeadLink ;
|
||||
mp_HeadLink->mp_PrevLink = mp_HeadLink ;
|
||||
ZCLink::MakeRing
|
||||
( mp_HeadLink, mp_TailLink ) ;
|
||||
|
||||
ml_LinkCnt= 1; return AP_NewLink;
|
||||
}/*
|
||||
if(ml_LinkCnt<1)*/
|
||||
|
||||
mp_TailLink->mp_NextLink = AP_NewLink ;
|
||||
AP_NewLink ->mp_PrevLink = mp_TailLink ;
|
||||
ZCLink::JoinLink(mp_TailLink, AP_NewLink) ;
|
||||
ZCLink::MakeRing(mp_HeadLink, AP_NewLink) ;
|
||||
|
||||
AP_NewLink ->mp_NextLink = mp_HeadLink ;
|
||||
mp_HeadLink->mp_PrevLink = AP_NewLink ;
|
||||
mp_TailLink = AP_NewLink; ++ml_LinkCnt ;
|
||||
|
||||
mp_TailLink = AP_NewLink; ++ml_LinkCnt;
|
||||
|
||||
return AP_NewLink; /*:::::::::::::::::*/
|
||||
return AP_NewLink; /*::::::::::::::::::::*/
|
||||
}/*
|
||||
ZCLink* AddTailLink(ZCLink* AP_CLink)*/
|
||||
|
||||
@ -5277,26 +5407,24 @@ namespace ZNsMain
|
||||
mp_HeadLink = AP_NewLink;
|
||||
mp_TailLink = AP_NewLink;
|
||||
|
||||
mp_HeadLink->mp_NextLink = mp_HeadLink ;
|
||||
mp_HeadLink->mp_PrevLink = mp_HeadLink ;
|
||||
ZCLink::MakeRing
|
||||
( mp_HeadLink, mp_TailLink ) ;
|
||||
|
||||
ml_LinkCnt= 1; return AP_NewLink;
|
||||
}/*
|
||||
if(ml_LinkCnt<1)*/
|
||||
|
||||
AP_NewLink ->mp_NextLink = mp_HeadLink ;
|
||||
mp_HeadLink->mp_PrevLink = AP_NewLink ;
|
||||
ZCLink::JoinLink(AP_NewLink, mp_HeadLink) ;
|
||||
ZCLink::MakeRing(AP_NewLink, mp_TailLink) ;
|
||||
|
||||
AP_NewLink ->mp_PrevLink = mp_TailLink ;
|
||||
mp_TailLink->mp_NextLink = AP_NewLink ;
|
||||
mp_HeadLink = AP_NewLink; ++ml_LinkCnt ;
|
||||
|
||||
mp_HeadLink = AP_NewLink; ++ml_LinkCnt;
|
||||
|
||||
return AP_NewLink; /*:::::::::::::::::*/
|
||||
return AP_NewLink; /*::::::::::::::::::::*/
|
||||
}/*
|
||||
ZCLink* AddHeadLink(ZCLink* AP_CLink)
|
||||
ZCLink* AddHeadLink(ZCLink* AP_CLink)*/
|
||||
|
||||
private :*/
|
||||
|
||||
/*private :*/
|
||||
public :
|
||||
|
||||
ZtCBaseList()
|
||||
@ -5350,7 +5478,7 @@ namespace ZNsMain
|
||||
ZCLink* VP_NextLink =
|
||||
VP_NowLink->mp_NextLink ;
|
||||
|
||||
delete VP_NowLink;
|
||||
DelLink(VP_NowLink);
|
||||
|
||||
VP_NowLink = VP_NextLink;
|
||||
}/*
|
||||
@ -5364,9 +5492,9 @@ namespace ZNsMain
|
||||
|
||||
|
||||
TypeData& AddHead()
|
||||
{ return AddHeadLink(new ZCLink)->mo_Data; }
|
||||
{ return AddHeadLink(NewLink())->mo_Data; }
|
||||
TypeData& AddTail()
|
||||
{ return AddTailLink(new ZCLink)->mo_Data; }
|
||||
{ return AddTailLink(NewLink())->mo_Data; }
|
||||
|
||||
|
||||
TypeData& AddHead(TypeArg AO_ArgData) /*########################*/
|
||||
@ -5374,7 +5502,7 @@ namespace ZNsMain
|
||||
#if(_CODE_NEW_)
|
||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||
{
|
||||
ZCLink* VP_NewNode = new ZCLink(AO_ArgData);
|
||||
ZCLink* VP_NewNode = NewLink(AO_ArgData);
|
||||
|
||||
TypeMoveObj::Exec(VP_NewNode->mo_Data, AO_ArgData);
|
||||
|
||||
@ -5391,7 +5519,7 @@ namespace ZNsMain
|
||||
#if(_CODE_NEW_)
|
||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||
{
|
||||
ZCLink* VP_NewNode = new ZCLink(AO_ArgData);
|
||||
ZCLink* VP_NewNode = NewLink(AO_ArgData);
|
||||
|
||||
TypeMoveObj::Exec(VP_NewNode->mo_Data, AO_ArgData);
|
||||
|
||||
@ -5411,7 +5539,7 @@ namespace ZNsMain
|
||||
ZCLink* VP_TempLink = mp_HeadLink ;
|
||||
mp_HeadLink = mp_HeadLink->mp_NextLink ;
|
||||
|
||||
delete VP_TempLink;
|
||||
DelLink(VP_TempLink);
|
||||
|
||||
if(--ml_LinkCnt<1)
|
||||
{
|
||||
@ -5419,8 +5547,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(--ml_LinkCnt<1)*/
|
||||
|
||||
mp_HeadLink->mp_PrevLink = mp_TailLink ;
|
||||
mp_TailLink->mp_NextLink = mp_HeadLink ;
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteHead()*/
|
||||
|
||||
@ -5432,7 +5559,7 @@ namespace ZNsMain
|
||||
ZCLink* VP_TempLink = mp_TailLink ;
|
||||
mp_TailLink = mp_TailLink->mp_PrevLink ;
|
||||
|
||||
delete VP_TempLink;
|
||||
DelLink(VP_TempLink);
|
||||
|
||||
if(--ml_LinkCnt<1)
|
||||
{
|
||||
@ -5440,8 +5567,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(--ml_LinkCnt<1)*/
|
||||
|
||||
mp_HeadLink->mp_PrevLink = mp_TailLink ;
|
||||
mp_TailLink->mp_NextLink = mp_HeadLink ;
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteTail()*/
|
||||
|
||||
@ -5666,16 +5792,17 @@ namespace ZNsMain
|
||||
|
||||
public :
|
||||
};/*
|
||||
template ///////////////////////////////////////////////
|
||||
template //////////////////////////////////////////////////////////////////
|
||||
<
|
||||
typename TType ,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TTypArgu = const TType& ,
|
||||
typename TTypeAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
ZtCMoveObj<TType, TTypArgu, true> ,
|
||||
typename TTypeCRTP = ZNsType::ZtCTypeCRTP<ZCEmpty, false>
|
||||
>
|
||||
class ZtCBaseList /*##################################*/
|
||||
class ZtCBaseList #######################################################*/
|
||||
|
||||
|
||||
|
||||
|
@ -858,12 +858,12 @@ namespace ZNsMain
|
||||
}/*
|
||||
static void JoinLink(ZCLink* AP_PrevLink, ZCLink* AP_NextLink)*/
|
||||
|
||||
static void MakeCircle(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
{
|
||||
AP_HeadLink->mp_PrevLink=AP_TailLink;
|
||||
AP_TailLink->mp_NextLink=AP_HeadLink;
|
||||
}/*
|
||||
static void MakeCircle(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)*/
|
||||
static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)*/
|
||||
|
||||
/*private:*/
|
||||
public :
|
||||
@ -1089,8 +1089,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLink* VP_TailLink = AO_CObjList.mp_HeadLink->mp_PrevLink;
|
||||
|
||||
ZCLink::MakeCircle(AO_CObjList.mp_HeadLink, mp_HeadLink->mp_PrevLink);
|
||||
ZCLink::JoinLink (VP_TailLink , mp_HeadLink );
|
||||
ZCLink::MakeRing(AO_CObjList.mp_HeadLink, mp_HeadLink->mp_PrevLink);
|
||||
ZCLink::JoinLink(VP_TailLink , mp_HeadLink );
|
||||
|
||||
mp_HeadLink = AO_CObjList.mp_HeadLink;
|
||||
ml_Size += AO_CObjList.ml_Size ;
|
||||
@ -1123,7 +1123,7 @@ namespace ZNsMain
|
||||
mp_HeadLink=0;
|
||||
else
|
||||
{
|
||||
ZCLink::MakeCircle //////////////////////////
|
||||
ZCLink::MakeRing ////////////////////////////
|
||||
(
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink,
|
||||
AP_CutLink->mp_PrevLink
|
||||
@ -1133,8 +1133,8 @@ namespace ZNsMain
|
||||
else*/
|
||||
}
|
||||
else if(AP_CutLink==mp_HeadLink->mp_PrevLink)
|
||||
ZCLink::MakeCircle(mp_HeadLink , AP_CutLink->mp_PrevLink);
|
||||
else ZCLink::JoinLink (AP_CutLink->mp_PrevLink, AP_CutLink->mp_NextLink);
|
||||
ZCLink::MakeRing(mp_HeadLink , AP_CutLink->mp_PrevLink);
|
||||
else ZCLink::JoinLink(AP_CutLink->mp_PrevLink, AP_CutLink->mp_NextLink);
|
||||
|
||||
return (--ml_Size, AP_CutLink);
|
||||
}/*
|
||||
@ -1149,18 +1149,18 @@ namespace ZNsMain
|
||||
mp_HeadLink=0;
|
||||
else
|
||||
{
|
||||
ZCLink::MakeCircle
|
||||
ZCLink::MakeRing
|
||||
(
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink,
|
||||
AP_CutLink->mp_PrevLink
|
||||
);
|
||||
//////////////////
|
||||
////////////////
|
||||
}/*
|
||||
else*/
|
||||
}
|
||||
else if(AL_CutPos==ml_Size) // 끝 링크를 삭제할 때
|
||||
ZCLink::MakeCircle(mp_HeadLink , AP_CutLink->mp_PrevLink);
|
||||
else ZCLink::JoinLink (AP_CutLink->mp_PrevLink, AP_CutLink->mp_NextLink);
|
||||
ZCLink::MakeRing(mp_HeadLink , AP_CutLink->mp_PrevLink);
|
||||
else ZCLink::JoinLink(AP_CutLink->mp_PrevLink, AP_CutLink->mp_NextLink);
|
||||
|
||||
return (--ml_Size, AP_CutLink);
|
||||
}/*
|
||||
@ -1202,11 +1202,11 @@ namespace ZNsMain
|
||||
}
|
||||
else if(AL_CutHeadPos==1) // 잘라내려는 링크가 처음 링크를 포함할 때.
|
||||
{
|
||||
ZCLink::MakeCircle(mp_HeadLink=AP_CutTail->mp_NextLink, AP_CutHead->mp_PrevLink);
|
||||
ZCLink::MakeRing(mp_HeadLink=AP_CutTail->mp_NextLink, AP_CutHead->mp_PrevLink);
|
||||
}
|
||||
else if(AL_CutTailPos==ml_Size) // 잘라내려는 링크가 끝 링크를 포함할 때.
|
||||
{
|
||||
ZCLink::MakeCircle(mp_HeadLink, AP_CutHead->mp_PrevLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, AP_CutHead->mp_PrevLink);
|
||||
}
|
||||
else // 잘라내려는 링크가 처음과 끝 링크를 포함하지 않을 때.
|
||||
{
|
||||
@ -1219,7 +1219,7 @@ namespace ZNsMain
|
||||
// AP_CutHead 과 AP_CutTail 을 연결하여
|
||||
// 이중 원형 연결리스트가 되도록 한다.
|
||||
|
||||
ZCLink::MakeCircle(AP_CutHead, AP_CutTail);
|
||||
ZCLink::MakeRing(AP_CutHead, AP_CutTail);
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
@ -1297,7 +1297,7 @@ namespace ZNsMain
|
||||
);
|
||||
/////////////////////////////////////////////
|
||||
|
||||
ZCLink::MakeCircle(VP_HeadLink, VP_TailLink);
|
||||
ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
|
||||
|
||||
ARR_StoreList.mp_HeadLink=VP_HeadLink;
|
||||
ARR_StoreList.ml_Size =(AL_FarNum<0 ? -AL_FarNum : AL_FarNum)+1 ;
|
||||
@ -1330,10 +1330,10 @@ namespace ZNsMain
|
||||
|
||||
GetManyLink
|
||||
(AL_DefaultSize, RR(VP_HeadLink), RR(VP_TailLink));
|
||||
ZCLink::MakeCircle( VP_HeadLink, VP_TailLink );
|
||||
ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
|
||||
|
||||
ARR_StoreList.mp_HeadLink=VP_HeadLink ;
|
||||
ARR_StoreList.ml_Size =AL_DefaultSize;
|
||||
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
|
||||
ARR_StoreList.ml_Size = AL_DefaultSize ;
|
||||
|
||||
return ARR_StoreList;
|
||||
}/*
|
||||
@ -2110,11 +2110,11 @@ namespace ZNsMain
|
||||
}
|
||||
else if(AL_CutHeadPos==1) // 잘라내려는 링크가 처음 링크를 포함할 때.
|
||||
{
|
||||
ZCLink::MakeCircle(mp_HeadLink=AP_CutTail->mp_NextLink, AP_CutHead->mp_PrevLink);
|
||||
ZCLink::MakeRing(mp_HeadLink=AP_CutTail->mp_NextLink, AP_CutHead->mp_PrevLink);
|
||||
}
|
||||
else if(AL_CutTailPos==ml_Size) // 잘라내려는 링크가 끝 링크를 포함할 때.
|
||||
{
|
||||
ZCLink::MakeCircle(mp_HeadLink, AP_CutHead->mp_PrevLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, AP_CutHead->mp_PrevLink);
|
||||
}
|
||||
else // 잘라내려는 링크가 처음과 끝 링크를 포함하지 않을 때.
|
||||
{
|
||||
@ -2133,15 +2133,15 @@ namespace ZNsMain
|
||||
{
|
||||
// AP_CutHead 과 AP_CutTail 을 연결하여 이중 원형 연결리스트가 되도록 한다.
|
||||
|
||||
ZCLink::MakeCircle(AP_CutHead, AP_CutTail);
|
||||
ZCLink::MakeRing(AP_CutHead, AP_CutTail);
|
||||
|
||||
ARR_StoreList.mp_HeadLink=AP_CutHead ;
|
||||
ARR_StoreList.ml_Size =AL_CutTailPos-AL_CutHeadPos+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLink::JoinLink (ARR_StoreList.mp_HeadLink->mp_PrevLink, AP_CutHead);
|
||||
ZCLink::MakeCircle(ARR_StoreList.mp_HeadLink , AP_CutTail);
|
||||
ZCLink::JoinLink(ARR_StoreList.mp_HeadLink->mp_PrevLink, AP_CutHead);
|
||||
ZCLink::MakeRing(ARR_StoreList.mp_HeadLink , AP_CutTail);
|
||||
|
||||
ARR_StoreList.ml_Size += AL_CutTailPos-AL_CutHeadPos+1 ;
|
||||
}/*
|
||||
@ -3230,12 +3230,12 @@ namespace ZNsMain
|
||||
}/*
|
||||
static void JoinLink(ZCLinkUnit* lhs, ZCLinkUnit* rhs)*/
|
||||
|
||||
static void MakeCircle(ZCLinkUnit* AP_HeadUnit, ZCLinkUnit* AP_TailUnit)
|
||||
static void MakeRing(ZCLinkUnit* AP_HeadUnit, ZCLinkUnit* AP_TailUnit)
|
||||
{
|
||||
AP_HeadUnit->mp_PrevUnit=AP_TailUnit;
|
||||
AP_TailUnit->mp_NextUnit=AP_HeadUnit;
|
||||
}/*
|
||||
static void MakeCircle(ZCLinkUnit* AP_HeadUnit, ZCLinkUnit* AP_TailUnit)*/
|
||||
static void MakeRing(ZCLinkUnit* AP_HeadUnit, ZCLinkUnit* AP_TailUnit)*/
|
||||
|
||||
TypeData& AddEmptyObj()
|
||||
{
|
||||
@ -3485,7 +3485,7 @@ namespace ZNsMain
|
||||
if(--ml_CutUnitCnt<1)
|
||||
mp_CutHeadUnit=0;
|
||||
else
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit, VP_CutTailUnit);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit, VP_CutTailUnit);
|
||||
//else
|
||||
|
||||
VP_CutHeadUnit->ml_UseSize=0; return VP_CutHeadUnit;
|
||||
@ -3508,8 +3508,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLinkUnit* VP_TailCLinkUnit= mp_NowHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (VP_NewLinkUnit, mp_NowHeadUnit );
|
||||
ZCLinkUnit::MakeCircle(VP_NewLinkUnit, VP_TailCLinkUnit);
|
||||
ZCLinkUnit::JoinLink(VP_NewLinkUnit, mp_NowHeadUnit );
|
||||
ZCLinkUnit::MakeRing(VP_NewLinkUnit, VP_TailCLinkUnit);
|
||||
|
||||
mp_NowHeadUnit=VP_NewLinkUnit;
|
||||
}/*
|
||||
@ -3535,8 +3535,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLinkUnit* VP_TailCLinkUnit= mp_NowHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (VP_TailCLinkUnit, VP_NewLinkUnit);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_NewLinkUnit);
|
||||
ZCLinkUnit::JoinLink(VP_TailCLinkUnit, VP_NewLinkUnit);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_NewLinkUnit);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -3828,14 +3828,14 @@ namespace ZNsMain
|
||||
|
||||
if(ml_CutUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_UnitHead, VP_UnitTail);
|
||||
ZCLinkUnit::MakeRing(VP_UnitHead, VP_UnitTail);
|
||||
|
||||
mp_CutHeadUnit = VP_UnitHead; ///////////////////
|
||||
mp_CutHeadUnit = VP_UnitHead; /////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_UnitHead);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_UnitTail);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_UnitHead);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_UnitTail);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -3860,8 +3860,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLinkUnit* VP_TailLink=mp_NowHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_TailLink );
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_TailLink );
|
||||
}
|
||||
else
|
||||
mp_CutHeadUnit=mp_NowHeadUnit;
|
||||
@ -3881,8 +3881,8 @@ namespace ZNsMain
|
||||
|
||||
if(--ml_NowUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , mp_NowHeadUnit);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , mp_NowHeadUnit);
|
||||
|
||||
mp_NowHeadUnit=0;
|
||||
ml_NowObjtCnt =0;
|
||||
@ -3895,9 +3895,9 @@ namespace ZNsMain
|
||||
mp_NowHeadUnit = mp_NowHeadUnit->mp_NextUnit;
|
||||
ml_NowObjtCnt -= VP_HeadLink->size();
|
||||
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_TailLink);
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_HeadLink);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_HeadLink);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_TailLink);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_HeadLink);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_HeadLink);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -3948,8 +3948,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLinkUnit* VP_RhsTailUnit=rhs.mp_NowHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (mp_NowHeadUnit->mp_PrevUnit, rhs.mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit, VP_RhsTailUnit );
|
||||
ZCLinkUnit::JoinLink(mp_NowHeadUnit->mp_PrevUnit, rhs.mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit, VP_RhsTailUnit );
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -3969,8 +3969,8 @@ namespace ZNsMain
|
||||
ZCLinkUnit* VP_RhsTailUnit=rhs.mp_NowHeadUnit->mp_PrevUnit;
|
||||
ZCLinkUnit* VP_LhsTailUnit= mp_NowHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (VP_RhsTailUnit , mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeCircle(rhs.mp_NowHeadUnit, VP_LhsTailUnit);
|
||||
ZCLinkUnit::JoinLink(VP_RhsTailUnit , mp_NowHeadUnit);
|
||||
ZCLinkUnit::MakeRing(rhs.mp_NowHeadUnit, VP_LhsTailUnit);
|
||||
}/*
|
||||
if(ml_NowUnitCnt>=1)*/
|
||||
|
||||
@ -4000,19 +4000,19 @@ namespace ZNsMain
|
||||
ZCLinkUnit* VP_RhsNowHead = VP_RhsNowTail->
|
||||
GetObjtPtr( -(AI_FetchSize-1), RR(VI_RhsObjCnt) ) ;
|
||||
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_NowHeadUnit, VP_RhsNowHead->mp_PrevUnit);
|
||||
rhs.ml_NowUnitCnt -= AI_FetchSize;
|
||||
rhs.ml_NowObjtCnt -= VI_RhsObjCnt;
|
||||
|
||||
if(ml_NowUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsNowHead, VP_RhsNowTail); mp_NowHeadUnit=VP_RhsNowHead;
|
||||
ZCLinkUnit::MakeRing(VP_RhsNowHead, VP_RhsNowTail); mp_NowHeadUnit=VP_RhsNowHead;
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
ZCLinkUnit::JoinLink(mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
}
|
||||
ml_NowUnitCnt += AI_FetchSize;
|
||||
ml_NowObjtCnt += VI_RhsObjCnt;
|
||||
@ -4037,25 +4037,25 @@ namespace ZNsMain
|
||||
TypeSize VI_RhsObjCnt = 0 ;
|
||||
ZCLinkUnit* VP_RhsNowHead= rhs.mp_NowHeadUnit ;
|
||||
ZCLinkUnit* VP_RhsNowTail= VP_RhsNowHead->
|
||||
GetObjtPtr( AI_FetchSize-1, RR(VI_RhsObjCnt) );
|
||||
GetObjtPtr( AI_FetchSize-1, RR(VI_RhsObjCnt) ) ;
|
||||
|
||||
rhs.mp_NowHeadUnit = VP_RhsNowTail->mp_NextUnit ;
|
||||
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_NowHeadUnit, VP_RhsNowHead->mp_PrevUnit);
|
||||
rhs.ml_NowUnitCnt -= AI_FetchSize;
|
||||
rhs.ml_NowObjtCnt -= VI_RhsObjCnt;
|
||||
|
||||
if(ml_NowUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsNowHead, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeRing(VP_RhsNowHead, VP_RhsNowTail);
|
||||
|
||||
mp_NowHeadUnit=VP_RhsNowHead; ///////////////////////
|
||||
mp_NowHeadUnit=VP_RhsNowHead; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
ZCLinkUnit::JoinLink(mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
}
|
||||
ml_NowUnitCnt += AI_FetchSize;
|
||||
ml_NowObjtCnt += VI_RhsObjCnt;
|
||||
@ -4076,21 +4076,21 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_NowHeadUnit, VP_RhsNowTail->mp_PrevUnit);
|
||||
}
|
||||
rhs.ml_NowObjtCnt -= VP_RhsNowTail->ml_UseSize ;
|
||||
|
||||
if(++ml_NowUnitCnt<=1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsNowTail, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeRing(VP_RhsNowTail, VP_RhsNowTail);
|
||||
|
||||
mp_NowHeadUnit=VP_RhsNowTail; ///////////////////////
|
||||
mp_NowHeadUnit=VP_RhsNowTail; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
ZCLinkUnit::JoinLink(mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_RhsNowTail);
|
||||
}
|
||||
ml_NowObjtCnt += VP_RhsNowTail->ml_UseSize ;
|
||||
}/*
|
||||
@ -4111,21 +4111,21 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_NowHeadUnit, VP_RhsNowHead->mp_PrevUnit);
|
||||
}
|
||||
rhs.ml_NowObjtCnt -= VP_RhsNowHead->ml_UseSize ;
|
||||
|
||||
if(++ml_NowUnitCnt<=1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsNowHead, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeRing(VP_RhsNowHead, VP_RhsNowHead);
|
||||
|
||||
mp_NowHeadUnit=VP_RhsNowHead; ///////////////////////
|
||||
mp_NowHeadUnit=VP_RhsNowHead; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeCircle(mp_NowHeadUnit , VP_RhsNowHead);
|
||||
ZCLinkUnit::JoinLink(mp_NowHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeRing(mp_NowHeadUnit , VP_RhsNowHead);
|
||||
}
|
||||
ml_NowObjtCnt += VP_RhsNowHead->ml_UseSize ;
|
||||
}/*
|
||||
@ -4144,8 +4144,8 @@ namespace ZNsMain
|
||||
{
|
||||
ZCLinkUnit* VP_RhsTailUnit=rhs.mp_CutHeadUnit->mp_PrevUnit;
|
||||
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, rhs.mp_CutHeadUnit);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_RhsTailUnit );
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, rhs.mp_CutHeadUnit);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_RhsTailUnit );
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -4174,20 +4174,20 @@ namespace ZNsMain
|
||||
ZCLinkUnit* VP_RhsCutHead =
|
||||
VP_RhsCutTail->GetObjtPtr( -(AI_FetchSize-1) );
|
||||
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_CutHeadUnit, VP_RhsCutHead->mp_PrevUnit);
|
||||
rhs.ml_CutUnitCnt -= AI_FetchSize;
|
||||
|
||||
if(ml_CutUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsCutHead, VP_RhsCutTail);
|
||||
ZCLinkUnit::MakeRing(VP_RhsCutHead, VP_RhsCutTail);
|
||||
|
||||
mp_CutHeadUnit=VP_RhsCutHead; ///////////////////////
|
||||
mp_CutHeadUnit=VP_RhsCutHead; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_RhsCutHead);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_RhsCutTail);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_RhsCutHead);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_RhsCutTail);
|
||||
}
|
||||
ml_CutUnitCnt += AI_FetchSize;
|
||||
}/*
|
||||
@ -4208,25 +4208,25 @@ namespace ZNsMain
|
||||
|
||||
// rhs.ml_CutUnitCnt>AI_FetchSize 이고 rhs.ml_CutUnitCnt>0
|
||||
|
||||
ZCLinkUnit* VP_RhsCutHead=rhs.mp_CutHeadUnit;
|
||||
ZCLinkUnit* VP_RhsCutHead=rhs.mp_CutHeadUnit ;
|
||||
ZCLinkUnit* VP_RhsCutTail=VP_RhsCutHead->GetObjtPtr(AI_FetchSize-1);
|
||||
|
||||
rhs.mp_CutHeadUnit=VP_RhsCutTail->mp_NextUnit;
|
||||
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_CutHeadUnit, VP_RhsCutHead->mp_PrevUnit);
|
||||
rhs.ml_CutUnitCnt -= AI_FetchSize;
|
||||
|
||||
if(ml_CutUnitCnt<1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsCutHead, VP_RhsCutTail);
|
||||
ZCLinkUnit::MakeRing(VP_RhsCutHead, VP_RhsCutTail);
|
||||
|
||||
mp_CutHeadUnit=VP_RhsCutHead; ///////////////////////
|
||||
mp_CutHeadUnit=VP_RhsCutHead; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_RhsCutHead);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_RhsCutTail);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_RhsCutHead);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_RhsCutTail);
|
||||
}
|
||||
ml_CutUnitCnt += AI_FetchSize;
|
||||
}/*
|
||||
@ -4244,21 +4244,21 @@ namespace ZNsMain
|
||||
rhs.mp_CutHeadUnit=0;
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_CutHeadUnit, VP_RhsNowTail->mp_PrevUnit);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
if(++ml_CutUnitCnt<=1)
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(VP_RhsNowTail, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeRing(VP_RhsNowTail, VP_RhsNowTail);
|
||||
|
||||
mp_CutHeadUnit=VP_RhsNowTail; ///////////////////////
|
||||
mp_CutHeadUnit=VP_RhsNowTail; /////////////////////
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_RhsNowTail);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_RhsNowTail);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_RhsNowTail);
|
||||
}/*
|
||||
else*/
|
||||
}/*
|
||||
@ -4276,7 +4276,7 @@ namespace ZNsMain
|
||||
|
||||
if(--rhs.ml_CutUnitCnt<1) {rhs.mp_CutHeadUnit=0;} else
|
||||
{
|
||||
ZCLinkUnit::MakeCircle(
|
||||
ZCLinkUnit::MakeRing(
|
||||
rhs.mp_CutHeadUnit, VP_RhsNowHead->mp_PrevUnit);
|
||||
}/*
|
||||
////////////////////////////////////////////////////*/
|
||||
@ -4284,13 +4284,13 @@ namespace ZNsMain
|
||||
if(++ml_CutUnitCnt<=1)
|
||||
{
|
||||
ZCLinkUnit::
|
||||
MakeCircle(VP_RhsNowHead, VP_RhsNowHead);
|
||||
MakeRing(VP_RhsNowHead, VP_RhsNowHead);
|
||||
mp_CutHeadUnit = VP_RhsNowHead;
|
||||
}
|
||||
else
|
||||
{
|
||||
ZCLinkUnit::JoinLink (mp_CutHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeCircle(mp_CutHeadUnit , VP_RhsNowHead);
|
||||
ZCLinkUnit::JoinLink(mp_CutHeadUnit->mp_PrevUnit, VP_RhsNowHead);
|
||||
ZCLinkUnit::MakeRing(mp_CutHeadUnit , VP_RhsNowHead);
|
||||
}/*
|
||||
else*/
|
||||
}/*
|
||||
|
@ -841,7 +841,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
inline static void JoinLink(ZCLink* AP_PrevLink, ZCLink* AP_NextLink)*/
|
||||
|
||||
inline static void MakeCircle(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
inline static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)
|
||||
{
|
||||
// 처음과 끝 링크를 연결하여 원형상태로 만든다.
|
||||
// 이것은 ZtCSimList class template 과 멤버 함수를 맞추기 위한 것으로
|
||||
@ -849,7 +849,7 @@ namespace ZNsMain
|
||||
|
||||
AP_TailLink->mp_NextLink = AP_HeadLink;
|
||||
}/*
|
||||
inline static void MakeCircle(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)*/
|
||||
inline static void MakeRing(ZCLink* AP_HeadLink, ZCLink* AP_TailLink)*/
|
||||
|
||||
//private:
|
||||
public :
|
||||
@ -1041,7 +1041,7 @@ namespace ZNsMain
|
||||
);
|
||||
//////////////////////////////
|
||||
|
||||
ZCLink::MakeCircle(VP_HeadLink, VP_TailLink);
|
||||
ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
|
||||
|
||||
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
|
||||
ARR_StoreList.mp_TailLink= VP_TailLink ;
|
||||
@ -1072,9 +1072,9 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
mp_HeadLink= mp_HeadLink->mp_NextLink;
|
||||
mp_HeadLink = mp_HeadLink->mp_NextLink ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
//else
|
||||
}
|
||||
@ -1082,7 +1082,7 @@ namespace ZNsMain
|
||||
{
|
||||
mp_TailLink= AP_PrevLink;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1106,9 +1106,9 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink;
|
||||
mp_HeadLink = mp_HeadLink->mp_NextLink ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
//else
|
||||
}
|
||||
@ -1116,7 +1116,7 @@ namespace ZNsMain
|
||||
{
|
||||
mp_TailLink= AP_PrevLink;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1153,16 +1153,16 @@ namespace ZNsMain
|
||||
}
|
||||
else
|
||||
{
|
||||
mp_HeadLink=AP_CutTail->mp_NextLink;
|
||||
mp_HeadLink = AP_CutTail->mp_NextLink ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
}
|
||||
else if(AP_CutTail==mp_TailLink) // 잘라내려는 링크가 끝 링크를 포함할 때.
|
||||
{
|
||||
mp_TailLink= AP_CutHeadPrev ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}
|
||||
else // 잘라내려는 링크가 처음과 끝 링크를 포함하지 않을 때.
|
||||
{
|
||||
@ -1215,7 +1215,7 @@ namespace ZNsMain
|
||||
|
||||
GetCFreeHeap().SendFreeOut
|
||||
(AL_DefaultSize, RR(VP_HeadLink), RR(VP_TailLink));
|
||||
ZCLink::MakeCircle( VP_HeadLink, VP_TailLink );
|
||||
ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
|
||||
|
||||
ARR_StoreList.mp_HeadLink= VP_HeadLink ;
|
||||
ARR_StoreList.mp_TailLink= VP_TailLink ;
|
||||
@ -1373,7 +1373,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
else*/
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void AddHead(TypeArg AR_Type)*/
|
||||
|
||||
@ -1392,7 +1392,7 @@ namespace ZNsMain
|
||||
|
||||
mp_HeadLink = VP_AddLink ;
|
||||
}
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
ZCLink* AddHeadDefault()*/
|
||||
|
||||
@ -1423,7 +1423,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
else*/
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void AddTail(TypeArg AR_Type)*/
|
||||
|
||||
@ -1442,7 +1442,7 @@ namespace ZNsMain
|
||||
|
||||
mp_TailLink = VP_AddLink ;
|
||||
}
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
ZCLink* AddTailDefault()*/
|
||||
|
||||
@ -1671,7 +1671,7 @@ namespace ZNsMain
|
||||
mp_HeadLink = AP_Link ;
|
||||
}
|
||||
|
||||
++ml_Size; ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
++ml_Size; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void JoinHead(ZCLink* AP_Link)*/
|
||||
|
||||
@ -1711,7 +1711,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
else*/
|
||||
|
||||
++ml_Size; ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
++ml_Size; ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void JoinTail(ZCLink* AP_Link)*/
|
||||
|
||||
@ -1734,7 +1734,7 @@ namespace ZNsMain
|
||||
mp_HeadLink= rhs.mp_HeadLink ;
|
||||
ml_Size += rhs.ml_Size ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -1763,7 +1763,7 @@ namespace ZNsMain
|
||||
|
||||
ml_Size += rhs.ml_Size;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
else*/
|
||||
|
||||
@ -1789,7 +1789,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(--ml_Size==0)*/
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteHead()*/
|
||||
|
||||
@ -1836,7 +1836,7 @@ namespace ZNsMain
|
||||
|
||||
GetCFreeHeap().RecvFreeIn(VP_CutLink);
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteTail()*/
|
||||
|
||||
@ -1867,7 +1867,7 @@ namespace ZNsMain
|
||||
mp_TailLink = VP_NewTail ;
|
||||
ml_Size -= AL_DelSize ;
|
||||
|
||||
ZCLink::MakeCircle(mp_HeadLink, mp_TailLink);
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteTail(TTypSize AL_DelSize)*/
|
||||
|
||||
|
@ -239,7 +239,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
//////////////////////////*/
|
||||
|
||||
ZCLink::MakeCircle
|
||||
ZCLink::MakeRing
|
||||
(VPP_LinkPtrArr[0], VPP_LinkPtrArr[VL_SortSize-1]);
|
||||
|
||||
ARR_CObjList.mp_HeadLink = VPP_LinkPtrArr[0];
|
||||
@ -292,7 +292,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
//////////////////////////*/
|
||||
|
||||
ZCLink::MakeCircle
|
||||
ZCLink::MakeRing
|
||||
(VPP_LinkPtrArr[0], VPP_LinkPtrArr[VL_SortSize-1]);
|
||||
|
||||
ARR_CObjList.mp_HeadLink = VPP_LinkPtrArr[0];
|
||||
@ -821,7 +821,7 @@ namespace ZNsMain
|
||||
////////////////////////////
|
||||
|
||||
#if(_CODE_OLD_) // 아래 코드만 빠진다.
|
||||
ZCLink::MakeCircle(VPP_LinkPtrArr[0], VPP_LinkPtrArr[VL_SortSize-1]);
|
||||
ZCLink::MakeRing(VPP_LinkPtrArr[0], VPP_LinkPtrArr[VL_SortSize-1]);
|
||||
#else
|
||||
ARR_CObjList.mp_HeadLink=VPP_LinkPtrArr[0] ;
|
||||
ARR_CObjList.mp_TailLink=VPP_LinkPtrArr[VL_SortSize-1];
|
||||
|
Reference in New Issue
Block a user