commit 2025-09-15 20:34 refine ZtCBody::Fetch() in ZCppMain/ZtCObjList.H

This commit is contained in:
2025-09-15 20:35:05 +09:00
parent 8059bfd3a0
commit c5a1b1ae94
3 changed files with 66 additions and 42 deletions

View File

@ -664,20 +664,23 @@ namespace ZNsMain
if(this==&rhs ) return;
if(rhs.size()<1) return;
RecvFreeIn ////////////////////////
(
rhs.ml_UseSize ,
rhs.mp_NoUseHead,
rhs.mp_NoUseTail
);
///////////////////////////////////
if(this->size()<1)
this->mp_NoUseHead = rhs.mp_NoUseHead;
else
{
ZCLink::JoinLink
(this->mp_NoUseTail, rhs.mp_NoUseHead);
}
this->ml_AllSize += rhs.ml_UseSize;
rhs. ml_AllSize -= rhs.ml_UseSize;
rhs. ml_UseSize = 0 ;
this->mp_NoUseTail = rhs.mp_NoUseTail;
this->ml_UseSize += rhs.ml_UseSize ;
this->ml_AllSize += rhs.ml_UseSize ;
rhs. mp_NoUseHead = 0 ;
rhs. mp_NoUseTail = 0 ;
rhs.ml_AllSize -= rhs.ml_UseSize ;
rhs.ml_UseSize = 0 ;
rhs.mp_NoUseHead = 0 ;
rhs.mp_NoUseTail = 0 ;
}/*
void Fetch(ZtCBody& rhs)*/
@ -703,13 +706,21 @@ namespace ZNsMain
rhs.mp_NoUseHead->GetNextPrevPtr(AI_FetchSize-1);
ZCLink* VP_RhsNewHead = VP_RhsCutTail->GetNextPtr( );
RecvFreeIn //////////////////////////////////////////
(
AI_FetchSize, rhs.mp_NoUseHead, VP_RhsCutTail
);
/////////////////////////////////////////////////////
if(ml_UseSize<1)
{
// mp_NoUseHead, mp_NoUseTail 이 0
this->mp_NoUseHead = rhs.mp_NoUseHead ;
}
else
{
// mp_NoUseHead 고정.
ZCLink::JoinLink
(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;
@ -984,7 +995,7 @@ namespace ZNsMain
/*public :*/
protected:
ZCLink* mp_HeadLink;
TypeSize ml_Size ;
TypeSize ml_Size ; mutable
ZCFreeHeap mo_FreeObjt;
protected:
@ -1583,11 +1594,11 @@ namespace ZNsMain
Type& operator[](TypeSize AL_Index) const*/
ZCFreeHeap& GetCFreeHeap()
ZCFreeHeap& GetCFreeHeap() const
{
return mo_FreeObjt;
}/*
ZCFreeHeap& GetCFreeHeap()*/
ZCFreeHeap& GetCFreeHeap() const*/
TypeSize Find /*###############################################################*/

View File

@ -666,20 +666,23 @@ namespace ZNsMain
if(this==&rhs ) return;
if(rhs.size()<1) return;
RecvFreeIn ////////////////////////
(
rhs.ml_UseSize ,
rhs.mp_NoUseHead,
rhs.mp_NoUseTail
);
///////////////////////////////////
if(this->size()<1)
this->mp_NoUseHead = rhs.mp_NoUseHead;
else
{
ZCLink::JoinLink
(this->mp_NoUseTail, rhs.mp_NoUseHead);
}
this->ml_AllSize += rhs.ml_UseSize;
rhs. ml_AllSize -= rhs.ml_UseSize;
rhs. ml_UseSize = 0 ;
this->mp_NoUseTail = rhs.mp_NoUseTail;
this->ml_UseSize += rhs.ml_UseSize ;
this->ml_AllSize += rhs.ml_UseSize ;
rhs. mp_NoUseHead = 0 ;
rhs. mp_NoUseTail = 0 ;
rhs.ml_AllSize -= rhs.ml_UseSize ;
rhs.ml_UseSize = 0 ;
rhs.mp_NoUseHead = 0 ;
rhs.mp_NoUseTail = 0 ;
}/*
void Fetch(ZtCBody& rhs)*/
@ -705,13 +708,21 @@ namespace ZNsMain
rhs.mp_NoUseHead->GetNextPrevPtr(AI_FetchSize-1);
ZCLink* VP_RhsNewHead = VP_RhsCutTail->GetNextPtr( );
RecvFreeIn //////////////////////////////////////////
(
AI_FetchSize, rhs.mp_NoUseHead, VP_RhsCutTail
);
/////////////////////////////////////////////////////
if(ml_UseSize<1)
{
// mp_NoUseHead, mp_NoUseTail 이 0
this->mp_NoUseHead = rhs.mp_NoUseHead ;
}
else
{
// mp_NoUseHead 고정.
ZCLink::JoinLink
(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;
@ -983,7 +994,7 @@ namespace ZNsMain
TTypSize ml_Size ;
ZCLink* mp_HeadLink ;
ZCLink* mp_TailLink ;
ZCLink* mp_TailLink ; mutable
ZCFreeHeap mo_FreeObjt ;
@ -2053,11 +2064,11 @@ namespace ZNsMain
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/
ZCFreeHeap& GetCFreeHeap()
ZCFreeHeap& GetCFreeHeap() const
{
return mo_FreeObjt;
}/*
ZCFreeHeap& GetCFreeHeap()*/
ZCFreeHeap& GetCFreeHeap() const*/
inline TTypSize GetSize() const

View File

@ -110,6 +110,8 @@ namespace ZNsMain
CStringList1 VO_ListOfStr11 ;
cout<<"# add 2 elements and clear in VO_ListOfStr11"<<endl;
VO_ListOfStr11.AddTail(VO_CStringBase("lsit 11 data 01"));
VO_ListOfStr11.AddTail(VO_CStringBase("lsit 11 data 02"));
VO_ListOfStr11.clear();