summaryrefslogtreecommitdiff
path: root/system/gd/packet/parser/fields/array_field.cc
diff options
context:
space:
mode:
authorRob Seymour <rseymour@google.com>2022-04-02 03:52:13 +0000
committerRob Seymour <rseymour@google.com>2022-04-02 04:01:22 +0000
commit4c7dc59bef24cc991251f9a7924ceada90c6bd63 (patch)
treea90550aa3ce1bc5e002ab6444c96954deca81af0 /system/gd/packet/parser/fields/array_field.cc
parent6fa2bea006b362a285f744f65f15b5902e55797a (diff)
parentdd4d23c4e1de011f8cd4eb132422172d5e283a73 (diff)
Merge TP1A.220328.001
Change-Id: I5f07094ba2fb3991da03673f97d2957b1f68018b
Diffstat (limited to 'system/gd/packet/parser/fields/array_field.cc')
-rw-r--r--system/gd/packet/parser/fields/array_field.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/system/gd/packet/parser/fields/array_field.cc b/system/gd/packet/parser/fields/array_field.cc
index c856e5b712..c95734d098 100644
--- a/system/gd/packet/parser/fields/array_field.cc
+++ b/system/gd/packet/parser/fields/array_field.cc
@@ -200,10 +200,11 @@ std::string ArrayField::GetRustDataType() const {
return "[" + element_field_->GetRustDataType() + "; " + std::to_string(array_size_) + "]";
}
-void ArrayField::GenRustGetter(std::ostream& s, Size start_offset, Size) const {
+void ArrayField::GenRustGetter(std::ostream& s, Size start_offset, Size, std::string) const {
s << "let " << GetName() << " = ";
s << "bytes[" << start_offset.bytes() << "..";
- s << start_offset.bytes() + GetSize().bytes() << "].try_into().unwrap();";
+ s << start_offset.bytes() + GetSize().bytes() << "].try_into()";
+ s << ".map_err(|_| Error::InvalidPacketError)?;";
}
void ArrayField::GenRustWriter(std::ostream& s, Size start_offset, Size) const {