Browse Source

Refactor `push_byte`'s code

Move logic below error checking with early exit.
feature_link
Anton Tarasenko 3 years ago
parent
commit
e3f554218a
  1. 2
      src/link/mod.rs

2
src/link/mod.rs

@ -100,7 +100,6 @@ impl MessageReader {
self.read_bytes += 1; self.read_bytes += 1;
if self.read_bytes >= UE_LENGTH_FIELD_SIZE { if self.read_bytes >= UE_LENGTH_FIELD_SIZE {
self.current_message_length = array_of_u8_to_u32(self.length_buffer) as usize; self.current_message_length = array_of_u8_to_u32(self.length_buffer) as usize;
self.change_state(ReadingState::Payload);
if self.current_message_length > MAX_UE_MESSAGE_LENGTH { if self.current_message_length > MAX_UE_MESSAGE_LENGTH {
self.is_broken = true; self.is_broken = true;
return Err(ReadingStreamError::MessageTooLong { return Err(ReadingStreamError::MessageTooLong {
@ -108,6 +107,7 @@ impl MessageReader {
}); });
} }
self.current_message = Vec::with_capacity(self.current_message_length); self.current_message = Vec::with_capacity(self.current_message_length);
self.change_state(ReadingState::Payload);
} }
} }
ReadingState::Payload => { ReadingState::Payload => {

Loading…
Cancel
Save