Skip to content

Commit a32267b

Browse files
committed
Simplify new code more
1 parent a73d319 commit a32267b

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/main/cpp/appenderattachableimpl.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,10 @@ using AppenderListPtr = std::shared_ptr<const AppenderList>;
192192
/** A vector of appender pointers. */
193193
struct AppenderAttachableImpl::priv_data
194194
{
195+
private:
195196
std::atomic<AppenderListPtr> pAppenderList;
196197

198+
public:
197199
priv_data(const AppenderList& newList = {})
198200
: pAppenderList{ std::make_shared<AppenderList>(newList) }
199201
{}
@@ -203,9 +205,9 @@ struct AppenderAttachableImpl::priv_data
203205
return pAppenderList.load(std::memory_order_acquire);
204206
}
205207

206-
void setAppenders(const AppenderListPtr& newList)
208+
void setAppenders(const AppenderList& newList)
207209
{
208-
pAppenderList.store(newList, std::memory_order_release);
210+
pAppenderList.store(std::make_shared<AppenderList>(newList), std::memory_order_release);
209211
}
210212
};
211213

@@ -218,8 +220,8 @@ void AppenderAttachableImpl::addAppender(const AppenderPtr newAppender)
218220
auto allAppenders = m_priv->getAppenders();
219221
if (allAppenders->end() == std::find(allAppenders->begin(), allAppenders->end(), newAppender))
220222
{
221-
auto newAppenders = std::make_shared<AppenderList>(*allAppenders);
222-
newAppenders->push_back(newAppender);
223+
auto newAppenders = *allAppenders;
224+
newAppenders.push_back(newAppender);
223225
m_priv->setAppenders(newAppenders);
224226
}
225227
}
@@ -286,7 +288,7 @@ void AppenderAttachableImpl::removeAllAppenders()
286288
auto allAppenders = m_priv->getAppenders();
287289
for (auto& appender : *allAppenders)
288290
appender->close();
289-
m_priv->setAppenders(std::make_shared<AppenderList>());
291+
m_priv->setAppenders({});
290292
}
291293
}
292294

@@ -299,7 +301,7 @@ void AppenderAttachableImpl::removeAppender(const AppenderPtr appender)
299301
if (newAppenders.end() != pItem)
300302
{
301303
newAppenders.erase(pItem);
302-
m_priv->setAppenders(std::make_shared<AppenderList>(newAppenders));
304+
m_priv->setAppenders(newAppenders);
303305
}
304306
}
305307
}
@@ -317,7 +319,7 @@ void AppenderAttachableImpl::removeAppender(const LogString& name)
317319
if (newAppenders.end() != pItem)
318320
{
319321
newAppenders.erase(pItem);
320-
m_priv->setAppenders(std::make_shared<AppenderList>(newAppenders));
322+
m_priv->setAppenders(newAppenders);
321323
}
322324
}
323325
}
@@ -337,7 +339,7 @@ bool AppenderAttachableImpl::replaceAppender(const AppenderPtr& oldAppender, con
337339
if (newAppenders.end() != pItem)
338340
{
339341
*pItem = newAppender;
340-
m_priv->setAppenders(std::make_shared<AppenderList>(newAppenders));
342+
m_priv->setAppenders(newAppenders);
341343
found = true;
342344
}
343345
}
@@ -351,7 +353,7 @@ void AppenderAttachableImpl::replaceAppenders(const AppenderList& newList)
351353
auto allAppenders = m_priv->getAppenders();
352354
for (auto& a : *allAppenders)
353355
a->close();
354-
m_priv->setAppenders(std::make_shared<AppenderList>(newList));
356+
m_priv->setAppenders(newList);
355357
}
356358
else
357359
m_priv = std::make_unique<priv_data>(newList);

0 commit comments

Comments
 (0)