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

View File

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

View File

@ -110,6 +110,8 @@ namespace ZNsMain
CStringList1 VO_ListOfStr11 ; 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 01"));
VO_ListOfStr11.AddTail(VO_CStringBase("lsit 11 data 02")); VO_ListOfStr11.AddTail(VO_CStringBase("lsit 11 data 02"));
VO_ListOfStr11.clear(); VO_ListOfStr11.clear();