From 6238184f8d9022e0864d6c8d1aa11a94a9879a8e Mon Sep 17 00:00:00 2001 From: sauron Date: Sat, 20 Sep 2025 10:17:07 +0900 Subject: [PATCH] commit 2025-09-20 10:16 edit member fun of ZCAllocClass ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 26 ++++++++++++++++++-------- ZCppMain/ZtCStringEx.H | 18 +++++++++--------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 46e41fd..eb27ad2 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -3252,25 +3252,35 @@ namespace ZNsMain /////////////////////////////////////////////////////////////////*/ - template class ZtCAllocClass : - public ZCAllocator - ////////////////////////////////////////////// + template class ZtCAllocClass : public ZCAllocator { public: + #if(_CODE_OLD_) TType* NewMem (size_t AL_AllocSize){return (TType*)::malloc(AL_AllocSize) ;} TType* NewArrMem(size_t AL_AllocSize){return (TType*)::malloc(AL_AllocSize*sizeof(TType));} public: void DeleteMem(void* AP_Void){if(AP_Void!=0) ::free(AP_Void);} + #else + TType* InitMem (size_t AL_AllocSize){return (TType*)::malloc(AL_AllocSize) ;} + TType* InitArrMem(size_t AL_AllocSize){return (TType*)::malloc(AL_AllocSize*sizeof(TType));} + public: + void FiniMem (void* AP_Void){if(AP_Void!=0) ::free(AP_Void);} + #endif public: };/* - template class ZtCAllocClass*/ + template class ZtCAllocClass : public ZCAllocator*/ class ZCAllocClass : public ZCAllocator { public: + #if(_CODE_OLD_) void* NewMem (size_t AL_AllocSize){return ::malloc(AL_AllocSize) ;} void DeleteMem(void* AP_Void ){if(AP_Void!=0) ::free(AP_Void);} + #else + void* InitMem (size_t AL_AllocSize){return ::malloc(AL_AllocSize) ;} + void FiniMem (void* AP_Void ){if(AP_Void!=0) ::free(AP_Void);} + #endif public: };/* class ZCAllocClass : public ZCAllocator*/ @@ -4296,7 +4306,7 @@ namespace ZNsMain ZtCObjNew() { mp_StTypeRefCnt = (StTypeRefCnt*) - this->ZCAllocator::NewMem(sizeof(StTypeRefCnt)); + this->ZCAllocator::InitMem(sizeof(StTypeRefCnt)); mp_StTypeRefCnt->MI_RefCount = 1 ; new(&mp_StTypeRefCnt->MO_TypeData) TypeData; @@ -4306,7 +4316,7 @@ namespace ZNsMain ZtCObjNew(const TypeData& AR_TypeData) { mp_StTypeRefCnt = (StTypeRefCnt*) - this->ZCAllocator::NewMem(sizeof(StTypeRefCnt)); + this->ZCAllocator::InitMem(sizeof(StTypeRefCnt)); mp_StTypeRefCnt->MI_RefCount = 1 ; new(&mp_StTypeRefCnt->MO_TypeData) TypeData(AR_TypeData); @@ -4317,7 +4327,7 @@ namespace ZNsMain ZtCObjNew(TTypeArg1& ArTTypeArg1, TTypeArg2& ArTTypeArg2) { mp_StTypeRefCnt = (StTypeRefCnt*) - this->ZCAllocator::NewMem(sizeof(StTypeRefCnt)); + this->ZCAllocator::InitMem(sizeof(StTypeRefCnt)); mp_StTypeRefCnt->MI_RefCount = 1 ; new(&mp_StTypeRefCnt->MO_TypeData) @@ -4336,7 +4346,7 @@ namespace ZNsMain ~ZtCObjNew() { if(--mp_StTypeRefCnt->MI_RefCount <= 0) - this->ZCAllocator::DeleteMem(mp_StTypeRefCnt); + this->ZCAllocator::FiniMem(mp_StTypeRefCnt); }/* ~ZtCObjNew()*/ diff --git a/ZCppMain/ZtCStringEx.H b/ZCppMain/ZtCStringEx.H index 770efbb..d5f6081 100644 --- a/ZCppMain/ZtCStringEx.H +++ b/ZCppMain/ZtCStringEx.H @@ -728,7 +728,7 @@ namespace ZNsMain ~ZtCStringBase() { - if(ml_AllLen>0) this->DeleteMem(mpc_Data); + if(ml_AllLen>0) this->FiniMem(mpc_Data); }/* ~ZtCStringBase()*/ @@ -752,7 +752,7 @@ namespace ZNsMain { if(ml_AllLen>0) { - this->DeleteMem(mpc_Data); + this->FiniMem(mpc_Data); ml_AllLen=0; ml_UseLen=0; @@ -774,9 +774,9 @@ namespace ZNsMain if(AB_DoKeepString==false) { - this->DeleteMem(mpc_Data); + this->FiniMem(mpc_Data); - mpc_Data =this->NewMem((VL_NewAllocSize+1)*sizeof(TypeChar)); + mpc_Data =this->InitMem((VL_NewAllocSize+1)*sizeof(TypeChar)); ml_AllLen =VL_NewAllocSize ; ml_UseLen =0 ; mpc_Data[0]=0 ; @@ -787,7 +787,7 @@ namespace ZNsMain // 문자열을 유지하는 경우 TypeChar* VPC_NewChar = - this->NewMem((VL_NewAllocSize+1)*sizeof(TypeChar)); + this->InitMem((VL_NewAllocSize+1)*sizeof(TypeChar)); if(ml_UseLen>0) ::memcpy( VPC_NewChar, mpc_Data, ml_UseLen*sizeof(TypeChar)); @@ -795,7 +795,7 @@ namespace ZNsMain ml_AllLen =VL_NewAllocSize; VPC_NewChar[ml_UseLen]=0 ; - this->DeleteMem(mpc_Data); + this->FiniMem(mpc_Data); mpc_Data=VPC_NewChar; }/* @@ -833,7 +833,7 @@ namespace ZNsMain { if(ml_AllLen>0) { - this->DeleteMem(mpc_Data) ; + this->FiniMem(mpc_Data) ; mpc_Data = 0 ; ml_AllLen = ml_UseLen =0; }/* @@ -1537,7 +1537,7 @@ namespace ZNsMain // Index1 번째 문자부터 VL_Index2 번째 문자까지 정수로 읽는다. TypeChar* VP_Char = this-> - NewMem(AL_Index2-AL_Index1+1+1/*Null Char*/); + InitMem(AL_Index2-AL_Index1+1+1/*Null Char*/); if(VP_Char==0) { @@ -1556,7 +1556,7 @@ namespace ZNsMain VP_Char[i] = 0 ; TypeLength VL_Return = ZNsMain::ZfAtoL(VP_Char); - this->DeleteMem(VP_Char); return VL_Return; + this->FiniMem(VP_Char); return VL_Return; }/* TypeLength ReadLongFromIndex(TypeLength AL_Index1, TypeLength AL_Index2)*/