From cc26f9d0593b5ac838f339e35fc422dfbd349e5f Mon Sep 17 00:00:00 2001 From: fis Date: Thu, 20 Aug 2020 05:29:37 +0800 Subject: [PATCH] Reviewer's comment. --- include/xgboost/span.h | 2 -- src/tree/tree_model.cc | 15 +++++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/xgboost/span.h b/include/xgboost/span.h index 75ffcac07465..6187f396ffb0 100644 --- a/include/xgboost/span.h +++ b/include/xgboost/span.h @@ -528,7 +528,6 @@ class Span { XGBOOST_DEVICE reference operator[](index_type _idx) const { SPAN_LT(_idx, size()); - SPAN_CHECK(_idx < size()); return data()[_idx]; } @@ -588,7 +587,6 @@ class Span { detail::ExtentValue::value> { SPAN_CHECK((Count == dynamic_extent) ? (Offset <= size()) : (Offset + Count <= size())); - return {data() + Offset, Count == dynamic_extent ? size() - Offset : Count}; } diff --git a/src/tree/tree_model.cc b/src/tree/tree_model.cc index 5ec9de4febb6..57f796e107c4 100644 --- a/src/tree/tree_model.cc +++ b/src/tree/tree_model.cc @@ -867,7 +867,6 @@ void RegTree::SaveModel(Json* p_out) const { std::vector categories(n_nodes); - auto& self = *this; for (bst_node_t i = 0; i < n_nodes; ++i) { auto const& s = stats_[i]; loss_changes[i] = s.loss_chg; @@ -886,12 +885,12 @@ void RegTree::SaveModel(Json* p_out) const { std::vector categories_temp; // This condition is only for being compatibale with older version of XGBoost model // that doesn't have categorical data support. - if (self.GetSplitTypes().size() == static_cast(n_nodes)) { - CHECK_EQ(self.split_categories_segments_.size(), param.num_nodes); - split_type[i] = static_cast(self.NodeSplitType(i)); - auto beg = self.split_categories_segments_.at(i).beg; - auto size = self.split_categories_segments_.at(i).size; - auto node_categories = self.GetSplitCategories().subspan(beg, size); + if (this->GetSplitTypes().size() == static_cast(n_nodes)) { + CHECK_EQ(this->GetSplitCategoriesPtr().size(), param.num_nodes); + split_type[i] = static_cast(this->NodeSplitType(i)); + auto beg = this->GetSplitCategoriesPtr().at(i).beg; + auto size = this->GetSplitCategoriesPtr().at(i).size; + auto node_categories = this->GetSplitCategories().subspan(beg, size); common::KCatBitField const cat_bits(node_categories); for (size_t i = 0; i < cat_bits.Size(); ++i) { if (cat_bits.Check(i)) { @@ -916,7 +915,7 @@ void RegTree::SaveModel(Json* p_out) const { out["categories"] = categories; - if (self.GetSplitTypes().size() == static_cast(n_nodes)) { + if (this->GetSplitTypes().size() == static_cast(n_nodes)) { out["split_type"] = std::move(split_type); } }