Skip to content

Commit 493dc8c

Browse files
apache-hbsbiscigl
authored andcommitted
Place isSet members at the bottom of model classes to reduce class sizes.
Moves generated m_isSet members all to the end of generated models, reducing the amount of space lost to padding bytes. This can reduce the size of classes by 20% depending on their size and member types.
1 parent 9054af0 commit 493dc8c

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/ModelClassMembersAndInlines.vm

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,14 @@
155155

156156
#end
157157
#end##if($shape.members.size() > 0)
158+
#foreach($member in $shape.members.entrySet())
159+
#if(!($CppViewHelper.isStreamingPayloadMember($shape, $member.key) && $shape.request))
160+
#set($isStreamingMember = ($shape.payload && ($shape.payload == $entry.key && !$entry.value.shape.structure)))
161+
#set($isRequired = $useRequiredField && $member.value.required)
162+
#if(($isRequired || $member.value.idempotencyToken) && !$isStreamingMember && !$member.value.shape.isEventStream())
163+
bool ${CppViewHelper.computeVariableHasBeenSetName($member.key)} = true;
164+
#else
165+
bool ${CppViewHelper.computeVariableHasBeenSetName($member.key)} = false;
166+
#end
167+
#end
168+
#end##if($shape.members.size() > 0)

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/common/model/ServiceClientModelHeaderMemberDeclaration.vm

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,4 @@
3030
#set($initializer = "{${member.value.shape.name}::NOT_SET}")
3131
#end
3232
$cppType $memberVariableName$initializer;
33-
#end
34-
#set($isStreamingMember = ($shape.payload && ($shape.payload == $entry.key && !$entry.value.shape.structure)))
35-
#set($isRequired = $useRequiredField && $member.value.required)
36-
#if(($isRequired || $isIdempontencyToken) && !$isStreamingMember && !$member.value.shape.isEventStream())
37-
bool ${CppViewHelper.computeVariableHasBeenSetName($member.key)} = true;
38-
#else
39-
bool ${CppViewHelper.computeVariableHasBeenSetName($member.key)} = false;
4033
#end

0 commit comments

Comments
 (0)