aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/workspaces.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenstore/workspaces.cpp')
-rw-r--r--src/zenstore/workspaces.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/zenstore/workspaces.cpp b/src/zenstore/workspaces.cpp
index f0f975af4..ad21bbc68 100644
--- a/src/zenstore/workspaces.cpp
+++ b/src/zenstore/workspaces.cpp
@@ -383,7 +383,7 @@ Workspace::GetShares() const
{
std::vector<Ref<WorkspaceShare>> Shares;
Shares.reserve(m_Shares.size());
- for (auto It : m_Shares)
+ for (const auto& It : m_Shares)
{
Shares.push_back(It.second);
}
@@ -435,7 +435,7 @@ Workspaces::RefreshWorkspaceShares(const Oid& WorkspaceId)
Workspace = FindWorkspace(Lock, WorkspaceId);
if (Workspace)
{
- for (auto Share : Workspace->GetShares())
+ for (const auto& Share : Workspace->GetShares())
{
DeletedShares.insert(Share->GetConfig().Id);
}
@@ -482,6 +482,12 @@ Workspaces::RefreshWorkspaceShares(const Oid& WorkspaceId)
m_ShareAliases.erase(Share->GetConfig().Alias);
}
Workspace->SetShare(Configuration.Id, std::move(NewShare));
+ if (!Configuration.Alias.empty())
+ {
+ m_ShareAliases.insert_or_assign(
+ Configuration.Alias,
+ ShareAlias{.WorkspaceId = WorkspaceId, .ShareId = Configuration.Id});
+ }
}
}
else
@@ -602,7 +608,7 @@ Workspaces::GetWorkspaceShareChunks(const Oid& WorkspaceId,
{
RequestedOffset = Size;
}
- if ((RequestedOffset + RequestedSize) > Size)
+ if (RequestedSize > Size - RequestedOffset)
{
RequestedSize = Size - RequestedOffset;
}
@@ -649,7 +655,7 @@ Workspaces::GetWorkspaces() const
{
std::vector<Oid> Workspaces;
RwLock::SharedLockScope Lock(m_Lock);
- for (auto It : m_Workspaces)
+ for (const auto& It : m_Workspaces)
{
Workspaces.push_back(It.first);
}
@@ -679,7 +685,7 @@ Workspaces::GetWorkspaceShares(const Oid& WorkspaceId) const
if (Workspace)
{
std::vector<Oid> Shares;
- for (auto Share : Workspace->GetShares())
+ for (const auto& Share : Workspace->GetShares())
{
Shares.push_back(Share->GetConfig().Id);
}
@@ -1356,6 +1362,8 @@ namespace {
} // namespace
+TEST_SUITE_BEGIN("store.workspaces");
+
TEST_CASE("workspaces.scanfolder")
{
using namespace std::literals;
@@ -1559,6 +1567,8 @@ TEST_CASE("workspace.share.alias")
CHECK(!WS.GetShareAlias("my_share").has_value());
}
+TEST_SUITE_END();
+
#endif
void