Skip to content

Commit 1329406

Browse files
bzbarsky-applepull[bot]
authored andcommitted
Fix the various MessageDef EndOf* functions to return CHIP_ERROR. (#26910)
Simplifies consumers and makes it clearer you're not supposed to use the object any more after the EndOf... call. Fixes #8309
1 parent e6e890f commit 1329406

File tree

84 files changed

+224
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+224
-254
lines changed

src/app/AttributeAccessInterface.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ CHIP_ERROR AttributeReportBuilder::PrepareAttribute(AttributeReportIBs::Builder
4444
attributePathIBBuilder.ListIndex(DataModel::Nullable<ListIndex>());
4545
}
4646

47-
ReturnErrorOnFailure(attributePathIBBuilder.EndOfAttributePathIB().GetError());
47+
ReturnErrorOnFailure(attributePathIBBuilder.EndOfAttributePathIB());
4848

4949
return attributeDataIBBuilder.GetError();
5050
}
5151

5252
CHIP_ERROR AttributeReportBuilder::FinishAttribute(AttributeReportIBs::Builder & aAttributeReportIBsBuilder)
5353
{
54-
ReturnErrorOnFailure(aAttributeReportIBsBuilder.GetAttributeReport().GetAttributeData().EndOfAttributeDataIB().GetError());
55-
return aAttributeReportIBsBuilder.GetAttributeReport().EndOfAttributeReportIB().GetError();
54+
ReturnErrorOnFailure(aAttributeReportIBsBuilder.GetAttributeReport().GetAttributeData().EndOfAttributeDataIB());
55+
return aAttributeReportIBsBuilder.GetAttributeReport().EndOfAttributeReportIB();
5656
}
5757

5858
namespace {

src/app/ClusterStateCache.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -569,9 +569,8 @@ CHIP_ERROR ClusterStateCache::OnUpdateDataVersionFilterList(DataVersionFilterIBs
569569
SuccessOrExit(err = aDataVersionFilterIBsBuilder.GetError());
570570
ClusterPathIB::Builder & filterPath = filterIB.CreatePath();
571571
SuccessOrExit(err = filterIB.GetError());
572-
SuccessOrExit(
573-
err = filterPath.Endpoint(filter.first.mEndpointId).Cluster(filter.first.mClusterId).EndOfClusterPathIB().GetError());
574-
SuccessOrExit(err = filterIB.DataVersion(filter.first.mDataVersion.Value()).EndOfDataVersionFilterIB().GetError());
572+
SuccessOrExit(err = filterPath.Endpoint(filter.first.mEndpointId).Cluster(filter.first.mClusterId).EndOfClusterPathIB());
573+
SuccessOrExit(err = filterIB.DataVersion(filter.first.mDataVersion.Value()).EndOfDataVersionFilterIB());
575574
ChipLogProgress(DataManagement, "Update DataVersionFilter: Endpoint=%u Cluster=" ChipLogFormatMEI " Version=%" PRIu32,
576575
filter.first.mEndpointId, ChipLogValueMEI(filter.first.mClusterId), filter.first.mDataVersion.Value());
577576

src/app/CommandHandler.cpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,10 @@ CHIP_ERROR CommandHandler::FinishCommand(bool aStartDataStruct)
516516
{
517517
ReturnErrorOnFailure(commandData.GetWriter()->EndContainer(mDataElementContainerType));
518518
}
519-
ReturnErrorOnFailure(commandData.EndOfCommandDataIB().GetError());
520-
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().EndOfInvokeResponseIB().GetError());
521-
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().EndOfInvokeResponses().GetError());
522-
ReturnErrorOnFailure(mInvokeResponseBuilder.EndOfInvokeResponseMessage().GetError());
519+
ReturnErrorOnFailure(commandData.EndOfCommandDataIB());
520+
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().EndOfInvokeResponseIB());
521+
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().EndOfInvokeResponses());
522+
ReturnErrorOnFailure(mInvokeResponseBuilder.EndOfInvokeResponseMessage());
523523
MoveToState(State::AddedCommand);
524524
return CHIP_NO_ERROR;
525525
}
@@ -547,11 +547,10 @@ CHIP_ERROR CommandHandler::PrepareStatus(const ConcreteCommandPath & aCommandPat
547547
CHIP_ERROR CommandHandler::FinishStatus()
548548
{
549549
VerifyOrReturnError(mState == State::AddingCommand, CHIP_ERROR_INCORRECT_STATE);
550-
ReturnErrorOnFailure(
551-
mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().GetStatus().EndOfCommandStatusIB().GetError());
552-
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().EndOfInvokeResponseIB().GetError());
553-
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().EndOfInvokeResponses().GetError());
554-
ReturnErrorOnFailure(mInvokeResponseBuilder.EndOfInvokeResponseMessage().GetError());
550+
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().GetStatus().EndOfCommandStatusIB());
551+
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().GetInvokeResponse().EndOfInvokeResponseIB());
552+
ReturnErrorOnFailure(mInvokeResponseBuilder.GetInvokeResponses().EndOfInvokeResponses());
553+
ReturnErrorOnFailure(mInvokeResponseBuilder.EndOfInvokeResponseMessage());
555554
MoveToState(State::AddedCommand);
556555
return CHIP_NO_ERROR;
557556
}

src/app/CommandSender.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,9 @@ CHIP_ERROR CommandSender::FinishCommand(bool aEndDataStruct)
382382
ReturnErrorOnFailure(commandData.GetWriter()->EndContainer(mDataElementContainerType));
383383
}
384384

385-
ReturnErrorOnFailure(commandData.EndOfCommandDataIB().GetError());
386-
ReturnErrorOnFailure(mInvokeRequestBuilder.GetInvokeRequests().EndOfInvokeRequests().GetError());
387-
ReturnErrorOnFailure(mInvokeRequestBuilder.EndOfInvokeRequestMessage().GetError());
385+
ReturnErrorOnFailure(commandData.EndOfCommandDataIB());
386+
ReturnErrorOnFailure(mInvokeRequestBuilder.GetInvokeRequests().EndOfInvokeRequests());
387+
ReturnErrorOnFailure(mInvokeRequestBuilder.EndOfInvokeRequestMessage());
388388

389389
MoveToState(State::AddedCommand);
390390

src/app/EventManagement.cpp

+7-9
Original file line numberDiff line numberDiff line change
@@ -301,11 +301,11 @@ CHIP_ERROR EventManagement::ConstructEvent(EventLoadOutContext * apContext, Even
301301
EventPathIB::Builder & eventPathBuilder = eventDataIBBuilder.CreatePath();
302302
ReturnErrorOnFailure(eventDataIBBuilder.GetError());
303303

304-
eventPathBuilder.Endpoint(apOptions->mPath.mEndpointId)
305-
.Cluster(apOptions->mPath.mClusterId)
306-
.Event(apOptions->mPath.mEventId)
307-
.EndOfEventPathIB();
308-
ReturnErrorOnFailure(eventPathBuilder.GetError());
304+
CHIP_ERROR err = eventPathBuilder.Endpoint(apOptions->mPath.mEndpointId)
305+
.Cluster(apOptions->mPath.mClusterId)
306+
.Event(apOptions->mPath.mEventId)
307+
.EndOfEventPathIB();
308+
ReturnErrorOnFailure(err);
309309
eventDataIBBuilder.EventNumber(apContext->mCurrentEventNumber).Priority(chip::to_underlying(apContext->mPriority));
310310
ReturnErrorOnFailure(eventDataIBBuilder.GetError());
311311

@@ -330,10 +330,8 @@ CHIP_ERROR EventManagement::ConstructEvent(EventLoadOutContext * apContext, Even
330330
{
331331
apContext->mWriter.Put(TLV::ProfileTag(kEventManagementProfile, kFabricIndexTag), apOptions->mFabricIndex);
332332
}
333-
eventDataIBBuilder.EndOfEventDataIB();
334-
ReturnErrorOnFailure(eventDataIBBuilder.GetError());
335-
eventReportBuilder.EndOfEventReportIB();
336-
ReturnErrorOnFailure(eventReportBuilder.GetError());
333+
ReturnErrorOnFailure(eventDataIBBuilder.EndOfEventDataIB());
334+
ReturnErrorOnFailure(eventReportBuilder.EndOfEventReportIB());
337335
ReturnErrorOnFailure(apContext->mWriter.Finalize());
338336
apContext->mFirst = false;
339337
return CHIP_NO_ERROR;

src/app/MessageDef/AttributeDataIB.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ AttributeDataIB::Builder & AttributeDataIB::Builder::DataVersion(const chip::Dat
127127
return *this;
128128
}
129129

130-
AttributeDataIB::Builder & AttributeDataIB::Builder::EndOfAttributeDataIB()
130+
CHIP_ERROR AttributeDataIB::Builder::EndOfAttributeDataIB()
131131
{
132132
EndOfContainer();
133-
return *this;
133+
return GetError();
134134
}
135135
} // namespace app
136136
} // namespace chip

src/app/MessageDef/AttributeDataIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ class Builder : public StructBuilder
101101
/**
102102
* @brief Mark the end of this AttributeDataIB
103103
*
104-
* @return A reference to *this
104+
* @return Our The builder's final status.
105105
*/
106-
AttributeDataIB::Builder & EndOfAttributeDataIB();
106+
CHIP_ERROR EndOfAttributeDataIB();
107107

108108
private:
109109
AttributePathIB::Builder mPath;

src/app/MessageDef/AttributeDataIBs.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ AttributeDataIB::Builder & AttributeDataIBs::Builder::GetAttributeDataIBBuilder(
101101
return mAttributeDataIBBuilder;
102102
}
103103

104-
AttributeDataIBs::Builder & AttributeDataIBs::Builder::EndOfAttributeDataIBs()
104+
CHIP_ERROR AttributeDataIBs::Builder::EndOfAttributeDataIBs()
105105
{
106106
EndOfContainer();
107107

108-
return *this;
108+
return GetError();
109109
}
110110

111111
}; // namespace app

src/app/MessageDef/AttributeDataIBs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ class Builder : public ArrayBuilder
6060
/**
6161
* @brief Mark the end of this AttributeDataIBs
6262
*
63-
* @return A reference to *this
63+
* @return The builder's final status.
6464
*/
65-
AttributeDataIBs::Builder & EndOfAttributeDataIBs();
65+
CHIP_ERROR EndOfAttributeDataIBs();
6666

6767
private:
6868
AttributeDataIB::Builder mAttributeDataIBBuilder;

src/app/MessageDef/AttributePathIB.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -336,10 +336,10 @@ AttributePathIB::Builder & AttributePathIB::Builder::ListIndex(const chip::ListI
336336
return *this;
337337
}
338338

339-
AttributePathIB::Builder & AttributePathIB::Builder::EndOfAttributePathIB()
339+
CHIP_ERROR AttributePathIB::Builder::EndOfAttributePathIB()
340340
{
341341
EndOfContainer();
342-
return *this;
342+
return GetError();
343343
}
344344

345345
CHIP_ERROR AttributePathIB::Builder::Encode(const AttributePathParams & aAttributePathParams)
@@ -364,8 +364,7 @@ CHIP_ERROR AttributePathIB::Builder::Encode(const AttributePathParams & aAttribu
364364
ListIndex(aAttributePathParams.mListIndex);
365365
}
366366

367-
EndOfAttributePathIB();
368-
return GetError();
367+
return EndOfAttributePathIB();
369368
}
370369

371370
CHIP_ERROR AttributePathIB::Builder::Encode(const ConcreteDataAttributePath & aAttributePath)
@@ -388,8 +387,7 @@ CHIP_ERROR AttributePathIB::Builder::Encode(const ConcreteDataAttributePath & aA
388387
return CHIP_ERROR_INVALID_ARGUMENT;
389388
}
390389

391-
EndOfAttributePathIB();
392-
return GetError();
390+
return EndOfAttributePathIB();
393391
}
394392

395393
} // namespace app

src/app/MessageDef/AttributePathIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,9 @@ class Builder : public ListBuilder
227227
/**
228228
* @brief Mark the end of this AttributePathIB
229229
*
230-
* @return A reference to *this
230+
* @return The builder's final status.
231231
*/
232-
AttributePathIB::Builder & EndOfAttributePathIB();
232+
CHIP_ERROR EndOfAttributePathIB();
233233

234234
CHIP_ERROR Encode(const AttributePathParams & aAttributePathParams);
235235
CHIP_ERROR Encode(const ConcreteDataAttributePath & aAttributePathParams);

src/app/MessageDef/AttributePathIBs.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ AttributePathIB::Builder & AttributePathIBs::Builder::CreatePath()
8282
}
8383

8484
// Mark the end of this array and recover the type for outer container
85-
AttributePathIBs::Builder & AttributePathIBs::Builder::EndOfAttributePathIBs()
85+
CHIP_ERROR AttributePathIBs::Builder::EndOfAttributePathIBs()
8686
{
8787
EndOfContainer();
88-
return *this;
88+
return GetError();
8989
}
9090
} // namespace app
9191
} // namespace chip

src/app/MessageDef/AttributePathIBs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ class Builder : public ArrayBuilder
5353
/**
5454
* @brief Mark the end of this AttributePathIB
5555
*
56-
* @return A reference to *this
56+
* @return The builder's final status.
5757
*/
58-
AttributePathIBs::Builder & EndOfAttributePathIBs();
58+
CHIP_ERROR EndOfAttributePathIBs();
5959

6060
private:
6161
AttributePathIB::Builder mAttributePath;

src/app/MessageDef/AttributeReportIB.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ AttributeDataIB::Builder & AttributeReportIB::Builder::CreateAttributeData()
118118
return mAttributeData;
119119
}
120120

121-
AttributeReportIB::Builder & AttributeReportIB::Builder::EndOfAttributeReportIB()
121+
CHIP_ERROR AttributeReportIB::Builder::EndOfAttributeReportIB()
122122
{
123123
EndOfContainer();
124-
return *this;
124+
return GetError();
125125
}
126126
} // namespace app
127127
} // namespace chip

src/app/MessageDef/AttributeReportIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ class Builder : public StructBuilder
8989
/**
9090
* @brief Mark the end of this AttributeReportIB
9191
*
92-
* @return A reference to *this
92+
* @return The builder's final status.
9393
*/
94-
AttributeReportIB::Builder & EndOfAttributeReportIB();
94+
CHIP_ERROR EndOfAttributeReportIB();
9595

9696
private:
9797
AttributeStatusIB::Builder mAttributeStatus;

src/app/MessageDef/AttributeReportIBs.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ AttributeReportIB::Builder & AttributeReportIBs::Builder::CreateAttributeReport(
7878
return mAttributeReport;
7979
}
8080

81-
AttributeReportIBs::Builder & AttributeReportIBs::Builder::EndOfAttributeReportIBs()
81+
CHIP_ERROR AttributeReportIBs::Builder::EndOfAttributeReportIBs()
8282
{
8383
EndOfContainer();
84-
return *this;
84+
return GetError();
8585
}
8686

8787
CHIP_ERROR AttributeReportIBs::Builder::EncodeAttributeStatus(const ConcreteReadAttributePath & aPath, const StatusIB & aStatus)
@@ -103,8 +103,8 @@ CHIP_ERROR AttributeReportIBs::Builder::EncodeAttributeStatus(const ConcreteRead
103103
statusIBBuilder.EncodeStatusIB(aStatus);
104104
ReturnErrorOnFailure(statusIBBuilder.GetError());
105105

106-
ReturnErrorOnFailure(attributeStatusIBBuilder.EndOfAttributeStatusIB().GetError());
107-
return attributeReport.EndOfAttributeReportIB().GetError();
106+
ReturnErrorOnFailure(attributeStatusIBBuilder.EndOfAttributeStatusIB());
107+
return attributeReport.EndOfAttributeReportIB();
108108
}
109109

110110
} // namespace app

src/app/MessageDef/AttributeReportIBs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ class Builder : public ArrayBuilder
6262
/**
6363
* @brief Mark the end of this AttributeReportIBs
6464
*
65-
* @return A reference to *this
65+
* @return The builder's final status.
6666
*/
67-
AttributeReportIBs::Builder & EndOfAttributeReportIBs();
67+
CHIP_ERROR EndOfAttributeReportIBs();
6868

6969
/**
7070
* Encode an AttributeReportIB containing an AttributeStatus.

src/app/MessageDef/AttributeStatusIB.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ StatusIB::Builder & AttributeStatusIB::Builder::CreateErrorStatus()
117117
return mErrorStatus;
118118
}
119119

120-
AttributeStatusIB::Builder & AttributeStatusIB::Builder::EndOfAttributeStatusIB()
120+
CHIP_ERROR AttributeStatusIB::Builder::EndOfAttributeStatusIB()
121121
{
122122
EndOfContainer();
123-
return *this;
123+
return GetError();
124124
}
125125
} // namespace app
126126
} // namespace chip

src/app/MessageDef/AttributeStatusIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ class Builder : public StructBuilder
8888
/**
8989
* @brief Mark the end of this AttributeStatusIB
9090
*
91-
* @return A reference to *this
91+
* @return The builder's final status.
9292
*/
93-
AttributeStatusIB::Builder & EndOfAttributeStatusIB();
93+
CHIP_ERROR EndOfAttributeStatusIB();
9494

9595
private:
9696
AttributePathIB::Builder mPath;

src/app/MessageDef/AttributeStatusIBs.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ AttributeStatusIB::Builder & AttributeStatusIBs::Builder::CreateAttributeStatus(
3838
return mAttributeStatus;
3939
}
4040

41-
AttributeStatusIBs::Builder & AttributeStatusIBs::Builder::EndOfAttributeStatuses()
41+
CHIP_ERROR AttributeStatusIBs::Builder::EndOfAttributeStatuses()
4242
{
4343
EndOfContainer();
44-
return *this;
44+
return GetError();
4545
}
4646

4747
#if CHIP_CONFIG_IM_PRETTY_PRINT

src/app/MessageDef/AttributeStatusIBs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ class Builder : public ArrayBuilder
4545
/**
4646
* @brief Mark the end of this AttributeStatusIBs
4747
*
48-
* @return A reference to *this
48+
* @return The builder's final status.
4949
*/
50-
AttributeStatusIBs::Builder & EndOfAttributeStatuses();
50+
CHIP_ERROR EndOfAttributeStatuses();
5151

5252
private:
5353
AttributeStatusIB::Builder mAttributeStatus;

src/app/MessageDef/ClusterPathIB.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,10 @@ ClusterPathIB::Builder & ClusterPathIB::Builder::Cluster(const ClusterId aCluste
142142
return *this;
143143
}
144144

145-
ClusterPathIB::Builder & ClusterPathIB::Builder::EndOfClusterPathIB()
145+
CHIP_ERROR ClusterPathIB::Builder::EndOfClusterPathIB()
146146
{
147147
EndOfContainer();
148-
return *this;
148+
return GetError();
149149
}
150150
} // namespace app
151151
} // namespace chip

src/app/MessageDef/ClusterPathIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ class Builder : public ListBuilder
112112
/**
113113
* @brief Mark the end of this ClusterPathIB
114114
*
115-
* @return A reference to *this
115+
* @return The builder's final status.
116116
*/
117-
ClusterPathIB::Builder & EndOfClusterPathIB();
117+
CHIP_ERROR EndOfClusterPathIB();
118118
};
119119
} // namespace ClusterPathIB
120120
} // namespace app

src/app/MessageDef/CommandDataIB.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@ CommandPathIB::Builder & CommandDataIB::Builder::CreatePath()
102102
return mPath;
103103
}
104104

105-
CommandDataIB::Builder & CommandDataIB::Builder::EndOfCommandDataIB()
105+
CHIP_ERROR CommandDataIB::Builder::EndOfCommandDataIB()
106106
{
107107
EndOfContainer();
108-
return *this;
108+
return GetError();
109109
}
110110
} // namespace app
111111
} // namespace chip

src/app/MessageDef/CommandDataIB.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ class Builder : public StructBuilder
8181
/**
8282
* @brief Mark the end of this CommandDataIB
8383
*
84-
* @return A reference to *this
84+
* @return The builder's final status.
8585
*/
86-
CommandDataIB::Builder & EndOfCommandDataIB();
86+
CHIP_ERROR EndOfCommandDataIB();
8787

8888
private:
8989
CommandPathIB::Builder mPath;

0 commit comments

Comments
 (0)