Loading system/gd/packet/parser/fields/custom_field.cc +2 −2 Original line number Diff line number Diff line Loading @@ -41,8 +41,7 @@ std::string CustomField::GetDataType() const { void CustomField::GenExtractor(std::ostream& s, Size start_offset, Size end_offset) const { GenBounds(s, start_offset, end_offset, Size()); s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin);"; s << "std::unique_ptr<" << GetDataType() << "> ptr = std::make_unique<" << GetDataType() << ">();"; s << GetDataType() << "::Parse(ptr.get(), it);"; } Loading @@ -51,6 +50,7 @@ void CustomField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << "std::unique_ptr<" << GetDataType() << "> Get" << util::UnderscoreToCamelCase(GetName()) << "() const {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); s << "return ptr;"; Loading system/gd/packet/parser/fields/struct_field.cc +2 −2 Original line number Diff line number Diff line Loading @@ -49,8 +49,7 @@ void StructField::GenExtractor(std::ostream& s, Size start_offset, Size end_offs } else { GenBounds(s, start_offset, end_offset, Size()); } s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin); "; s << "std::unique_ptr<" << GetDataType() << "> one = std::make_unique<" << GetDataType() << ">();"; s << GetDataType() << "::Parse(one.get(), it);"; } Loading @@ -63,6 +62,7 @@ void StructField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) } s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); if (size_ != -1) { Loading system/gd/packet/parser/fields/vector_field.cc +4 −4 Original line number Diff line number Diff line Loading @@ -94,17 +94,16 @@ std::string VectorField::GetDataType() const { void VectorField::GenExtractor(std::ostream& s, Size start_offset, Size end_offset) const { GenBounds(s, start_offset, end_offset, GetSize()); s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin);"; s << GetDataType() << " ret;"; if (element_size_ != -1) { std::string type = (type_def_ != nullptr) ? type_def_->name_ : util::GetTypeForSize(element_size_); s << "while (it + sizeof(" << type << ") <= subview.end()) {"; s << "while (it.NumBytesRemaining() >= sizeof(" << type << ")) {"; s << "ret.push_back(it.extract<" << type << ">());"; s << "}"; } else { s << "while (it < subview.end()) {"; s << "while (it.NumBytesRemaining() > 0) {"; s << type_def_->name_ << " instance;"; s << "it = " << type_def_->name_ << "::Parse(&instance, it);"; s << "ret.push_back(instance);"; Loading @@ -117,6 +116,7 @@ void VectorField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << " Get" << util::UnderscoreToCamelCase(GetName()) << "() {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); Loading Loading
system/gd/packet/parser/fields/custom_field.cc +2 −2 Original line number Diff line number Diff line Loading @@ -41,8 +41,7 @@ std::string CustomField::GetDataType() const { void CustomField::GenExtractor(std::ostream& s, Size start_offset, Size end_offset) const { GenBounds(s, start_offset, end_offset, Size()); s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin);"; s << "std::unique_ptr<" << GetDataType() << "> ptr = std::make_unique<" << GetDataType() << ">();"; s << GetDataType() << "::Parse(ptr.get(), it);"; } Loading @@ -51,6 +50,7 @@ void CustomField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << "std::unique_ptr<" << GetDataType() << "> Get" << util::UnderscoreToCamelCase(GetName()) << "() const {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); s << "return ptr;"; Loading
system/gd/packet/parser/fields/struct_field.cc +2 −2 Original line number Diff line number Diff line Loading @@ -49,8 +49,7 @@ void StructField::GenExtractor(std::ostream& s, Size start_offset, Size end_offs } else { GenBounds(s, start_offset, end_offset, Size()); } s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin); "; s << "std::unique_ptr<" << GetDataType() << "> one = std::make_unique<" << GetDataType() << ">();"; s << GetDataType() << "::Parse(one.get(), it);"; } Loading @@ -63,6 +62,7 @@ void StructField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) } s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); if (size_ != -1) { Loading
system/gd/packet/parser/fields/vector_field.cc +4 −4 Original line number Diff line number Diff line Loading @@ -94,17 +94,16 @@ std::string VectorField::GetDataType() const { void VectorField::GenExtractor(std::ostream& s, Size start_offset, Size end_offset) const { GenBounds(s, start_offset, end_offset, GetSize()); s << " auto subview = GetLittleEndianSubview(field_begin, field_end); "; s << "auto it = subview.begin();"; s << "auto it = begin_it.Subrange(field_begin, field_end - field_begin);"; s << GetDataType() << " ret;"; if (element_size_ != -1) { std::string type = (type_def_ != nullptr) ? type_def_->name_ : util::GetTypeForSize(element_size_); s << "while (it + sizeof(" << type << ") <= subview.end()) {"; s << "while (it.NumBytesRemaining() >= sizeof(" << type << ")) {"; s << "ret.push_back(it.extract<" << type << ">());"; s << "}"; } else { s << "while (it < subview.end()) {"; s << "while (it.NumBytesRemaining() > 0) {"; s << type_def_->name_ << " instance;"; s << "it = " << type_def_->name_ << "::Parse(&instance, it);"; s << "ret.push_back(instance);"; Loading @@ -117,6 +116,7 @@ void VectorField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) s << " Get" << util::UnderscoreToCamelCase(GetName()) << "() {"; s << "ASSERT(was_validated_);"; s << "size_t end_index = size();"; s << "auto begin_it = begin();"; GenExtractor(s, start_offset, end_offset); Loading