Fix for uninitialised deprecated members in DeviceCreateInfo constructor (#2250)

This commit is contained in:
Jon Creighton 2025-08-12 08:35:01 +02:00 committed by GitHub
parent 7beac182b2
commit c90a5bac97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 18 deletions

View File

@ -11591,7 +11591,7 @@ ${byString}
std::vector<std::string> arguments, initializers; std::vector<std::string> arguments, initializers;
bool arrayListed = false; bool arrayListed = false;
std::string ignores, templateHeader, sizeChecks, copyOps; std::string templateHeader, sizeChecks, copyOps;
for ( auto mit = structData.second.members.begin(); mit != structData.second.members.end(); ++mit ) for ( auto mit = structData.second.members.begin(); mit != structData.second.members.end(); ++mit )
{ {
// gather the initializers // gather the initializers
@ -11603,14 +11603,11 @@ ${byString}
{ {
auto litit = lenIts.find( mit ); auto litit = lenIts.find( mit );
if ( litit != lenIts.end() ) if ( litit != lenIts.end() )
{
if ( mit->deprecated.empty() )
{ {
// len arguments just have an initalizer, from the array size // len arguments just have an initalizer, from the array size
initializers.push_back( mit->name + "( " + generateLenInitializer( mit, litit, structData.second.mutualExclusiveLens ) + " )" ); initializers.push_back( mit->name + "( " + generateLenInitializer( mit, litit, structData.second.mutualExclusiveLens ) + " )" );
sizeChecks += generateSizeCheck( litit->second, stripPrefix( structData.first, "Vk" ), structData.second.mutualExclusiveLens ); sizeChecks += generateSizeCheck( litit->second, stripPrefix( structData.first, "Vk" ), structData.second.mutualExclusiveLens );
} }
}
else if ( hasLen( *mit, structData.second.members ) ) else if ( hasLen( *mit, structData.second.members ) )
{ {
assert( mit->type.isPointer() || !mit->arraySizes.empty() ); assert( mit->type.isPointer() || !mit->arraySizes.empty() );
@ -11653,17 +11650,10 @@ ${byString}
arrayListed = true; arrayListed = true;
if ( mit->type.isPointer() ) if ( mit->type.isPointer() )
{
if ( mit->deprecated.empty() )
{ {
initializers.push_back( mit->name + "( " + argumentName + ".data() )" ); initializers.push_back( mit->name + "( " + argumentName + ".data() )" );
} }
else else
{
ignores += "detail::ignore( " + argumentName + " );\n";
}
}
else
{ {
assert( mit->deprecated.empty() && ( mit->arraySizes.size() == 1 ) ); assert( mit->deprecated.empty() && ( mit->arraySizes.size() == 1 ) );
if ( mit->lenExpressions[0] == "null-terminated" ) if ( mit->lenExpressions[0] == "null-terminated" )
@ -11722,7 +11712,6 @@ ${byString}
${templateHeader} ${structName}( ${arguments} ) ${templateHeader} ${structName}( ${arguments} )
${initializers} ${initializers}
{ {
${ignores}
${sizeChecks} ${sizeChecks}
${copyOps} ${copyOps}
} }
@ -11732,7 +11721,6 @@ ${templateHeader} ${structName}( ${arguments} )
return replaceWithMap( constructorTemplate, return replaceWithMap( constructorTemplate,
{ { "arguments", generateList( arguments, "", ", " ) }, { { "arguments", generateList( arguments, "", ", " ) },
{ "copyOps", copyOps }, { "copyOps", copyOps },
{ "ignores", ignores },
{ "initializers", generateList( initializers, ": ", ", " ) }, { "initializers", generateList( initializers, ": ", ", " ) },
{ "sizeChecks", sizeChecks }, { "sizeChecks", sizeChecks },
{ "structName", stripPrefix( structData.first, "Vk" ) }, { "structName", stripPrefix( structData.first, "Vk" ) },

View File

@ -35049,11 +35049,12 @@ namespace VULKAN_HPP_NAMESPACE
, flags( flags_ ) , flags( flags_ )
, queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) ) , queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) )
, pQueueCreateInfos( queueCreateInfos_.data() ) , pQueueCreateInfos( queueCreateInfos_.data() )
, enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) )
, ppEnabledLayerNames( pEnabledLayerNames_.data() )
, enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) ) , enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) )
, ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) , ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
, pEnabledFeatures( pEnabledFeatures_ ) , pEnabledFeatures( pEnabledFeatures_ )
{ {
detail::ignore( pEnabledLayerNames_ );
} }
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/