diff options
Diffstat (limited to 'include/framework/structure')
| -rw-r--r-- | include/framework/structure/ExtensionStructure.h | 3 | ||||
| -rw-r--r-- | include/framework/structure/InternalLevel.h | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index 521e68b..a77088f 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -231,6 +231,9 @@ public: if (shard_idx != -1) { m_levels[shards[i].first]->delete_shard(shard_idx); + } else { + fprintf(stderr, "ERROR: failed to delete shard %ld\t%p\n", shards[i].first, shards[i].second); + //exit(EXIT_FAILURE); } } } diff --git a/include/framework/structure/InternalLevel.h b/include/framework/structure/InternalLevel.h index 6e8b67e..5659c72 100644 --- a/include/framework/structure/InternalLevel.h +++ b/include/framework/structure/InternalLevel.h @@ -102,8 +102,12 @@ public: return false; } - const ShardType *get_shard(size_t idx) const { - if (idx >= m_shards.size()) { + const ShardType *get_shard(ssize_t idx) const { + if (idx == all_shards_idx) { + idx = 0; + } + + if (idx >= (ssize_t) m_shards.size()) { return nullptr; } |