From 8589884a17152ed6eb8b45dd793230d647d893eb Mon Sep 17 00:00:00 2001 From: Michal <88426022+SlynxCZ@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:54:37 +0400 Subject: [PATCH] Replace CKeyValues3Context with CKV3Arena (#370) --- entity2/entitykeyvalues.cpp | 4 +- game/shared/gamesystems/spawngroup_manager.h | 4 +- public/entity2/entitykeyvalues.h | 4 +- public/entity2/entitysystem.h | 8 +-- public/schemasystem/schemasystem.h | 4 +- public/tier1/keyvalues3.h | 70 ++++++++++---------- tier1/keyvalues3.cpp | 38 +++++------ 7 files changed, 66 insertions(+), 66 deletions(-) diff --git a/entity2/entitykeyvalues.cpp b/entity2/entitykeyvalues.cpp index 91dcc471..f96d21e5 100644 --- a/entity2/entitykeyvalues.cpp +++ b/entity2/entitykeyvalues.cpp @@ -4,7 +4,7 @@ // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" -CEntityKeyValues::CEntityKeyValues( CKeyValues3Context* allocator, EntityKVAllocatorType_t allocator_type ) : +CEntityKeyValues::CEntityKeyValues( CKV3Arena* allocator, EntityKVAllocatorType_t allocator_type ) : m_pComplexKeys( NULL ), m_nRefCount( 0 ), m_nQueuedForSpawnCount( 0 ), @@ -64,7 +64,7 @@ void CEntityKeyValues::ValidateAllocator() else { Assert( m_eAllocatorType != EKV_ALLOCATOR_EXTERNAL ); - m_pAllocator = new CKeyValues3Context( true ); + m_pAllocator = new CKV3Arena( true ); } m_pValues = m_pAllocator->AllocKV(); diff --git a/game/shared/gamesystems/spawngroup_manager.h b/game/shared/gamesystems/spawngroup_manager.h index 43227921..c0bcbff7 100644 --- a/game/shared/gamesystems/spawngroup_manager.h +++ b/game/shared/gamesystems/spawngroup_manager.h @@ -18,7 +18,7 @@ #define MAX_SPAWN_GROUP_WORLD_NAME_LENGTH 4096 class matrix3x4a_t; -class CKeyValues3Context; +class CKV3Arena; class CEntityKeyValues; class ILoadingSpawnGroup; class CGameResourceManifest; @@ -311,7 +311,7 @@ public: virtual bool IsLevelTransition() const = 0; virtual const char *GetLevelTransitionPreviousMap() const = 0; virtual const char *GetLevelTransitionLandmarkName() const = 0; - virtual CKeyValues3Context *GetEntityKeyValuesAllocator() = 0; + virtual CKV3Arena *GetEntityKeyValuesAllocator() = 0; virtual CEntityInstance *CreateEntityToSpawn(SpawnGroupHandle_t hSpawnGroup, const matrix3x4a_t &vecSpawnOffset, CreateSpawnGroupType_t createType, const CEntityKeyValues *pEntityKeyValues) = 0; virtual void SpawnEntities() = 0; virtual void Release() = 0; diff --git a/public/entity2/entitykeyvalues.h b/public/entity2/entitykeyvalues.h index 2ed84ae5..7b8b96f9 100644 --- a/public/entity2/entitykeyvalues.h +++ b/public/entity2/entitykeyvalues.h @@ -68,7 +68,7 @@ public: class CEntityKeyValues { public: - CEntityKeyValues( CKeyValues3Context* allocator = NULL, EntityKVAllocatorType_t allocator_type = EKV_ALLOCATOR_NORMAL ); + CEntityKeyValues( CKV3Arena* allocator = NULL, EntityKVAllocatorType_t allocator_type = EKV_ALLOCATOR_NORMAL ); ~CEntityKeyValues(); class Iterator_t @@ -186,7 +186,7 @@ private: EntityComplexKeyListElem_t* m_pNext; }; - CKeyValues3Context* m_pAllocator; + CKV3Arena* m_pAllocator; EntityComplexKeyListElem_t* m_pComplexKeys; KeyValues3* m_pValues; KeyValues3* m_pAttributes; diff --git a/public/entity2/entitysystem.h b/public/entity2/entitysystem.h index 2232cec1..c5af7960 100644 --- a/public/entity2/entitysystem.h +++ b/public/entity2/entitysystem.h @@ -22,7 +22,7 @@ #include "concreteentitylist.h" #include "entitydatainstantiator.h" -class CKeyValues3Context; +class CKV3Arena; class CEntityClass; class CEntityComponentHelper; class CEntityKeyValues; @@ -213,7 +213,7 @@ public: virtual void BuildResourceManifest(SpawnGroupHandle_t hSpawnGroup, const CUtlVector* pEntityKeyValues, const char* pFilterName /* Usually, "mapload" and "cs_respawn"/"respawn". See CSpawnGroupEntityFilterRegistrar ctors */, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest) = 0; virtual void BuildResourceManifest(const char* pManifestNameOrGroupName, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest) = 0; virtual void BuildResourceManifest(EntityResourceManifestCreationCallback_t callback, void* pContext, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest) = 0; - virtual void BuildResourceManifestForEntity(const char* pEntityDesignerName, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest, CKeyValues3Context* pEntityAllocator) = 0; + virtual void BuildResourceManifestForEntity(const char* pEntityDesignerName, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest, CKV3Arena* pEntityAllocator) = 0; virtual void InvokePrecacheCallback(ResourceHandle_t hResource, const EntitySpawnInfo_t* info, IEntityPrecacheConfiguration* pConfig, IEntityResourceManifest* pResourceManifest, SecondaryPrecacheMemberCallback_t callback) = 0; virtual void AddRefKeyValues(const CEntityKeyValues* pKeyValues) = 0; virtual void ReleaseKeyValues(const CEntityKeyValues* pKeyValues) = 0; @@ -289,7 +289,7 @@ public: m_EntityKeyValuesAllocator.Clear(); } - inline CKeyValues3Context* GetEntityKeyValuesAllocator() { return &m_EntityKeyValuesAllocator; } + inline CKV3Arena* GetEntityKeyValuesAllocator() { return &m_EntityKeyValuesAllocator; } // Search for an entity class by its C++ name, case-insensitive CEntityClass* FindClassByName(const char* szClassName); @@ -346,7 +346,7 @@ public: IFieldChangeLimitSpew* m_pFieldChangeLimitSpew; CUtlHashtable m_DataDescKeyUnserializers; CUtlScratchMemoryPool m_ComponentUnserializerInfoAllocator; - CKeyValues3Context m_EntityKeyValuesAllocator; + CKV3Arena m_EntityKeyValuesAllocator; CUtlSymbolTableLargeMT_CI m_Symbols; SpawnGroupHandle_t m_hActiveSpawnGroup; matrix3x4a_t m_vSpawnOriginOffset; diff --git a/public/schemasystem/schemasystem.h b/public/schemasystem/schemasystem.h index e7bb52aa..82eb9832 100644 --- a/public/schemasystem/schemasystem.h +++ b/public/schemasystem/schemasystem.h @@ -15,7 +15,7 @@ #include "schemasystem/schematypes.h" class CBufferString; -class CKeyValues3Context; +class CKV3Arena; struct ResourceManifestDesc_t; enum SchemaTypeScope_t : uint8 @@ -149,7 +149,7 @@ public: virtual bool RegisterClasses( const char* pszModuleName, const char* pszProjectName, CSchemaType** ppSchemaTypes, int, CSchemaClassInfo** ppClassInfos, CBufferString* pErrorStr ) = 0; virtual void ValidateClasses( CSchemaClassInfo** ppClassInfos ) = 0; - virtual bool ConvertOldIntrospectedResourceDataToKV3( void*, void*, void*, CKeyValues3Context*, const char* ) = 0; + virtual bool ConvertOldIntrospectedResourceDataToKV3( void*, void*, void*, CKV3Arena*, const char* ) = 0; virtual void FindClassesByMeta( const char* pszMetaName, SchemaHierarchyIteration_t iter_type, CUtlVector *classes ) = 0; virtual SchemaMetaInfoHandle_t GetSchemaBuiltinType( SchemaBuiltinType_t eBuiltinType ) = 0; diff --git a/public/tier1/keyvalues3.h b/public/tier1/keyvalues3.h index d45ac4d2..48e7f79b 100644 --- a/public/tier1/keyvalues3.h +++ b/public/tier1/keyvalues3.h @@ -29,7 +29,7 @@ class KeyValues3; class CKeyValues3Array; class CKeyValues3Table; -class CKeyValues3Context; +class CKV3Arena; struct KV1ToKV3Translation_t; struct KV3ToKV1Translation_t; @@ -40,7 +40,7 @@ struct KV3ToKV1Translation_t; There are 2 ways to create KeyValues3: - 1. Via CKeyValues3Context: + 1. Via CKV3Arena: - KV's, arrays and tables are stored in fixed memory blocks (clusters) and therefore memory is allocated only when clusters are created. - Supports metadata and some other things. @@ -86,10 +86,10 @@ PLATFORM_OVERLOAD void DebugPrintKV3( const KeyValues3* kv ); // When using some LoadKV3/SaveKV3 functions, KV3ID_t structures must be filled in, which specify the format or encoding of the data. -PLATFORM_OVERLOAD bool LoadKV3( CKeyValues3Context* context, CUtlString* error, CUtlBuffer* input, const KV3ID_t& format, const char* kv_name, uint loadFlags = 0); +PLATFORM_OVERLOAD bool LoadKV3( CKV3Arena* context, CUtlString* error, CUtlBuffer* input, const KV3ID_t& format, const char* kv_name, uint loadFlags = 0); PLATFORM_OVERLOAD bool LoadKV3( KeyValues3* kv, CUtlString* error, CUtlBuffer* input, const KV3ID_t& format, const char* kv_name, uint loadFlags = 0); PLATFORM_OVERLOAD bool LoadKV3( KeyValues3* kv, CUtlString* error, const char* input, const KV3ID_t& format, const char* kv_name, uint loadFlags = 0); -PLATFORM_OVERLOAD bool LoadKV3FromFile( CKeyValues3Context* context, CUtlString* error, const char* filename, const char* path, const KV3ID_t& format, uint loadFlags = 0); +PLATFORM_OVERLOAD bool LoadKV3FromFile( CKV3Arena* context, CUtlString* error, const char* filename, const char* path, const KV3ID_t& format, uint loadFlags = 0); PLATFORM_OVERLOAD bool LoadKV3FromFile( KeyValues3* kv, CUtlString* error, const char* filename, const char* path, const KV3ID_t& format, uint loadFlags = 0); PLATFORM_OVERLOAD bool LoadKV3FromJSON( KeyValues3* kv, CUtlString* error, const char* input, const char* kv_name, uint loadFlags = 0); PLATFORM_OVERLOAD bool LoadKV3FromJSONFile( KeyValues3* kv, CUtlString* error, const char* path, const char* filename, uint loadFlags = 0); @@ -383,8 +383,8 @@ public: KeyValues3( int cluster_elem, KV3TypeEx_t type, KV3SubType_t subtype ); ~KeyValues3(); - CKeyValues3Context* GetContext() const; - KV3MetaData_t* GetMetaData( CKeyValues3Context** ppCtx = nullptr ) const; + CKV3Arena* GetContext() const; + KV3MetaData_t* GetMetaData( CKV3Arena** ppCtx = nullptr ) const; bool HasFlag( KeyValues3Flag_t flag ) const { return (m_nFlags & flag) != 0; } bool HasAnyFlags() const { return m_nFlags != 0; } @@ -681,7 +681,7 @@ private: friend CKeyValues3Cluster; friend CKeyValues3ArrayCluster; friend CKeyValues3TableCluster; - friend class CKeyValues3Context; + friend class CKV3Arena; friend class CKeyValues3Table; friend class CKeyValues3Array; }; @@ -725,7 +725,7 @@ public: void SetClusterElement( int element ) { m_nClusterElement = element; } CKeyValues3ArrayCluster* GetCluster() const; - CKeyValues3Context* GetContext() const; + CKV3Arena* GetContext() const; Element_t *Base() { return IsBaseStatic() ? &m_StaticElements[0] : m_pDynamicElements; }; Element_t const *Base() const { return const_cast(this)->Base(); } @@ -802,7 +802,7 @@ public: void SetClusterElement( int element ) { m_nClusterElement = element; } CKeyValues3TableCluster* GetCluster() const; - CKeyValues3Context* GetContext() const; + CKV3Arena* GetContext() const; int GetMemberCount() const { return m_nCount; } Member_t GetMember( KV3MemberId_t id ); @@ -928,10 +928,10 @@ public: FLAGS_MASK = ~(HEAP_MARKER) }; - CKeyValues3ClusterImpl( CKeyValues3Context *context, bool allocated_on_heap = false, int initial_size = SIZE ); + CKeyValues3ClusterImpl( CKV3Arena *context, bool allocated_on_heap = false, int initial_size = SIZE ); ~CKeyValues3ClusterImpl() { Purge(); } - CKeyValues3Context *GetContext() const { return m_pContext; } + CKV3Arena *GetContext() const { return m_pContext; } bool IsFull() const { return NumCount() >= NumAllocated(); } bool IsAllocatedOnHeap() const { return (m_nAllocatedElements & HEAP_MARKER) != 0; } @@ -989,7 +989,7 @@ private: KV3MetaData_t m_elements[SIZE]; }; - CKeyValues3Context *m_pContext; + CKV3Arena *m_pContext; Node *m_pFirstFreeNode; int m_nAllocatedElements; @@ -1003,11 +1003,11 @@ private: Node m_Values[SIZE]; }; -class CKeyValues3ContextBase +class CKV3ArenaBase { public: - CKeyValues3ContextBase( CKeyValues3Context* context ); - ~CKeyValues3ContextBase() { Purge(); } + CKV3ArenaBase( CKV3Arena* context ); + ~CKV3ArenaBase() { Purge(); } void Clear(); void Purge(); @@ -1072,7 +1072,7 @@ protected: ListEntry *m_pData; }; - CKeyValues3Context* m_pContext; + CKV3Arena* m_pContext; CUtlBuffer m_BinaryData; CKeyValues3Cluster m_KV3BaseCluster; @@ -1099,13 +1099,13 @@ protected: friend class KeyValues3; }; -class CKeyValues3Context : public CKeyValues3ContextBase +class CKV3Arena : public CKV3ArenaBase { - typedef CKeyValues3ContextBase BaseClass; + typedef CKV3ArenaBase BaseClass; public: - CKeyValues3Context( bool bNoRoot = false ); - ~CKeyValues3Context() { Purge(); } + CKV3Arena( bool bNoRoot = false ); + ~CKV3Arena() { Purge(); } KeyValues3* AllocKV( KV3TypeEx_t type = KV3_TYPEEX_NULL, KV3SubType_t subtype = KV3_SUBTYPE_UNSPECIFIED ); // WARNING: kv must belong to this context!!! @@ -1113,7 +1113,7 @@ public: // gets the pre-allocated kv if we indicated its existence when creating the context KeyValues3* Root(); - const KeyValues3* Root() const { return const_cast(this)->Root(); } + const KeyValues3* Root() const { return const_cast(this)->Root(); } bool IsMetaDataEnabled() const { return m_bMetaDataEnabled; } // returns true if the desired format was converted to another after loading via LoadKV3* @@ -1167,7 +1167,7 @@ private: friend class KeyValues3; }; -COMPILE_TIME_ASSERT(sizeof(CKeyValues3Context) == KV3_CONTEXT_SIZE); +COMPILE_TIME_ASSERT(sizeof(CKV3Arena) == KV3_CONTEXT_SIZE); template < typename T > inline T KeyValues3::FromString( T defaultValue ) const { Assert( 0 ); return defaultValue; } template <> inline bool KeyValues3::FromString( bool defaultValue ) const { return V_StringToBool( GetString(), defaultValue ); } @@ -1342,7 +1342,7 @@ void KeyValues3::AllocArray( int size, const T* data, KV3ArrayAllocType_t alloc_ } template -inline CKeyValues3ClusterImpl::CKeyValues3ClusterImpl( CKeyValues3Context *context, bool allocated_on_heap, int initial_size ) : +inline CKeyValues3ClusterImpl::CKeyValues3ClusterImpl( CKV3Arena *context, bool allocated_on_heap, int initial_size ) : m_pContext( context ), m_pFirstFreeNode( nullptr ), m_nAllocatedElements( initial_size | (allocated_on_heap ? HEAP_MARKER : 0) ), @@ -1526,7 +1526,7 @@ KV3MetaData_t *CKeyValues3ClusterImpl::GetMetaData( int element ) const } template -inline void CKeyValues3ContextBase::ClusterNodeChain::AddToChain( CLUSTER *cluster ) +inline void CKV3ArenaBase::ClusterNodeChain::AddToChain( CLUSTER *cluster ) { if(m_pTail) m_pTail->SetNext( cluster ); @@ -1540,7 +1540,7 @@ inline void CKeyValues3ContextBase::ClusterNodeChain::AddToChain( CLUST } template -inline void CKeyValues3ContextBase::ClusterNodeChain::RemoveFromChain( CLUSTER *cluster ) +inline void CKV3ArenaBase::ClusterNodeChain::RemoveFromChain( CLUSTER *cluster ) { auto prev = cluster->GetPrev(); auto next = cluster->GetNext(); @@ -1560,7 +1560,7 @@ inline void CKeyValues3ContextBase::ClusterNodeChain::RemoveFromChain( } template -inline void CKeyValues3ContextBase::NodeList::EnsureByteSize( int bytes_needed ) +inline void CKV3ArenaBase::NodeList::EnsureByteSize( int bytes_needed ) { if(bytes_needed < m_nAllocatedBytes) return; @@ -1572,7 +1572,7 @@ inline void CKeyValues3ContextBase::NodeList::EnsureByteSize( int bytes_ne } template -inline NODE *CKeyValues3ContextBase::NodeList::Alloc( int initial_size ) +inline NODE *CKV3ArenaBase::NodeList::Alloc( int initial_size ) { int byte_size_needed = m_nUsedBytes + NODE::TotalSizeOf( initial_size ) + 8; EnsureByteSize( byte_size_needed ); @@ -1587,7 +1587,7 @@ inline NODE *CKeyValues3ContextBase::NodeList::Alloc( int initial_size ) } template -inline void CKeyValues3ContextBase::NodeList::Clear() +inline void CKV3ArenaBase::NodeList::Clear() { if(m_nAllocatedBytes > 0) { @@ -1601,7 +1601,7 @@ inline void CKeyValues3ContextBase::NodeList::Clear() } template -inline void CKeyValues3ContextBase::NodeList::Purge() +inline void CKV3ArenaBase::NodeList::Purge() { Clear(); @@ -1610,7 +1610,7 @@ inline void CKeyValues3ContextBase::NodeList::Purge() } template -inline void CKeyValues3Context::PurgeClusterNodeChain( ClusterNodeChain &cluster_node ) +inline void CKV3Arena::PurgeClusterNodeChain( ClusterNodeChain &cluster_node ) { CLUSTER *prev = nullptr; for(auto node = cluster_node.m_pTail; node; node = prev) @@ -1632,7 +1632,7 @@ inline void CKeyValues3Context::PurgeClusterNodeChain( ClusterNodeChain } template -inline void CKeyValues3Context::ClearClusterNodeChain( ClusterNodeChain &cluster_node ) +inline void CKV3Arena::ClearClusterNodeChain( ClusterNodeChain &cluster_node ) { for(auto node = cluster_node.m_pTail; node; node = node->GetPrev()) { @@ -1641,7 +1641,7 @@ inline void CKeyValues3Context::ClearClusterNodeChain( ClusterNodeChain } template -inline void CKeyValues3Context::MoveToPartial( ClusterNodeChain &full_cluster, ClusterNodeChain &partial_cluster ) +inline void CKV3Arena::MoveToPartial( ClusterNodeChain &full_cluster, ClusterNodeChain &partial_cluster ) { CLUSTER *prev; for(auto node = full_cluster.m_pTail; node; node = prev) @@ -1654,7 +1654,7 @@ inline void CKeyValues3Context::MoveToPartial( ClusterNodeChain &full_c } template -auto CKeyValues3Context::Alloc( ClusterNodeChain &partial_clusters, +auto CKV3Arena::Alloc( ClusterNodeChain &partial_clusters, ClusterNodeChain &full_clusters, int initial_size, Args&&... args ) { @@ -1685,7 +1685,7 @@ auto CKeyValues3Context::Alloc( ClusterNodeChain &partial_clusters, } template -inline NODE *CKeyValues3Context::RawAlloc( NodeList &raw_array, ClusterNodeChain &partial_clusters, ClusterNodeChain &full_clusters, int initial_size, Args && ...args ) +inline NODE *CKV3Arena::RawAlloc( NodeList &raw_array, ClusterNodeChain &partial_clusters, ClusterNodeChain &full_clusters, int initial_size, Args && ...args ) { int needed_byte_size = MAX( NODE::TotalSizeOf( initial_size ), 32 ); @@ -1701,7 +1701,7 @@ inline NODE *CKeyValues3Context::RawAlloc( NodeList &raw_array, ClusterNod } template -void CKeyValues3Context::Free( NODE *element, ClusterNodeChain &partial_clusters, ClusterNodeChain &full_clusters ) +void CKV3Arena::Free( NODE *element, ClusterNodeChain &partial_clusters, ClusterNodeChain &full_clusters ) { auto cluster = element->GetCluster(); diff --git a/tier1/keyvalues3.cpp b/tier1/keyvalues3.cpp index 87d4c0c4..003f50dd 100644 --- a/tier1/keyvalues3.cpp +++ b/tier1/keyvalues3.cpp @@ -377,7 +377,7 @@ CKeyValues3Cluster* KeyValues3::GetCluster() const return GET_OUTER( CKeyValues3Cluster, m_Values[ m_nClusterElement ] ); } -CKeyValues3Context* KeyValues3::GetContext() const +CKV3Arena* KeyValues3::GetContext() const { CKeyValues3Cluster* cluster = GetCluster(); @@ -387,7 +387,7 @@ CKeyValues3Context* KeyValues3::GetContext() const return nullptr; } -KV3MetaData_t* KeyValues3::GetMetaData( CKeyValues3Context** ppCtx ) const +KV3MetaData_t* KeyValues3::GetMetaData( CKV3Arena** ppCtx ) const { CKeyValues3Cluster* cluster = GetCluster(); @@ -1196,7 +1196,7 @@ void KeyValues3::CopyFrom( const KeyValues3* pSrc ) SetToNull(); - CKeyValues3Context* context; + CKV3Arena* context; KV3MetaData_t* pDestMetaData = GetMetaData( &context ); if ( pDestMetaData ) @@ -1356,7 +1356,7 @@ CKeyValues3ArrayCluster* CKeyValues3Array::GetCluster() const return GET_OUTER( CKeyValues3ArrayCluster, m_Values[ m_nClusterElement ] ); } -CKeyValues3Context* CKeyValues3Array::GetContext() const +CKV3Arena* CKeyValues3Array::GetContext() const { CKeyValues3ArrayCluster* cluster = GetCluster(); @@ -1531,7 +1531,7 @@ CKeyValues3TableCluster* CKeyValues3Table::GetCluster() const return GET_OUTER( CKeyValues3TableCluster, m_Values[ m_nClusterElement ] ); } -CKeyValues3Context* CKeyValues3Table::GetContext() const +CKV3Arena* CKeyValues3Table::GetContext() const { CKeyValues3TableCluster* cluster = GetCluster(); @@ -1931,7 +1931,7 @@ void CKeyValues3Table::PurgeBuffers() m_nCount = 0; } -CKeyValues3ContextBase::CKeyValues3ContextBase( CKeyValues3Context* context ) : +CKV3ArenaBase::CKV3ArenaBase( CKV3Arena* context ) : m_pContext( context ), m_KV3BaseCluster( context ), m_bMetaDataEnabled( false ), @@ -1942,7 +1942,7 @@ CKeyValues3ContextBase::CKeyValues3ContextBase( CKeyValues3Context* context ) : m_KV3PartialClusters.AddToChain( &m_KV3BaseCluster ); } -void CKeyValues3ContextBase::Clear() +void CKV3ArenaBase::Clear() { m_BinaryData.Clear(); m_KV3BaseCluster.Clear(); @@ -1951,7 +1951,7 @@ void CKeyValues3ContextBase::Clear() m_bFormatConverted = false; } -void CKeyValues3ContextBase::Purge() +void CKV3ArenaBase::Purge() { m_BinaryData.Purge(); m_KV3BaseCluster.Purge(); @@ -1960,7 +1960,7 @@ void CKeyValues3ContextBase::Purge() m_bFormatConverted = false; } -CKeyValues3Context::CKeyValues3Context( bool bNoRoot ) : BaseClass( this ), pad{} +CKV3Arena::CKV3Arena( bool bNoRoot ) : BaseClass( this ), pad{} { if ( bNoRoot ) { @@ -1976,7 +1976,7 @@ CKeyValues3Context::CKeyValues3Context( bool bNoRoot ) : BaseClass( this ), pad{ m_bFormatConverted = false; } -void CKeyValues3Context::Clear() +void CKV3Arena::Clear() { BaseClass::Clear(); @@ -1998,7 +1998,7 @@ void CKeyValues3Context::Clear() m_KV3BaseCluster.Alloc(); } -void CKeyValues3Context::Purge() +void CKV3Arena::Purge() { BaseClass::Purge(); @@ -2018,7 +2018,7 @@ void CKeyValues3Context::Purge() m_KV3BaseCluster.Alloc(); } -KeyValues3* CKeyValues3Context::Root() +KeyValues3* CKV3Arena::Root() { if ( !m_bRootAvailabe ) { @@ -2029,7 +2029,7 @@ KeyValues3* CKeyValues3Context::Root() return &m_KV3BaseCluster.Head()->m_Value; } -const char* CKeyValues3Context::AllocString( const char* pString, UtlSymLargeId_t *out_symid ) +const char* CKV3Arena::AllocString( const char* pString, UtlSymLargeId_t *out_symid ) { UtlSymLargeId_t sym = m_Symbols.AddStringRaw( pString ); @@ -2042,12 +2042,12 @@ const char* CKeyValues3Context::AllocString( const char* pString, UtlSymLargeId_ return m_Symbols.String( sym ); } -const char* CKeyValues3Context::LookupString( UtlSymLargeId_t symid ) const +const char* CKV3Arena::LookupString( UtlSymLargeId_t symid ) const { return m_Symbols.String( symid ); } -void CKeyValues3Context::EnableMetaData( bool bEnable ) +void CKV3Arena::EnableMetaData( bool bEnable ) { if ( bEnable != m_bMetaDataEnabled ) { @@ -2057,7 +2057,7 @@ void CKeyValues3Context::EnableMetaData( bool bEnable ) } } -void CKeyValues3Context::CopyMetaData( KV3MetaData_t* pDest, const KV3MetaData_t* pSrc ) +void CKV3Arena::CopyMetaData( KV3MetaData_t* pDest, const KV3MetaData_t* pSrc ) { pDest->m_nLine = pSrc->m_nLine; pDest->m_nColumn = pSrc->m_nColumn; @@ -2073,14 +2073,14 @@ void CKeyValues3Context::CopyMetaData( KV3MetaData_t* pDest, const KV3MetaData_t } } -KeyValues3* CKeyValues3Context::AllocKV( KV3TypeEx_t type, KV3SubType_t subtype ) +KeyValues3* CKV3Arena::AllocKV( KV3TypeEx_t type, KV3SubType_t subtype ) { return Alloc( m_KV3PartialClusters, m_KV3FullClusters, CKeyValues3Cluster::CLUSTER_SIZE, type, subtype ); } -void CKeyValues3Context::FreeKV( KeyValues3* kv ) +void CKV3Arena::FreeKV( KeyValues3* kv ) { - CKeyValues3Context* context; + CKV3Arena* context; KV3MetaData_t* metadata = kv->GetMetaData( &context ); if ( metadata )