Correct CSchemaSystemTypeScope::m_AtomicsCollectionOfT

This commit is contained in:
GAMMACASE 2025-01-14 21:59:08 +03:00
parent 0ad4360c7f
commit 192f7339e9
2 changed files with 24 additions and 2 deletions

View File

@ -44,7 +44,7 @@ public:
virtual SchemaMetaInfoHandle_t<CSchemaType_Atomic_T> Type_Atomic_T( const char* pszAtomicName, uint16 nSize, uint8 nAlignment, CSchemaType* pTemplateType ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_Atomic_CollectionOfT> Type_Atomic_CollectionOfT( const char* pszAtomicName, uint16 nSize, uint8 nAlignment, uint16 nElementSize, CSchemaType* pTemplateType, uint64 nFixedBufferCount, SchemaCollectionManipulatorFn_t manipulator ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_Atomic_TT> Type_Atomic_TT( const char* pszAtomicName, uint16 nSize, uint8 nAlignment, CSchemaType* pTemplateType, CSchemaType* pTemplateType2 ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_Atomic_I> Type_Atomic_I( const char* pszAtomicName, uint16 nSize, uint8 nAlignment, int nInterger ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_Atomic_I> Type_Atomic_I( const char* pszAtomicName, uint16 nSize, uint8 nAlignment, int nInteger ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_DeclaredClass> Type_DeclaredClass( const char* pszClassName ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_DeclaredEnum> Type_DeclaredEnum( const char* pszEnumName ) = 0;
virtual SchemaMetaInfoHandle_t<CSchemaType_FixedArray> Type_FixedArray( CSchemaType* pElementType, int nElementCount, uint16 nElementSize, uint8 nElementAlignment ) = 0;
@ -89,7 +89,7 @@ public:
CSchemaPtrMap<SchemaMetaInfoHandle_t<CSchemaType>, CSchemaType_Ptr*> m_Pointers;
CSchemaPtrMap<int, CSchemaType_Atomic*> m_Atomics;
CSchemaPtrMap<AtomicTypeInfo_T_t, CSchemaType_Atomic_T*> m_AtomicsT;
CSchemaPtrMap<AtomicTypeInfo_T_t, CSchemaType_Atomic_CollectionOfT*> m_AtomicsCollectionOfT;
CSchemaPtrMap<AtomicTypeInfo_CollectionOfT_t, CSchemaType_Atomic_CollectionOfT*> m_AtomicsCollectionOfT;
CSchemaPtrMap<AtomicTypeInfo_TT_t, CSchemaType_Atomic_TT*> m_AtomicsTT;
CSchemaPtrMap<AtomicTypeInfo_I_t, CSchemaType_Atomic_I*> m_AtomicsI;
CSchemaPtrMap<uint, CSchemaType_DeclaredClass*> m_DeclaredClasses;

View File

@ -448,6 +448,28 @@ struct AtomicTypeInfo_T_t
SchemaCollectionManipulatorFn_t m_pfnManipulator;
};
struct AtomicTypeInfo_CollectionOfT_t
{
bool operator<( const AtomicTypeInfo_CollectionOfT_t &rhs ) const
{
if(m_nAtomicID != rhs.m_nAtomicID)
return m_nAtomicID < rhs.m_nAtomicID;
if(m_pTemplateType != rhs.m_pTemplateType)
return m_pTemplateType < rhs.m_pTemplateType;
if(m_nFixedBufferCount != rhs.m_nFixedBufferCount)
return m_nFixedBufferCount < rhs.m_nFixedBufferCount;
return (void *)m_pfnManipulator < (void *)rhs.m_pfnManipulator;
}
int m_nAtomicID;
CSchemaType *m_pTemplateType;
uint64 m_nFixedBufferCount;
SchemaCollectionManipulatorFn_t m_pfnManipulator;
};
struct AtomicTypeInfo_TT_t
{
bool operator<( const AtomicTypeInfo_TT_t& rhs ) const