/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* @brief Keep a static recursionstack vector to avoid creating temporary vectors every Relayout().
*/
-static Dali::Internal::ActorSizer::ActorDimensionStack gRecursionStack{};
-
+Dali::Internal::ActorSizer::ActorDimensionStack& GetRecursionStack()
+{
+ static Dali::Internal::ActorSizer::ActorDimensionStack gRecursionStack{};
+ return gRecursionStack;
+}
} // namespace
namespace Dali::Internal
if(mTargetSize != size || mTargetSizeDirtyFlag)
{
mTargetSizeDirtyFlag = false;
- mTargetSize = size;
+ mTargetSize = size;
// Update the preferred size after relayoutting
// It should be used in the next relayoutting
void ActorSizer::NegotiateDimensions(const Vector2& allocatedSize)
{
// Negotiate all dimensions that require it
- gRecursionStack.clear();
+ GetRecursionStack().clear();
for(uint32_t i = 0; i < Dimension::DIMENSION_COUNT; ++i)
{
const Dimension::Type dimension = static_cast<Dimension::Type>(1 << i);
// Negotiate
- NegotiateDimension(dimension, allocatedSize, gRecursionStack);
+ NegotiateDimension(dimension, allocatedSize, GetRecursionStack());
}
}