Skip to content

Commit b6f13d2

Browse files
Update some structure memory layour based on pahole feedback, see if we gain RAM (#32106)
Co-authored-by: Andrei Litvin <andreilitvin@google.com>
1 parent 58bf8e1 commit b6f13d2

File tree

3 files changed

+31
-31
lines changed

3 files changed

+31
-31
lines changed

src/credentials/FabricTable.h

+8-8
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,15 @@ class DLL_EXPORT FabricInfo
116116
private:
117117
struct InitParams
118118
{
119-
NodeId nodeId = kUndefinedNodeId;
120-
FabricId fabricId = kUndefinedFabricId;
121-
FabricIndex fabricIndex = kUndefinedFabricIndex;
122-
CompressedFabricId compressedFabricId = kUndefinedCompressedFabricId;
123-
Crypto::P256PublicKey rootPublicKey;
124-
VendorId vendorId = VendorId::NotSpecified; /**< Vendor ID for commissioner of fabric */
119+
CompressedFabricId compressedFabricId = kUndefinedCompressedFabricId;
120+
NodeId nodeId = kUndefinedNodeId;
121+
FabricIndex fabricIndex = kUndefinedFabricIndex;
125122
Crypto::P256Keypair * operationalKeypair = nullptr;
126-
bool hasExternallyOwnedKeypair = false;
127-
bool advertiseIdentity = false;
123+
FabricId fabricId = kUndefinedFabricId;
124+
Crypto::P256PublicKey rootPublicKey;
125+
VendorId vendorId = VendorId::NotSpecified; /**< Vendor ID for commissioner of fabric */
126+
bool hasExternallyOwnedKeypair = false;
127+
bool advertiseIdentity = false;
128128

129129
CHIP_ERROR AreValid() const
130130
{

src/lib/dnssd/TxtFields.h

+17-17
Original file line numberDiff line numberDiff line change
@@ -79,28 +79,28 @@ enum class TxtFieldKey : uint8_t
7979
namespace Internal {
8080
struct TxtFieldInfo
8181
{
82-
TxtFieldKey key;
8382
size_t valMaxSize;
84-
char keyStr[4];
83+
TxtFieldKey key;
8584
TxtKeyUse use;
85+
char keyStr[4];
8686
};
8787

8888
constexpr const TxtFieldInfo txtFieldInfo[static_cast<size_t>(TxtFieldKey::kCount)] = {
89-
{ TxtFieldKey::kUnknown, 0, "", TxtKeyUse::kNone },
90-
{ TxtFieldKey::kLongDiscriminator, kKeyLongDiscriminatorMaxLength, "D", TxtKeyUse::kCommission },
91-
{ TxtFieldKey::kVendorProduct, kKeyVendorProductMaxLength, "VP", TxtKeyUse::kCommission },
92-
{ TxtFieldKey::kCommissioningMode, kKeyCommissioningModeMaxLength, "CM", TxtKeyUse::kCommission },
93-
{ TxtFieldKey::kDeviceType, kKeyDeviceTypeMaxLength, "DT", TxtKeyUse::kCommission },
94-
{ TxtFieldKey::kDeviceName, kKeyDeviceNameMaxLength, "DN", TxtKeyUse::kCommission },
95-
{ TxtFieldKey::kRotatingDeviceId, kKeyRotatingDeviceIdMaxLength, "RI", TxtKeyUse::kCommission },
96-
{ TxtFieldKey::kPairingInstruction, kKeyPairingInstructionMaxLength, "PI", TxtKeyUse::kCommission },
97-
{ TxtFieldKey::kPairingHint, kKeyPairingHintMaxLength, "PH", TxtKeyUse::kCommission },
98-
{ TxtFieldKey::kCommissionerPasscode, kKeyCommissionerPasscodeMaxLength, "CP", TxtKeyUse::kCommission },
99-
{ TxtFieldKey::kSessionIdleInterval, kKeySessionIdleIntervalMaxLength, "SII", TxtKeyUse::kCommon },
100-
{ TxtFieldKey::kSessionActiveInterval, kKeySessionActiveIntervalMaxLength, "SAI", TxtKeyUse::kCommon },
101-
{ TxtFieldKey::kSessionActiveThreshold, kKeySessionActiveThresholdMaxLength, "SAT", TxtKeyUse::kCommon },
102-
{ TxtFieldKey::kTcpSupported, kKeyTcpSupportedMaxLength, "T", TxtKeyUse::kCommon },
103-
{ TxtFieldKey::kLongIdleTimeICD, kKeyLongIdleTimeICDMaxLength, "ICD", TxtKeyUse::kCommon },
89+
{ 0, TxtFieldKey::kUnknown, TxtKeyUse::kNone, "" },
90+
{ kKeyLongDiscriminatorMaxLength, TxtFieldKey::kLongDiscriminator, TxtKeyUse::kCommission, "D" },
91+
{ kKeyVendorProductMaxLength, TxtFieldKey::kVendorProduct, TxtKeyUse::kCommission, "VP" },
92+
{ kKeyCommissioningModeMaxLength, TxtFieldKey::kCommissioningMode, TxtKeyUse::kCommission, "CM" },
93+
{ kKeyDeviceTypeMaxLength, TxtFieldKey::kDeviceType, TxtKeyUse::kCommission, "DT" },
94+
{ kKeyDeviceNameMaxLength, TxtFieldKey::kDeviceName, TxtKeyUse::kCommission, "DN" },
95+
{ kKeyRotatingDeviceIdMaxLength, TxtFieldKey::kRotatingDeviceId, TxtKeyUse::kCommission, "RI" },
96+
{ kKeyPairingInstructionMaxLength, TxtFieldKey::kPairingInstruction, TxtKeyUse::kCommission, "PI" },
97+
{ kKeyPairingHintMaxLength, TxtFieldKey::kPairingHint, TxtKeyUse::kCommission, "PH" },
98+
{ kKeyCommissionerPasscodeMaxLength, TxtFieldKey::kCommissionerPasscode, TxtKeyUse::kCommission, "CP" },
99+
{ kKeySessionIdleIntervalMaxLength, TxtFieldKey::kSessionIdleInterval, TxtKeyUse::kCommon, "SII" },
100+
{ kKeySessionActiveIntervalMaxLength, TxtFieldKey::kSessionActiveInterval, TxtKeyUse::kCommon, "SAI" },
101+
{ kKeySessionActiveThresholdMaxLength, TxtFieldKey::kSessionActiveThreshold, TxtKeyUse::kCommon, "SAT" },
102+
{ kKeyTcpSupportedMaxLength, TxtFieldKey::kTcpSupported, TxtKeyUse::kCommon, "T" },
103+
{ kKeyLongIdleTimeICDMaxLength, TxtFieldKey::kLongIdleTimeICD, TxtKeyUse::kCommon, "ICD" },
104104
};
105105
#ifdef CHIP_CONFIG_TEST
106106

src/lib/dnssd/Types.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -207,18 +207,18 @@ inline constexpr size_t kMaxPairingInstructionLen = 128;
207207
/// Data that is specific to commisionable/commissioning node discovery
208208
struct CommissionNodeData
209209
{
210-
char instanceName[Commission::kInstanceNameMaxLength + 1] = {};
210+
size_t rotatingIdLen = 0;
211+
uint32_t deviceType = 0;
211212
uint16_t longDiscriminator = 0;
212213
uint16_t vendorId = 0;
213214
uint16_t productId = 0;
215+
uint16_t pairingHint = 0;
214216
uint8_t commissioningMode = 0;
215-
uint32_t deviceType = 0;
216-
char deviceName[kMaxDeviceNameLen + 1] = {};
217+
uint8_t commissionerPasscode = 0;
217218
uint8_t rotatingId[kMaxRotatingIdLen] = {};
218-
size_t rotatingIdLen = 0;
219-
uint16_t pairingHint = 0;
219+
char instanceName[Commission::kInstanceNameMaxLength + 1] = {};
220+
char deviceName[kMaxDeviceNameLen + 1] = {};
220221
char pairingInstruction[kMaxPairingInstructionLen + 1] = {};
221-
uint8_t commissionerPasscode = 0;
222222

223223
CommissionNodeData() {}
224224

0 commit comments

Comments
 (0)