Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c9c2d7d authored by Henri Chataing's avatar Henri Chataing Committed by Gerrit Code Review
Browse files

Merge "Packetgen: Fix potential runtime panics in rust generated code"

parents d8f1c7aa ac2311f9
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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 {
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ class ArrayField : public PacketField {

  virtual std::string GetRustDataType() const override;

  void GenRustGetter(std::ostream& s, Size start_offset, Size end_offset) const override;
  void GenRustGetter(std::ostream& s, Size start_offset, Size end_offset, std::string parent_name) const override;

  void GenRustWriter(std::ostream& s, Size start_offset, Size end_offset) const override;

+1 −2
Original line number Diff line number Diff line
@@ -80,7 +80,6 @@ std::string BodyField::GetRustDataType() const {
  return GetDataType();
}

void BodyField::GenRustGetter(std::ostream&, Size, Size) const {
}
void BodyField::GenRustGetter(std::ostream&, Size, Size, std::string) const {}

void BodyField::GenRustWriter(std::ostream&, Size, Size) const {}
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ class BodyField : public PacketField {

  virtual std::string GetRustDataType() const override;

  void GenRustGetter(std::ostream& s, Size start_offset, Size end_offset) const override;
  void GenRustGetter(std::ostream& s, Size start_offset, Size end_offset, std::string) const override;

  void GenRustWriter(std::ostream& s, Size start_offset, Size end_offset) const override;

+1 −2
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ void ChecksumField::GenStringRepresentation(std::ostream& s, std::string) const
  s << "\"CHECKSUM\"";
}

void ChecksumField::GenRustGetter(std::ostream&, Size, Size) const {
}
void ChecksumField::GenRustGetter(std::ostream&, Size, Size, std::string) const {}

void ChecksumField::GenRustWriter(std::ostream&, Size, Size) const {}
Loading