浏览代码

!1744 Fix Codex

Merge pull request !1744 from JesseKLee/btree_fix
tags/v0.5.0-beta
mindspore-ci-bot Gitee 5 年前
父节点
当前提交
05177ff91a
共有 2 个文件被更改,包括 10 次插入4 次删除
  1. +4
    -4
      mindspore/ccsrc/dataset/util/btree.h
  2. +6
    -0
      mindspore/ccsrc/dataset/util/btree_impl.tpp

+ 4
- 4
mindspore/ccsrc/dataset/util/btree.h 查看文件

@@ -252,8 +252,8 @@ class BPlusTree {

~InnerNode() = default;

slot_type slot_dir_[traits::kInnerSlots];
key_type keys_[traits::kInnerSlots];
slot_type slot_dir_[traits::kInnerSlots] = {0};
key_type keys_[traits::kInnerSlots] = {0};
BaseNode *data_[traits::kInnerSlots + 1] = {nullptr};
uint64_t num_keys_[traits::kInnerSlots + 1] = {0};
slot_type slotuse_;
@@ -282,8 +282,8 @@ class BPlusTree {

~LeafNode() = default;

slot_type slot_dir_[traits::kLeafSlots];
key_type keys_[traits::kLeafSlots];
slot_type slot_dir_[traits::kLeafSlots] = {0};
key_type keys_[traits::kLeafSlots] = {0};
std::unique_ptr<value_type> data_[traits::kLeafSlots];
slot_type slotuse_;
};


+ 6
- 0
mindspore/ccsrc/dataset/util/btree_impl.tpp 查看文件

@@ -42,6 +42,9 @@ typename BPlusTree<K, V, A, C, T>::IndexRc BPlusTree<K, V, A, C, T>::InnerNode::
// Swap the key
std::swap(keys_[j], keys_[i]);
// Swap the pointers.
if ((j + 1) >= traits::kInnerSlots + 1 || (i + 1) >= traits::kInnerSlots + 1) {
return IndexRc::kUnexpectedError;
}
std::swap(data_[j + 1], data_[i + 1]);
// one key in order.
inverse[j] = j;
@@ -131,6 +134,9 @@ typename BPlusTree<K, V, A, C, T>::IndexRc BPlusTree<K, V, A, C, T>::LeafNode::S
slot_type j = inverse[i];
slot_type k = inverse[j];
// Swap the key
if (j >= traits::kLeafSlots || i >= traits::kLeafSlots) {
return IndexRc::kUnexpectedError;
}
std::swap(keys_[j], keys_[i]);
// Swap the shared pointers
std::swap(data_[j], data_[i]);


正在加载...
取消
保存