Address additional PR feedback

Signed-off-by: Jeremy Ong <jcong@amazon.com>
monroegm-disable-blank-issue-2
Jeremy Ong 4 years ago
parent a9b4ad3486
commit c3e83387db

@ -73,7 +73,7 @@ namespace AZ::Debug
// If using a budget defined in a different C++ source file, add AZ_DECLARE_BUDGET(yourBudget); somewhere in your source file at namespace
// scope Alternatively, AZ_DECLARE_BUDGET can be used in a header to declare the budget for use across any users of the header
#define AZ_DECLARE_BUDGET(name) extern ::AZ::Debug::Budget* AZ_BUDGET_GETTER(name)()
#define AZ_DECLARE_BUDGET(name) ::AZ::Debug::Budget* AZ_BUDGET_GETTER(name)()
// Declare budgets that are core engine budgets, or may be shared/needed across multiple external gems
// You should NOT need to declare user-space or budgets with isolated usage here. Prefer declaring them local to the module(s) that use

@ -19,7 +19,7 @@ namespace AZ::Debug
{
constexpr static const char* BudgetTrackerEnvName = "budgetTrackerEnv";
struct BudgetTrackerImpl
struct BudgetTracker::BudgetTrackerImpl
{
AZStd::unordered_map<const char*, Budget> m_budgets;
};
@ -65,11 +65,7 @@ namespace AZ::Debug
{
AZStd::scoped_lock lock{ m_mutex };
auto it = m_impl->m_budgets.find(budgetName);
if (it == m_impl->m_budgets.end())
{
it = m_impl->m_budgets.try_emplace(budgetName, budgetName, crc).first;
}
auto it = m_impl->m_budgets.try_emplace(budgetName, budgetName, crc).first;
return it->second;
}

@ -31,11 +31,13 @@ namespace AZ::Debug
Budget& GetBudget(const char* budgetName, uint32_t crc);
private:
struct BudgetTrackerImpl;
AZStd::mutex m_mutex;
// The BudgetTracker is likely included in proportionally high number of files throughout the
// engine, so indirection is used here to avoid imposing excessive recompilation in periods
// while the budget system is iterated on.
struct BudgetTrackerImpl* m_impl = nullptr;
BudgetTrackerImpl* m_impl = nullptr;
};
} // namespace AZ::Debug

Loading…
Cancel
Save