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

Commit c9a13fe9 authored by Myles Watson's avatar Myles Watson Committed by android-build-merger
Browse files

Merge "PDL: Add for_struct to GenExtractor"

am: 653f8329

Change-Id: I3493b6623de18c7836a81a4207c688ac4275223d
parents b9b6277c 653f8329
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ std::string ArrayField::GetDataType() const {
  return "std::array<" + element_field_->GetDataType() + "," + std::to_string(array_size_) + ">";
}

void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits) const {
void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const {
  s << GetDataType() << "::iterator ret_it = " << GetName() << "_ptr->begin();";
  s << "auto " << element_field_->GetName() << "_it = " << GetName() << "_it;";
  if (!element_size_.empty() && !element_size_.has_dynamic()) {
@@ -84,7 +84,7 @@ void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits) const {
  } else {
    s << element_field_->GetDataType() << "* " << element_field_->GetName() << "_ptr = ret_it;";
  }
  element_field_->GenExtractor(s, num_leading_bits);
  element_field_->GenExtractor(s, num_leading_bits, for_struct);
  if (element_field_->BuilderParameterMustBeMoved()) {
    s << "*ret_it = std::move(" << element_field_->GetName() << "_ptr);";
  }
@@ -102,7 +102,7 @@ void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset)
  int num_leading_bits = GenBounds(s, start_offset, end_offset);
  s << GetDataType() << " " << GetName() << "_value;";
  s << GetDataType() << "* " << GetName() << "_ptr = &" << GetName() << "_value;";
  GenExtractor(s, num_leading_bits);
  GenExtractor(s, num_leading_bits, false);

  s << "return " << GetName() << "_value;";
  s << "}\n";
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ class ArrayField : public PacketField {

  virtual std::string GetDataType() const override;

  virtual void GenExtractor(std::ostream& s, int num_leading_bits) const override;
  virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override;

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

+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ std::string BodyField::GetDataType() const {
  return "BodyType";
}

void BodyField::GenExtractor(std::ostream&, int) const {}
void BodyField::GenExtractor(std::ostream&, int, bool) const {}

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

+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ class BodyField : public PacketField {

  virtual std::string GetDataType() const override;

  virtual void GenExtractor(std::ostream& s, int num_leading_bits) const override;
  virtual void GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const override;

  virtual void GenGetter(std::ostream&, Size, Size) const override;

+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ std::string ChecksumField::GetDataType() const {
  return type_name_;
}

void ChecksumField::GenExtractor(std::ostream&, int) const {}
void ChecksumField::GenExtractor(std::ostream&, int, bool) const {}

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

Loading