fixes some uninit bool loads (#5644)

This commit fixes some bool loads which are not initialized. With ubsan and the "option -fsanitize=bool", this results in a runtime error during test execution.

Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
pull/5640/head^2
Matthias Möller 2024-07-02 21:54:18 +02:00 committed by GitHub
parent dd1474e280
commit 35976a4eb4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 9 deletions

View File

@ -53,7 +53,8 @@ namespace Assimp {
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer // Constructor to be privately used by Importer
LimitBoneWeightsProcess::LimitBoneWeightsProcess() : mMaxWeights(AI_LMW_MAX_WEIGHTS) { LimitBoneWeightsProcess::LimitBoneWeightsProcess() :
mMaxWeights(AI_LMW_MAX_WEIGHTS), mRemoveEmptyBones(true) {
// empty // empty
} }

View File

@ -113,19 +113,19 @@ struct aiMetadata;
*/ */
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
inline aiMetadataType GetAiType(bool) { inline aiMetadataType GetAiType(const bool &) {
return AI_BOOL; return AI_BOOL;
} }
inline aiMetadataType GetAiType(int32_t) { inline aiMetadataType GetAiType(int32_t) {
return AI_INT32; return AI_INT32;
} }
inline aiMetadataType GetAiType(uint64_t) { inline aiMetadataType GetAiType(const uint64_t &) {
return AI_UINT64; return AI_UINT64;
} }
inline aiMetadataType GetAiType(float) { inline aiMetadataType GetAiType(const float &) {
return AI_FLOAT; return AI_FLOAT;
} }
inline aiMetadataType GetAiType(double) { inline aiMetadataType GetAiType(const double &) {
return AI_DOUBLE; return AI_DOUBLE;
} }
inline aiMetadataType GetAiType(const aiString &) { inline aiMetadataType GetAiType(const aiString &) {
@ -137,10 +137,10 @@ inline aiMetadataType GetAiType(const aiVector3D &) {
inline aiMetadataType GetAiType(const aiMetadata &) { inline aiMetadataType GetAiType(const aiMetadata &) {
return AI_AIMETADATA; return AI_AIMETADATA;
} }
inline aiMetadataType GetAiType(int64_t) { inline aiMetadataType GetAiType(const int64_t &) {
return AI_INT64; return AI_INT64;
} }
inline aiMetadataType GetAiType(uint32_t) { inline aiMetadataType GetAiType(const uint32_t &) {
return AI_UINT32; return AI_UINT32;
} }

View File

@ -242,6 +242,22 @@ TEST_F( utMetadata, copy_test ) {
EXPECT_EQ( i32v, v ); EXPECT_EQ( i32v, v );
} }
// uint32_t test
{
uint32_t v = 0;
bool ok = copy.Get("uint32_t", v);
EXPECT_TRUE(ok);
EXPECT_EQ( ui32, v );
}
// int64_t test
{
int64_t v = -1;
bool ok = copy.Get("int64_t", v);
EXPECT_TRUE(ok);
EXPECT_EQ( i64, v );
}
// uint64_t test // uint64_t test
{ {
uint64_t v = 255; uint64_t v = 255;
@ -264,14 +280,14 @@ TEST_F( utMetadata, copy_test ) {
EXPECT_EQ( dv, v ); EXPECT_EQ( dv, v );
} }
// bool test // string test
{ {
aiString v; aiString v;
EXPECT_TRUE( copy.Get( "aiString", v ) ); EXPECT_TRUE( copy.Get( "aiString", v ) );
EXPECT_EQ( strVal, v ); EXPECT_EQ( strVal, v );
} }
// bool test // vector test
{ {
aiVector3D v; aiVector3D v;
EXPECT_TRUE( copy.Get( "aiVector3D", v ) ); EXPECT_TRUE( copy.Get( "aiVector3D", v ) );