Skip to content

Commit 1057846

Browse files
authored
Minor code cleanup. (KhronosGroup#2298)
1 parent e0f4656 commit 1057846

File tree

1 file changed

+56
-63
lines changed

1 file changed

+56
-63
lines changed

VulkanHppGenerator.cpp

Lines changed: 56 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,38 +1120,23 @@ bool VulkanHppGenerator::containsFuncPointer( std::string const & type ) const
11201120
{
11211121
// a simple recursive check if a type contains a funcpointer
11221122
auto structureIt = m_structs.find( type );
1123-
bool found = false;
1124-
if ( structureIt != m_structs.end() )
1125-
{
1126-
for ( auto memberIt = structureIt->second.members.begin(); memberIt != structureIt->second.members.end() && !found; ++memberIt )
1127-
{
1128-
found = m_funcPointers.contains( memberIt->type.type ) || ( ( memberIt->type.type != type ) && containsFuncPointer( memberIt->type.type ) );
1129-
}
1130-
}
1131-
return found;
1123+
return ( structureIt != m_structs.end() ) && std::ranges::any_of( structureIt->second.members,
1124+
[this, &type]( auto const & member ) {
1125+
return m_funcPointers.contains( member.type.type ) ||
1126+
( ( member.type.type != type ) && containsFuncPointer( member.type.type ) );
1127+
} );
11321128
}
11331129

11341130
bool VulkanHppGenerator::containsFloatingPoints( std::vector<MemberData> const & members ) const
11351131
{
1136-
for ( auto const & m : members )
1137-
{
1138-
if ( m.type.isValue() )
1139-
{
1140-
if ( ( m.type.type == "float" ) || ( m.type.type == "double" ) )
1141-
{
1142-
return true;
1143-
}
1144-
else
1145-
{
1146-
auto structureIt = m_structs.find( m.type.type );
1147-
if ( structureIt != m_structs.end() && containsFloatingPoints( structureIt->second.members ) )
1148-
{
1149-
return true;
1150-
}
1151-
}
1152-
}
1153-
}
1154-
return false;
1132+
return std::ranges::any_of( members,
1133+
[this]( auto const & member )
1134+
{
1135+
auto structureIt = m_structs.find( member.type.type );
1136+
return member.type.isValue() &&
1137+
( ( member.type.type == "float" ) || ( member.type.type == "double" ) ||
1138+
( ( structureIt != m_structs.end() ) && containsFloatingPoints( structureIt->second.members ) ) );
1139+
} );
11551140
}
11561141

11571142
bool VulkanHppGenerator::containsName( std::vector<EnumValueData> const & enumValues, std::string const & name ) const
@@ -1165,33 +1150,25 @@ bool VulkanHppGenerator::containsUnion( std::string const & type ) const
11651150
{
11661151
// a simple recursive check if a type is or contains a union
11671152
auto structureIt = m_structs.find( type );
1168-
bool found = false;
1169-
if ( structureIt != m_structs.end() )
1170-
{
1171-
found = structureIt->second.isUnion;
1172-
for ( auto memberIt = structureIt->second.members.begin(); memberIt != structureIt->second.members.end() && !found; ++memberIt )
1173-
{
1174-
found = memberIt->type.isValue() && containsUnion( memberIt->type.type );
1175-
}
1176-
}
1177-
return found;
1153+
return ( structureIt != m_structs.end() ) &&
1154+
( structureIt->second.isUnion ||
1155+
std::ranges::any_of( structureIt->second.members,
1156+
[this]( auto const & member ) { return member.type.isValue() && containsUnion( member.type.type ); } ) );
11781157
}
11791158

11801159
bool VulkanHppGenerator::describesVector( StructureData const & structure, std::string const & type ) const
11811160
{
1182-
for ( auto const & member : structure.members )
1183-
{
1184-
if ( ( type.empty() ? true : ( member.type.type == type ) ) && member.type.isNonConstPointer() && ( member.lenMembers.size() == 1 ) )
1185-
{
1186-
assert( member.lenMembers[0].second < structure.members.size() );
1187-
auto const & lenMember = structure.members[member.lenMembers[0].second];
1188-
if ( lenMember.type.isValue() && ( ( lenMember.type.type == "size_t" ) || ( lenMember.type.type == "uint32_t" ) ) )
1189-
{
1190-
return true;
1191-
}
1192-
}
1193-
}
1194-
return false;
1161+
return std::ranges::any_of( structure.members,
1162+
[&structure, &type]( auto const & member )
1163+
{
1164+
if ( ( type.empty() || ( member.type.type == type ) ) && member.type.isNonConstPointer() && ( member.lenMembers.size() == 1 ) )
1165+
{
1166+
assert( member.lenMembers[0].second < structure.members.size() );
1167+
auto const & lenMember = structure.members[member.lenMembers[0].second];
1168+
return lenMember.type.isValue() && ( ( lenMember.type.type == "size_t" ) || ( lenMember.type.type == "uint32_t" ) );
1169+
}
1170+
return false;
1171+
} );
11951172
}
11961173

11971174
std::vector<size_t> VulkanHppGenerator::determineChainedReturnParams( std::vector<ParamData> const & params, std::vector<size_t> const & returnParams ) const
@@ -8847,8 +8824,15 @@ std::string VulkanHppGenerator::generateRAIIHandle( std::pair<std::string, Handl
88478824

88488825
auto [singularConstructors, arrayConstructors] = generateRAIIHandleConstructors( handle );
88498826

8850-
auto [clearMembers, getConstructorSuccessCode, memberVariables, rawConstructorParams, rawConstructorInitializerList, moveConstructorInitializerList, moveAssignmentInstructions, swapMembers, releaseMembers] =
8851-
generateRAIIHandleDetails( handle );
8827+
auto [clearMembers,
8828+
getConstructorSuccessCode,
8829+
memberVariables,
8830+
rawConstructorParams,
8831+
rawConstructorInitializerList,
8832+
moveConstructorInitializerList,
8833+
moveAssignmentInstructions,
8834+
swapMembers,
8835+
releaseMembers] = generateRAIIHandleDetails( handle );
88528836

88538837
std::string declarations = generateRAIIHandleCommandDeclarations( handle, specialFunctions );
88548838

@@ -8906,15 +8890,16 @@ std::string VulkanHppGenerator::generateRAIIHandle( std::pair<std::string, Handl
89068890
}
89078891

89088892
std::string rawConstructor;
8909-
if ( ( handle.first == "VkBuffer" ) || ( handle.first == "VkImage" ) ) {
8893+
if ( ( handle.first == "VkBuffer" ) || ( handle.first == "VkImage" ) )
8894+
{
89108895
std::string const rawConstructorTemplate = R"(protected:
89118896
${handleType}( ${rawConstructorParams} ) VULKAN_HPP_NOEXCEPT
89128897
: ${rawConstructorInitializerList}
89138898
{})";
89148899
rawConstructor += replaceWithMap( rawConstructorTemplate,
8915-
{ { "handleType", handleType },
8916-
{ "rawConstructorParams", rawConstructorParams },
8917-
{ "rawConstructorInitializerList", rawConstructorInitializerList } } );
8900+
{ { "handleType", handleType },
8901+
{ "rawConstructorParams", rawConstructorParams },
8902+
{ "rawConstructorInitializerList", rawConstructorInitializerList } } );
89188903
}
89198904

89208905
const std::string handleTemplate = R"(
@@ -10214,7 +10199,8 @@ std::tuple<std::string, std::string, std::string, std::string, std::string, std:
1021410199

1021510200
std::string handleName = startLowerCase( stripPrefix( handle.first, "Vk" ) );
1021610201

10217-
std::string clearMembers, moveConstructorInitializerList, rawConstructorInitializerList, rawConstructorParams, moveAssignmentInstructions, memberVariables, swapMembers, releaseMembers;
10202+
std::string clearMembers, moveConstructorInitializerList, rawConstructorInitializerList, rawConstructorParams, moveAssignmentInstructions, memberVariables,
10203+
swapMembers, releaseMembers;
1021810204

1021910205
if ( handle.second.destructorIt != m_commands.end() )
1022010206
{
@@ -10283,9 +10269,9 @@ std::tuple<std::string, std::string, std::string, std::string, std::string, std:
1028310269
moveConstructorInitializerList = "m_" + frontName + "( exchange( rhs.m_" + frontName + ", {} ) ), ";
1028410270
rawConstructorInitializerList += "m_" + frontName + "( exchange( " + frontName + ", {} ) ), ";
1028510271
rawConstructorParams += "VULKAN_HPP_NAMESPACE::" + stripPrefix( frontType, "Vk" ) + " " + frontName + ", ";
10286-
moveAssignmentInstructions = "\n std::swap( m_" + frontName + ", rhs.m_" + frontName + " );";
10287-
memberVariables = "\n VULKAN_HPP_NAMESPACE::" + stripPrefix( frontType, "Vk" ) + " m_" + frontName + " = {};";
10288-
swapMembers = "\n std::swap( m_" + frontName + ", rhs.m_" + frontName + " );";
10272+
moveAssignmentInstructions = "\n std::swap( m_" + frontName + ", rhs.m_" + frontName + " );";
10273+
memberVariables = "\n VULKAN_HPP_NAMESPACE::" + stripPrefix( frontType, "Vk" ) + " m_" + frontName + " = {};";
10274+
swapMembers = "\n std::swap( m_" + frontName + ", rhs.m_" + frontName + " );";
1028910275
releaseMembers += "\n m_" + frontName + " = nullptr;";
1029010276
}
1029110277
clearMembers += "\n m_" + handleName + " = nullptr;";
@@ -10346,8 +10332,15 @@ std::tuple<std::string, std::string, std::string, std::string, std::string, std:
1034610332
rawConstructorInitializerList += "m_dispatcher( exchange( dispatcher, nullptr ) )";
1034710333
moveAssignmentInstructions += "\n std::swap( m_dispatcher, rhs.m_dispatcher );";
1034810334

10349-
return std::make_tuple(
10350-
clearMembers, getConstructorSuccessCode, memberVariables, rawConstructorParams, rawConstructorInitializerList, moveConstructorInitializerList, moveAssignmentInstructions, swapMembers, releaseMembers );
10335+
return std::make_tuple( clearMembers,
10336+
getConstructorSuccessCode,
10337+
memberVariables,
10338+
rawConstructorParams,
10339+
rawConstructorInitializerList,
10340+
moveConstructorInitializerList,
10341+
moveAssignmentInstructions,
10342+
swapMembers,
10343+
releaseMembers );
1035110344
}
1035210345

1035310346
std::string VulkanHppGenerator::generateRAIIHandleForwardDeclarations( std::vector<RequireData> const & requireData, std::string const & title ) const

0 commit comments

Comments
 (0)