commit 2025-09-09 00:14 edit a bit ZCppMain/ZtCSimList.H
This commit is contained in:
@ -751,6 +751,9 @@ namespace ZNsMain
|
|||||||
ZtCThreadEx& operator=(const ZtCThreadEx& rhs)*/
|
ZtCThreadEx& operator=(const ZtCThreadEx& rhs)*/
|
||||||
|
|
||||||
|
|
||||||
|
virtual ~ZtCThreadEx(){}
|
||||||
|
|
||||||
|
|
||||||
bool Make()
|
bool Make()
|
||||||
{
|
{
|
||||||
return this->TThread::Make(ThreadFunc, GetCDerivePtr());
|
return this->TThread::Make(ThreadFunc, GetCDerivePtr());
|
||||||
|
@ -380,11 +380,12 @@ namespace ZNsMain
|
|||||||
////////////// ) */
|
////////////// ) */
|
||||||
|
|
||||||
|
|
||||||
void GetManyLinkCopy( ZCLink* AP_LinkOrgin,
|
void GetManyLinkCopy /*////////////////////////////*/
|
||||||
TTypSize AL_FarNum ,
|
(
|
||||||
ZCLink*& APR_HeadCopy,
|
ZCLink* AP_LinkOrgin, TTypSize AL_FarNum ,
|
||||||
ZCLink*& APR_TailCopy
|
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
|
||||||
/*****************/ )
|
)
|
||||||
|
/*/////////////////////////////////////////////////*/
|
||||||
{
|
{
|
||||||
// AL_FarNum > 0
|
// AL_FarNum > 0
|
||||||
// AP_LinkOrgin 링크부터,
|
// AP_LinkOrgin 링크부터,
|
||||||
@ -466,11 +467,13 @@ namespace ZNsMain
|
|||||||
ml_UseSize = 0;
|
ml_UseSize = 0;
|
||||||
}
|
}
|
||||||
//else // AL_FarNum > ml_UseSize
|
//else // AL_FarNum > ml_UseSize
|
||||||
}
|
}/*
|
||||||
/*void GetManyLinkCopy(
|
void GetManyLinkCopy ////////////////////////////////
|
||||||
ZCLink* AP_LinkOrgin, TTypSize AL_FarNum,
|
(
|
||||||
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy,
|
ZCLink* AP_LinkOrgin, TTypSize AL_FarNum ,
|
||||||
///////////// ) */
|
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
|
||||||
|
)
|
||||||
|
///////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
void MakeLink( TTypSize AL_MakeSize,
|
void MakeLink( TTypSize AL_MakeSize,
|
||||||
@ -498,9 +501,9 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ml_AllSize += AL_MakeSize;
|
ml_AllSize += AL_MakeSize;
|
||||||
|
|
||||||
ZCLink* VP_MakeLink =0;
|
ZCLink* VP_MakeLink = 0 ;
|
||||||
ZCLink* VP_TempLink =APR_HeadLink;
|
ZCLink* VP_TempLink = APR_HeadLink;
|
||||||
bool VB_IsHeapOver=false;
|
bool VB_IsHeapOver= false ;
|
||||||
|
|
||||||
// bool VB_IsHeapOver 은 new 연산자가 NULL 포인터를 반환했을 때
|
// bool VB_IsHeapOver 은 new 연산자가 NULL 포인터를 반환했을 때
|
||||||
// true 를 대입받는다. 이 값을 조사함으로써 heap overflow 를 처리한다.
|
// true 를 대입받는다. 이 값을 조사함으로써 heap overflow 를 처리한다.
|
||||||
@ -520,7 +523,8 @@ namespace ZNsMain
|
|||||||
if(VP_MakeLink==0)
|
if(VP_MakeLink==0)
|
||||||
{
|
{
|
||||||
ml_AllSize -= AL_MakeSize+1 ;
|
ml_AllSize -= AL_MakeSize+1 ;
|
||||||
VB_IsHeapOver=true;
|
VB_IsHeapOver = true ;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//if(VP_MakeLink==0)
|
//if(VP_MakeLink==0)
|
||||||
@ -584,9 +588,9 @@ namespace ZNsMain
|
|||||||
ZNsMain::ZCCheckAlloc::ZCAllowAlloc CAllowAllocObj;
|
ZNsMain::ZCCheckAlloc::ZCAllowAlloc CAllowAllocObj;
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
ZCLink* VP_MakeLink =0;
|
ZCLink* VP_MakeLink = 0 ;
|
||||||
ZCLink* VP_TempLink =0;
|
ZCLink* VP_TempLink = 0 ;
|
||||||
bool VB_IsHeapOver=false;
|
bool VB_IsHeapOver= false;
|
||||||
|
|
||||||
VP_TempLink = \
|
VP_TempLink = \
|
||||||
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Type);
|
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Type);
|
||||||
@ -679,7 +683,7 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
//void ReceiveLink(ZCLink* AP_Link)
|
//void ReceiveLink(ZCLink* AP_Link)
|
||||||
|
|
||||||
void ReceiveLink(ZCLink* AP_HeadLink,ZCLink* AP_TailLink,TTypSize AL_Count)
|
void ReceiveLink(ZCLink* AP_HeadLink,ZCLink* AP_TailLink, TTypSize AL_Count)
|
||||||
{
|
{
|
||||||
#ifdef _REENTRANT_MUTEX
|
#ifdef _REENTRANT_MUTEX
|
||||||
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
||||||
@ -701,9 +705,9 @@ namespace ZNsMain
|
|||||||
|
|
||||||
mp_NoUseTailLink->mp_NextLink=0;
|
mp_NoUseTailLink->mp_NextLink=0;
|
||||||
|
|
||||||
ml_UseSize+=AL_Count;
|
ml_UseSize += AL_Count ;
|
||||||
}
|
}
|
||||||
//void ReceiveLink(ZCLink* AP_HeadLink,ZCLink* AP_TailLink,TTypSize AL_Count)
|
//void ReceiveLink(ZCLink* AP_HeadLink,ZCLink* AP_TailLink, TTypSize AL_Count)
|
||||||
|
|
||||||
|
|
||||||
//private:
|
//private:
|
||||||
@ -743,9 +747,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //!_SIMLIST_FREE_STORE_CHECK_
|
#endif //!_SIMLIST_FREE_STORE_CHECK_
|
||||||
|
|
||||||
if(ml_UseSize==0)
|
if(ml_UseSize==0) return ;
|
||||||
return ;
|
|
||||||
//endif
|
|
||||||
|
|
||||||
ZCLink* VP_DelLink=mp_NoUseHeadLink;
|
ZCLink* VP_DelLink=mp_NoUseHeadLink;
|
||||||
|
|
||||||
@ -774,9 +776,7 @@ namespace ZNsMain
|
|||||||
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
||||||
#endif //_REENTRANT_MUTEX
|
#endif //_REENTRANT_MUTEX
|
||||||
|
|
||||||
if(ml_UseSize==0)
|
if(ml_UseSize==0) return ;
|
||||||
return ;
|
|
||||||
//endif
|
|
||||||
|
|
||||||
ZCLink* VP_DelLink=mp_NoUseHeadLink;
|
ZCLink* VP_DelLink=mp_NoUseHeadLink;
|
||||||
|
|
||||||
@ -1039,7 +1039,7 @@ namespace ZNsMain
|
|||||||
/////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize ,ZtCSimList& ARR_StoreList) const
|
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||||
{
|
{
|
||||||
// must AL_DefaultSize > 0
|
// must AL_DefaultSize > 0
|
||||||
|
|
||||||
@ -1055,7 +1055,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
return ARR_StoreList;
|
return ARR_StoreList;
|
||||||
}
|
}
|
||||||
//ZtCSimList& MakeDefault(TTypSize AL_DefaultSize ,ZtCSimList& ARR_StoreList) const
|
//ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||||
|
|
||||||
|
|
||||||
virtual void OnDelete( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
virtual void OnDelete( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
||||||
@ -1193,11 +1193,8 @@ namespace ZNsMain
|
|||||||
//const TType& operator[](TTypSize AL_Index) const
|
//const TType& operator[](TTypSize AL_Index) const
|
||||||
|
|
||||||
|
|
||||||
operator TType& ()
|
operator TType&(){return AddTailDefault()->mo_Type;}
|
||||||
{
|
|
||||||
return AddTailDefault()->mo_Type;
|
|
||||||
}/*
|
|
||||||
operator TType& ()*/
|
|
||||||
|
|
||||||
TType& operator()()
|
TType& operator()()
|
||||||
{
|
{
|
||||||
@ -1570,7 +1567,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(this==&rhs || rhs.mp_HeadLink==0)
|
if(this==&rhs || rhs.mp_HeadLink==0)
|
||||||
{return;}
|
{return;}
|
||||||
////////////////////////////////////
|
/*++++++++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
rhs.OnDelete( rhs.mp_HeadLink, 1,
|
rhs.OnDelete( rhs.mp_HeadLink, 1,
|
||||||
rhs.mp_TailLink, rhs.ml_Size
|
rhs.mp_TailLink, rhs.ml_Size
|
||||||
@ -1603,7 +1600,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(this==&rhs || rhs.mp_HeadLink==0)
|
if(this==&rhs || rhs.mp_HeadLink==0)
|
||||||
{ return; }
|
{ return; }
|
||||||
////////////////////////////////////
|
/*++++++++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
rhs.OnDelete( rhs.mp_HeadLink, 1,
|
rhs.OnDelete( rhs.mp_HeadLink, 1,
|
||||||
rhs.mp_TailLink, rhs.ml_Size
|
rhs.mp_TailLink, rhs.ml_Size
|
||||||
@ -1847,7 +1844,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(VP_TempLink==AP_pSearchLink)
|
if(VP_TempLink==AP_pSearchLink)
|
||||||
{return VL_FindIndex;}
|
{return VL_FindIndex;}
|
||||||
///////////////////////////////
|
/*+++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
if(VL_FindIndex==ml_Size){return 0; }
|
if(VL_FindIndex==ml_Size){return 0; }
|
||||||
|
|
||||||
@ -1875,7 +1872,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(**VP_TempLink==AR_TypeArg)
|
if(**VP_TempLink==AR_TypeArg)
|
||||||
{return VL_FindIndex;}
|
{return VL_FindIndex;}
|
||||||
////////////////////////////
|
/*+++++++++++++++++++++++++*/
|
||||||
|
|
||||||
if(VL_FindIndex==ml_Size){return 0; }
|
if(VL_FindIndex==ml_Size){return 0; }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user