From 562381e4c2d266fff7e7e56343b4303c5dc25609 Mon Sep 17 00:00:00 2001 From: sauron Date: Thu, 11 Sep 2025 14:17:42 +0900 Subject: [PATCH] commit 2025-09-11 14:17 edit a bit ZCppMain/ZtCObjList.H --- ZCppMain/ZtCObjList.H | 119 ++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 58 deletions(-) diff --git a/ZCppMain/ZtCObjList.H b/ZCppMain/ZtCObjList.H index 090ba66..24ca575 100644 --- a/ZCppMain/ZtCObjList.H +++ b/ZCppMain/ZtCObjList.H @@ -2608,31 +2608,30 @@ namespace ZNsMain }/* static void MakeCircle(ZCLinkUnit* AP_HeadUnit, ZCLinkUnit* AP_TailUnit)*/ - TypeData& AddEmptyObj_E() // E 는 Error 가 발생할 수 있다는 뜻. + TypeData& AddEmptyObj() { - return mo_TypeArr[ml_UseSize++]; // error 체크 즉, ml_UseSize>=ZEArrSize 인지를 체크하지 않는다. + return mo_TypeArr[ml_UseSize++]; // must ml_UseSize>=ZEArrSize }/* - TypeData& AddEmptyObj_E()*/ + TypeData& AddEmptyObj()*/ /*private:*/ public : ZCLinkUnit() { - ml_UseSize =0; - mp_NextUnit=0; - mp_PrevUnit=0; + ml_UseSize =0 ; + mp_NextUnit=0 ; + mp_PrevUnit=0 ; }/* ZCLinkUnit()*/ ZCLinkUnit(const ZCLinkUnit& rhs) { - ml_UseSize =rhs.ml_UseSize; - mp_NextUnit=0 ; - mp_PrevUnit=0 ; + ml_UseSize =0 ; + mp_NextUnit=0 ; + mp_PrevUnit=0 ; - ::memcpy( mo_TypeArr, - rhs.mo_TypeArr, ml_UseSize*sizeof(TypeData)); + *this = (rhs) ; }/* ZCLinkUnit(const ZCLinkUnit& rhs)*/ @@ -2640,10 +2639,13 @@ namespace ZNsMain { if(this==&rhs) return *this; - ml_UseSize=rhs.ml_UseSize; + ml_UseSize = rhs.ml_UseSize; - ::memcpy( mo_TypeArr, - rhs.mo_TypeArr, ml_UseSize*sizeof(TypeData)); + __for0(TypeSize, i, rhs.ml_UseSize) + { + mo_TypeArr[i] = rhs.mo_TypeArr[i] ; + }/* + __for0(TypeSize, i, rhs.ml_UseSize)*/ return *this; }/* @@ -2659,16 +2661,15 @@ namespace ZNsMain const ZCLinkUnit* GetNextUnitPtr() const{return mp_NextUnit;} const ZCLinkUnit* GetPrevUniPtr () const{return mp_PrevUnit;} - TypeData& GetData(TypeSize AI_Index) // AI_Index start from 1 - { - return mo_TypeArr[AI_Index-1]; - }/* - TypeData& GetData(TypeSize AI_Index) // AI_Index start from 1*/ - TypeArg GetData(TypeSize AI_Index) const // AI_Index start from 1 - { - return mo_TypeArr[AI_Index-1]; - }/* - TypeArg GetData(TypeSize AI_Index) const // AI_Index start from 1*/ + TypeData& GetData (TypeSize AI_Index) + { return mo_TypeArr[AI_Index-1]; } // AI_Index start from 1 + TypeData& operator[](TypeSize AI_Index) + { return mo_TypeArr[AI_Index ]; } + + const TypeData& GetData (TypeSize AI_Index) const // AI_Index start from 1 + { return mo_TypeArr[AI_Index-1]; } + const TypeData& operator[](TypeSize AI_Index) const + { return mo_TypeArr[AI_Index ]; } bool AddObj(TypeArg AR_Object) @@ -2718,7 +2719,7 @@ namespace ZNsMain if(AI_Distance<0)*/ for(; AI_Distance!=0; --AI_Distance) - VP_NowUnit = VP_NowUnit->mp_NextUnit; + { VP_NowUnit = VP_NowUnit->mp_NextUnit; } return VP_NowUnit; }/* @@ -2740,7 +2741,7 @@ namespace ZNsMain if(AI_Distance<0)*/ for(; AI_Distance!=0; --AI_Distance) - VP_NowUnit=VP_NowUnit->mp_NextUnit; + { VP_NowUnit=VP_NowUnit->mp_NextUnit; } return VP_NowUnit; }/* @@ -2788,8 +2789,8 @@ namespace ZNsMain { for(; AI_Distance!=0; ++AI_Distance) { - VP_NowUnit =VP_NowUnit->mp_PrevUnit; - ARRI_ObjCnt+=VP_NowUnit->ml_UseSize ; + VP_NowUnit = VP_NowUnit->mp_PrevUnit; + ARRI_ObjCnt+= VP_NowUnit->ml_UseSize ; }/* for(; AI_Distance!=0; ++AI_Distance)*/ @@ -2799,8 +2800,8 @@ namespace ZNsMain for(; AI_Distance!=0; --AI_Distance) { - VP_NowUnit =VP_NowUnit->mp_NextUnit; - ARRI_ObjCnt+=VP_NowUnit->ml_UseSize ; + VP_NowUnit = VP_NowUnit->mp_NextUnit; + ARRI_ObjCnt+= VP_NowUnit->ml_UseSize ; }/* for(; AI_Distance!=0; --AI_Distance)*/ @@ -3070,13 +3071,14 @@ namespace ZNsMain // ZEMaxUnitCnt 개 단위로 등록한다. // CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다. - typedef typename TAllocWork::CSyncExec CSyncExec; - if(AI_ArrSize<1) return; - TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize; - TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize; - TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ; + typedef typename + TAllocWork::CSyncExec CSyncExec ; + + TypeSize VI_AddUnitCnt = AI_ArrSize/ZEArrSize; + TypeSize VI_AddExtraCnt= AI_ArrSize%ZEArrSize; + TypeSize VI_MaxUnitCnt = ZEMaxUnitCnt ; while(--VI_AddUnitCnt>=0) { @@ -3125,8 +3127,8 @@ namespace ZNsMain TAllocWork& AR_CAllocWork, TypeData* AP_ObjArr, TypeSize AI_ArrSize) */ - template void AddTailInPool2( - TAllocWork& AR_CAllocWork, TypeData2* AP_ObjArr, TypeSize AI_ArrSize) + template void AddTailInPool2 + ( TAllocWork& AR_CAllocWork, TypeData2* AP_ObjArr, TypeSize AI_ArrSize ) { // TypeData = TypeData2 연산자가 지원되어야 한다. @@ -3134,14 +3136,14 @@ namespace ZNsMain if(AI_ArrSize<1) return; - TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize; - TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize; - TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ; + TypeSize VI_AddUnitCnt = AI_ArrSize/ZEArrSize; + TypeSize VI_AddExtraCnt= AI_ArrSize%ZEArrSize; + TypeSize VI_MaxUnitCnt = ZEMaxUnitCnt ; while(--VI_AddUnitCnt>=0) { __for0(TypeSize, i, ZEArrSize) - push_back() = *(AP_ObjArr++); + push_back() = *(AP_ObjArr++) ; if(--VI_MaxUnitCnt<=0) { @@ -3156,7 +3158,7 @@ namespace ZNsMain if(VI_AddExtraCnt>0) { __for0(TypeSize, i, VI_AddExtraCnt) - push_back() = *(AP_ObjArr++); + { push_back() = *(AP_ObjArr++); } AR_CAllocWork.AddList(RR(*this)); return; }/* @@ -3172,12 +3174,12 @@ namespace ZNsMain if(VI_AddExtraCnt<1)*/ __for0(TypeSize, i, VI_AddExtraCnt) - push_back() = *(AP_ObjArr++); + { push_back() = *(AP_ObjArr++); } AR_CAllocWork.AddList(RR(*this)); }/* - template void AddTailInPool2( - TAllocWork& AR_CAllocWork, TypeData2* AP_ObjArr, TypeSize AI_ArrSize) */ + template void AddTailInPool2 + ( TAllocWork& AR_CAllocWork, TypeData2* AP_ObjArr, TypeSize AI_ArrSize ) */ void AddUnitInCutList(TypeSize AI_AddUnitCnt) @@ -3192,7 +3194,7 @@ namespace ZNsMain while(--VI_AddUnitCnt>0) // AI_AddUnitCnt-1 번 순환. { - ZCLinkUnit* VP_UnitTail2=CreateUnit(); + ZCLinkUnit* VP_UnitTail2 = CreateUnit(); ZCLinkUnit::JoinLink(VP_UnitTail, VP_UnitTail2); VP_UnitTail=VP_UnitTail2; @@ -3368,10 +3370,10 @@ namespace ZNsMain // rhs.ml_NowUnitCnt>AI_FetchSize 이고 rhs.ml_NowUnitCnt>0 - TypeSize VI_RhsObjCnt =0 ; - ZCLinkUnit* VP_RhsNowTail=rhs.mp_NowHeadUnit->mp_PrevUnit ; - ZCLinkUnit* VP_RhsNowHead=VP_RhsNowTail-> - GetObjtPtr( -(AI_FetchSize-1), RR(VI_RhsObjCnt) ) ; + TypeSize VI_RhsObjCnt = 0 ; + ZCLinkUnit* VP_RhsNowTail = rhs.mp_NowHeadUnit->mp_PrevUnit ; + ZCLinkUnit* VP_RhsNowHead = VP_RhsNowTail-> + GetObjtPtr( -(AI_FetchSize-1), RR(VI_RhsObjCnt) ) ; ZCLinkUnit::MakeCircle( rhs.mp_NowHeadUnit, VP_RhsNowHead->mp_PrevUnit); @@ -3407,12 +3409,12 @@ namespace ZNsMain // rhs.ml_NowUnitCnt>AI_FetchSize 이고 rhs.ml_NowUnitCnt>0 - TypeSize VI_RhsObjCnt =0 ; - ZCLinkUnit* VP_RhsNowHead=rhs.mp_NowHeadUnit ; - ZCLinkUnit* VP_RhsNowTail=VP_RhsNowHead-> + TypeSize VI_RhsObjCnt = 0 ; + ZCLinkUnit* VP_RhsNowHead= rhs.mp_NowHeadUnit ; + ZCLinkUnit* VP_RhsNowTail= VP_RhsNowHead-> GetObjtPtr( AI_FetchSize-1, RR(VI_RhsObjCnt) ); - rhs.mp_NowHeadUnit=VP_RhsNowTail->mp_NextUnit; + rhs.mp_NowHeadUnit = VP_RhsNowTail->mp_NextUnit ; ZCLinkUnit::MakeCircle( rhs.mp_NowHeadUnit, VP_RhsNowHead->mp_PrevUnit); @@ -3475,8 +3477,8 @@ namespace ZNsMain if(rhs.ml_NowUnitCnt<1) return; - ZCLinkUnit* VP_RhsNowHead=rhs.mp_NowHeadUnit; - rhs.mp_NowHeadUnit =rhs.mp_NowHeadUnit->mp_NextUnit; + ZCLinkUnit* VP_RhsNowHead = rhs.mp_NowHeadUnit; + rhs. mp_NowHeadUnit= rhs.mp_NowHeadUnit->mp_NextUnit; if(--rhs.ml_NowUnitCnt<1) { @@ -3543,8 +3545,9 @@ namespace ZNsMain // rhs.ml_CutUnitCnt>AI_FetchSize 이고 rhs.ml_CutUnitCnt>0 - ZCLinkUnit* VP_RhsCutTail=rhs.mp_CutHeadUnit->mp_PrevUnit; - ZCLinkUnit* VP_RhsCutHead=VP_RhsCutTail->GetObjtPtr(-(AI_FetchSize-1)); + ZCLinkUnit* VP_RhsCutTail = rhs.mp_CutHeadUnit->mp_PrevUnit; + ZCLinkUnit* VP_RhsCutHead = + VP_RhsCutTail->GetObjtPtr( -(AI_FetchSize-1) ); ZCLinkUnit::MakeCircle( rhs.mp_CutHeadUnit, VP_RhsCutHead->mp_PrevUnit);