Skip to content

Commit 8f095d4

Browse files
committed
Fixed bad git commit
1 parent 908afcb commit 8f095d4

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/cbor/MessageDecoder.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ MessageDecoder::DecoderState MessageDecoder::decode(Message * message, uint8_t c
5959
switch (current_state) {
6060
case ArrayParserState::EnterArray : next_state = handle_EnterArray(&main_iter, &array_iter); break;
6161
case ArrayParserState::ParseParam : next_state = handle_Param(&array_iter, message); break;
62-
case ArrayParserState::LeaveArray : next_state = handle_LeaveArray(); break;
62+
case ArrayParserState::LeaveArray : next_state = handle_LeaveArray(&main_iter, &array_iter); break;
6363
case ArrayParserState::Complete : return DecoderState::Success; break;
6464
case ArrayParserState::MessageNotSupported : return DecoderState::MessageNotSupported; break;
6565
case ArrayParserState::Error : return DecoderState::Error; break;
@@ -118,7 +118,15 @@ MessageDecoder::ArrayParserState MessageDecoder::handle_EnterArray(CborValue * m
118118
return next_state;
119119
}
120120

121-
MessageDecoder::ArrayParserState MessageDecoder::handle_LeaveArray() {
121+
MessageDecoder::ArrayParserState MessageDecoder::handle_LeaveArray(CborValue * main_iter, CborValue * array_iter) {
122+
// Advance to the next parameter (the last one in the array)
123+
if (cbor_value_advance(array_iter) != CborNoError) {
124+
return ArrayParserState::Error;
125+
}
126+
// Leave the array
127+
if (cbor_value_leave_container(main_iter, array_iter) != CborNoError) {
128+
return ArrayParserState::Error;
129+
}
122130
return ArrayParserState::Complete;
123131
}
124132

0 commit comments

Comments
 (0)