1
0
mirror of https://github.com/wolfpld/tracy synced 2025-05-05 22:53:52 +00:00

Optimize string wrappers initialization.

This commit is contained in:
Bartosz Taudul 2017-11-19 13:36:03 +01:00
parent 0770ed8ee6
commit 0fe4232015

View File

@ -15,7 +15,7 @@ struct StringRef
{ {
enum Type { Ptr, Idx }; enum Type { Ptr, Idx };
StringRef() : active( 0 ) {} StringRef() : __data( 0 ) {}
StringRef( Type t, uint64_t data ) StringRef( Type t, uint64_t data )
: isidx( t == Idx ) : isidx( t == Idx )
, active( 1 ) , active( 1 )
@ -36,21 +36,35 @@ struct StringRef
uint64_t stridx; uint64_t stridx;
}; };
union
{
struct
{
uint8_t isidx : 1; uint8_t isidx : 1;
uint8_t active : 1; uint8_t active : 1;
}; };
uint8_t __data;
};
};
struct StringIdx struct StringIdx
{ {
StringIdx() : active( 0 ) {} StringIdx() : __data( 0 ) {}
StringIdx( uint32_t idx ) StringIdx( uint32_t idx )
: idx( idx ) : idx( idx )
, active( 1 ) , active( 1 )
{} {}
union
{
struct
{
uint32_t idx : 31; uint32_t idx : 31;
uint32_t active : 1; uint32_t active : 1;
}; };
uint32_t __data;
};
};
struct SourceLocation struct SourceLocation
{ {