ClearBidirectionalParagraphInfo is called before mBidirectionalParagraphInfo is cleared to maintain sync so that the vector scope is valid.
Change-Id: Ib3cba9b13e28e873b0a0cd157c5cea19947652f0
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
mTextModel->mLogicalModel->mBackgroundColorRuns.Clear();
mTextModel->mLogicalModel->mLineBreakInfo.Clear();
mTextModel->mLogicalModel->mParagraphInfo.Clear();
+ mTextModel->mLogicalModel->ClearBidirectionalParagraphInfo(mModule.GetBidirectionalSupport());
mTextModel->mLogicalModel->mBidirectionalParagraphInfo.Clear();
mTextModel->mLogicalModel->mCharacterDirections.Clear();
mTextModel->mLogicalModel->mCharacterSpacingCharacterRuns.Clear();
mTextModel->mLogicalModel->ClearUnderlineRuns();
mTextModel->mLogicalModel->ClearEmbeddedImages();
mTextModel->mLogicalModel->ClearAnchors();
- mTextModel->mLogicalModel->ClearBidirectionalParagraphInfo();
// Free the allocated memory used to store the conversion table in the bidirectional line info run.
for(Vector<BidirectionalLineInfoRun>::Iterator it = mTextModel->mLogicalModel->mBidirectionalLineInfo.Begin(),
{
if(Controller::NO_OPERATION != (Controller::BIDI_INFO & operations))
{
+ TextAbstraction::BidirectionalSupport bidirectionalSupport = TextAbstraction::BidirectionalSupport::Get();
+ model->mLogicalModel->ClearBidirectionalParagraphInfo(bidirectionalSupport);
model->mLogicalModel->mBidirectionalParagraphInfo.Clear();
model->mLogicalModel->mCharacterDirections.Clear();
}
// Reset the anchors buffer.
logicalModel->ClearAnchors();
- // Reset the bidirectional paragraph info.
- logicalModel->ClearBidirectionalParagraphInfo();
-
// We have cleared everything including the placeholder-text
impl.PlaceholderCleared();
#include <dali-toolkit/internal/text/logical-model-impl.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/bidirectional-support.h>
#include <dali-toolkit/internal/text/bounded-paragraph-helper-functions.h>
#include <dali-toolkit/internal/text/input-style.h>
#include <dali-toolkit/internal/text/text-run-container.h>
FreeAnchors(mAnchors);
}
-void LogicalModel::ClearBidirectionalParagraphInfo()
+void LogicalModel::ClearBidirectionalParagraphInfo(TextAbstraction::BidirectionalSupport& bidirectionalSupport)
{
- TextAbstraction::BidirectionalSupport bidirectionalSupport = TextAbstraction::BidirectionalSupport::Get();
if(bidirectionalSupport)
{
for(auto it = mBidirectionalParagraphInfo.Begin(),
LogicalModel::~LogicalModel()
{
+ TextAbstraction::BidirectionalSupport bidirectionalSupport = TextAbstraction::BidirectionalSupport::Get();
+ if(bidirectionalSupport)
+ {
+ ClearBidirectionalParagraphInfo(bidirectionalSupport);
+ }
ClearFontDescriptionRuns();
ClearEmbeddedImages();
- ClearBidirectionalParagraphInfo();
}
LogicalModel::LogicalModel()
#include <dali-toolkit/internal/text/anchor.h>
#include <dali-toolkit/internal/text/bidirectional-line-info-run.h>
#include <dali-toolkit/internal/text/bidirectional-paragraph-info-run.h>
+#include <dali-toolkit/internal/text/bidirectional-support.h>
#include <dali-toolkit/internal/text/bounded-paragraph-run.h>
#include <dali-toolkit/internal/text/character-spacing-character-run.h>
#include <dali-toolkit/internal/text/color-run.h>
/**
* @brief Clears bidirectional paragraph info.
+ * @param[in] bidirectionalSupport BidirectionalSupport to clear information.
*/
- void ClearBidirectionalParagraphInfo();
+ void ClearBidirectionalParagraphInfo(TextAbstraction::BidirectionalSupport& bidirectionalSupport);
protected:
/**