mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-31 18:43:02 +00:00
CUtlBuffer, Color: misalign fixes
This commit is contained in:
parent
dc2be1dcb4
commit
99e02e25c9
@ -12,6 +12,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "tier1/strtools.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Basic handler for an rgb set of colors
|
// Purpose: Basic handler for an rgb set of colors
|
||||||
// This class is fully inline
|
// This class is fully inline
|
||||||
@ -22,7 +24,7 @@ public:
|
|||||||
// constructors
|
// constructors
|
||||||
Color()
|
Color()
|
||||||
{
|
{
|
||||||
*((int *)this) = 0;
|
Q_memset( _color, 0, sizeof _color );
|
||||||
}
|
}
|
||||||
Color(int _r,int _g,int _b)
|
Color(int _r,int _g,int _b)
|
||||||
{
|
{
|
||||||
@ -56,12 +58,14 @@ public:
|
|||||||
|
|
||||||
void SetRawColor( int color32 )
|
void SetRawColor( int color32 )
|
||||||
{
|
{
|
||||||
*((int *)this) = color32;
|
Q_memcpy( _color, &color32, sizeof _color );
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetRawColor() const
|
int GetRawColor() const
|
||||||
{
|
{
|
||||||
return *((int *)this);
|
int color;
|
||||||
|
Q_memcpy( &color, _color, sizeof _color );
|
||||||
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int r() const { return _color[0]; }
|
inline int r() const { return _color[0]; }
|
||||||
@ -79,12 +83,12 @@ public:
|
|||||||
return _color[index];
|
return _color[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator == (const Color &rhs) const
|
bool operator == (const Color &rhs)
|
||||||
{
|
{
|
||||||
return ( *((int *)this) == *((int *)&rhs) );
|
return Q_memcmp( this, &rhs, sizeof(Color) ) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator != (const Color &rhs) const
|
bool operator != (const Color &rhs)
|
||||||
{
|
{
|
||||||
return !(operator==(rhs));
|
return !(operator==(rhs));
|
||||||
}
|
}
|
||||||
|
@ -630,7 +630,7 @@ inline void CUtlBuffer::GetTypeBin( T &dest )
|
|||||||
{
|
{
|
||||||
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
||||||
{
|
{
|
||||||
dest = *(T *)PeekGet();
|
Q_memcpy(&dest, PeekGet(), sizeof(T) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -661,7 +661,7 @@ inline void CUtlBuffer::GetTypeBin< float >( float &dest )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// aligned read
|
// aligned read
|
||||||
dest = *(float *)pData;
|
Q_memcmp( &dest, pData, sizeof(float) );
|
||||||
}
|
}
|
||||||
if ( m_Byteswap.IsSwappingBytes() )
|
if ( m_Byteswap.IsSwappingBytes() )
|
||||||
{
|
{
|
||||||
@ -816,7 +816,7 @@ inline void CUtlBuffer::PutObject( T *src )
|
|||||||
{
|
{
|
||||||
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
||||||
{
|
{
|
||||||
*(T *)PeekPut() = *src;
|
Q_memcpy( PeekPut(), src, sizeof( T ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -845,7 +845,7 @@ inline void CUtlBuffer::PutTypeBin( T src )
|
|||||||
{
|
{
|
||||||
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
if ( !m_Byteswap.IsSwappingBytes() || ( sizeof( T ) == 1 ) )
|
||||||
{
|
{
|
||||||
*(T *)PeekPut() = src;
|
Q_memcpy( PeekPut(), &src, sizeof( T ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
typedef uint16 PackFileIndex_t;
|
typedef uint16 PackFileIndex_t;
|
||||||
#define PACKFILEINDEX_END 0xffff
|
#define PACKFILEINDEX_END 0xffff
|
||||||
|
const uint16 packedfileindex_end = 0xffff;
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
struct CFilePartDescr
|
struct CFilePartDescr
|
||||||
@ -120,9 +120,12 @@ static int SkipFile( char const * &pData ) // returns highest file index
|
|||||||
int nHighestChunkIndex = -1;
|
int nHighestChunkIndex = -1;
|
||||||
pData += 1 + V_strlen( pData );
|
pData += 1 + V_strlen( pData );
|
||||||
pData += sizeof( uint32 );
|
pData += sizeof( uint32 );
|
||||||
int nMetaDataSize = *(reinterpret_cast<uint16 const *>( pData ) );
|
|
||||||
|
uint16 nMetaDataSize;
|
||||||
|
Q_memcpy( &nMetaDataSize, pData, sizeof( uint16 ) );
|
||||||
|
|
||||||
pData += sizeof( uint16 );
|
pData += sizeof( uint16 );
|
||||||
while ( *( ( PackFileIndex_t const *) pData ) != PACKFILEINDEX_END )
|
while ( Q_memcmp( pData, &packedfileindex_end, sizeof( packedfileindex_end ) ) != 0 )
|
||||||
{
|
{
|
||||||
int nIdx = reinterpret_cast<CFilePartDescr const *>(pData)->m_nFileNumber;
|
int nIdx = reinterpret_cast<CFilePartDescr const *>(pData)->m_nFileNumber;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user