You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2016/10/21 03:13:33 UTC
[8/9] incubator-quickstep git commit: Fix a bug in destroy payload
Fix a bug in destroy payload
- Change in pointer arithmetic now ensures that destroyPayload will be
called for correct payload entry in each bucket.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/a11cdfd5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/a11cdfd5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/a11cdfd5
Branch: refs/heads/multiple_shiftboss
Commit: a11cdfd5d9b364cacd755ade30d1e99b51893e3b
Parents: 5b24791
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Thu Oct 20 17:06:46 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Thu Oct 20 17:06:46 2016 -0500
----------------------------------------------------------------------
storage/FastSeparateChainingHashTable.hpp | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/a11cdfd5/storage/FastSeparateChainingHashTable.hpp
----------------------------------------------------------------------
diff --git a/storage/FastSeparateChainingHashTable.hpp b/storage/FastSeparateChainingHashTable.hpp
index 17ee1d2..231da7e 100644
--- a/storage/FastSeparateChainingHashTable.hpp
+++ b/storage/FastSeparateChainingHashTable.hpp
@@ -141,19 +141,16 @@ class FastSeparateChainingHashTable
HashTablePreallocationState *prealloc_state) override;
void destroyPayload() override {
- void *hash_buckets = buckets_;
const std::size_t num_buckets =
header_->buckets_allocated.load(std::memory_order_relaxed);
- const std::size_t bucket_size = bucket_size_;
- void *bucket_ptr = static_cast<char *>(hash_buckets) + kValueOffset;
+ void *bucket_ptr = static_cast<char *>(buckets_) + kValueOffset;
for (std::size_t bucket_num = 0; bucket_num < num_buckets; ++bucket_num) {
- void *value_internal_ptr = bucket_ptr;
for (std::size_t handle_num = 0; handle_num < handles_.size(); ++handle_num) {
- value_internal_ptr =
- static_cast<char *>(value_internal_ptr) + this->payload_offsets_[handle_num];
+ void *value_internal_ptr =
+ static_cast<char *>(bucket_ptr) + this->payload_offsets_[handle_num];
handles_[handle_num]->destroyPayload(static_cast<std::uint8_t *>(value_internal_ptr));
}
- bucket_ptr = static_cast<char *>(bucket_ptr) + bucket_size;
+ bucket_ptr = static_cast<char *>(bucket_ptr) + bucket_size_;
}
}