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

Commit 9e63a591 authored by Henri Chataing's avatar Henri Chataing Committed by Automerger Merge Worker
Browse files

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

Merge "Packetgen: Fix potential runtime panics in rust generated code" am: 6c9c2d7d am: f1e4aea7

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2036243

Change-Id: Iaef0112fa40457681370f13e5fb1f9e2424e84ac
parents 48772aca f1e4aea7
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -200,10 +200,11 @@ std::string ArrayField::GetRustDataType() const {
  return "[" + element_field_->GetRustDataType() + "; " + std::to_string(array_size_) + "]";
  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 << "let " << GetName() << " = ";
  s << "bytes[" << start_offset.bytes() << "..";
  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 {
void ArrayField::GenRustWriter(std::ostream& s, Size start_offset, Size) const {
+1 −1
Original line number Original line Diff line number Diff line
@@ -66,7 +66,7 @@ class ArrayField : public PacketField {


  virtual std::string GetRustDataType() const override;
  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;
  void GenRustWriter(std::ostream& s, Size start_offset, Size end_offset) const override;


+1 −2
Original line number Original line Diff line number Diff line
@@ -80,7 +80,6 @@ std::string BodyField::GetRustDataType() const {
  return GetDataType();
  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 {}
void BodyField::GenRustWriter(std::ostream&, Size, Size) const {}
+1 −1
Original line number Original line Diff line number Diff line
@@ -54,7 +54,7 @@ class BodyField : public PacketField {


  virtual std::string GetRustDataType() const override;
  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;
  void GenRustWriter(std::ostream& s, Size start_offset, Size end_offset) const override;


+1 −2
Original line number Original line Diff line number Diff line
@@ -64,7 +64,6 @@ void ChecksumField::GenStringRepresentation(std::ostream& s, std::string) const
  s << "\"CHECKSUM\"";
  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 {}
void ChecksumField::GenRustWriter(std::ostream&, Size, Size) const {}
Loading