X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flogical-model-impl.cpp;h=66c6d8933efbc37daff2661d39eebd5d5458cb9b;hp=b9921c2b1e424e847e06bdc79e53f5eb8f30cd14;hb=204a8ff506d634e38af6838009f55fa5e07118fe;hpb=f1fd8ae285533109596e90f5598e91c5ce009659 diff --git a/dali-toolkit/internal/text/logical-model-impl.cpp b/dali-toolkit/internal/text/logical-model-impl.cpp old mode 100644 new mode 100755 index b9921c2..66c6d89 --- a/dali-toolkit/internal/text/logical-model-impl.cpp +++ b/dali-toolkit/internal/text/logical-model-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -38,12 +38,26 @@ void FreeFontFamilyNames( Vector& fontDescriptionRuns ) it != endIt; ++it ) { - delete (*it).familyName; + delete[] (*it).familyName; } fontDescriptionRuns.Clear(); } +void FreeEmbeddedItems( Vector& embeddedItem ) +{ + for( Vector::Iterator it = embeddedItem.Begin(), + endIt = embeddedItem.End(); + it != endIt; + ++it ) + { + EmbeddedItem& item = *it; + delete[] item.url; + } + + embeddedItem.Clear(); +} + LogicalModelPtr LogicalModel::New() { return LogicalModelPtr( new LogicalModel() ); @@ -53,9 +67,10 @@ Script LogicalModel::GetScript( CharacterIndex characterIndex ) const { // If this operation is too slow, consider a binary search. + const ScriptRun* const scriptRunBuffer = mScriptRuns.Begin(); for( Length index = 0u, length = mScriptRuns.Count(); index < length; ++index ) { - const ScriptRun* const scriptRun = mScriptRuns.Begin() + index; + const ScriptRun* const scriptRun = scriptRunBuffer + index; if( ( scriptRun->characterRun.characterIndex <= characterIndex ) && ( characterIndex < scriptRun->characterRun.characterIndex + scriptRun->characterRun.numberOfCharacters ) ) @@ -379,7 +394,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) const FontDescriptionRun& fontDescriptionRun = *( fontDescriptionRunsBuffer + nameIndex ); style.familyName = std::string( fontDescriptionRun.familyName, fontDescriptionRun.familyLength ); - style.familyDefined = true; + style.isFamilyDefined = true; } // Set the font's weight if it's overriden. @@ -388,7 +403,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) const FontDescriptionRun& fontDescriptionRun = *( fontDescriptionRunsBuffer + weightIndex ); style.weight = fontDescriptionRun.weight; - style.weightDefined = true; + style.isWeightDefined = true; } // Set the font's width if it's overriden. @@ -397,7 +412,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) const FontDescriptionRun& fontDescriptionRun = *( fontDescriptionRunsBuffer + widthIndex ); style.width = fontDescriptionRun.width; - style.widthDefined = true; + style.isWidthDefined = true; } // Set the font's slant if it's overriden. @@ -406,7 +421,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) const FontDescriptionRun& fontDescriptionRun = *( fontDescriptionRunsBuffer + slantIndex ); style.slant = fontDescriptionRun.slant; - style.slantDefined = true; + style.isSlantDefined = true; } // Set the font's size if it's overriden. @@ -415,7 +430,7 @@ void LogicalModel::RetrieveStyle( CharacterIndex index, InputStyle& style ) const FontDescriptionRun& fontDescriptionRun = *( fontDescriptionRunsBuffer + sizeIndex ); style.size = static_cast( fontDescriptionRun.size ) / 64.f; - style.sizeDefined = true; + style.isSizeDefined = true; } } @@ -549,9 +564,15 @@ void LogicalModel::FindParagraphs( CharacterIndex index, } } +void LogicalModel::ClearEmbeddedImages() +{ + FreeEmbeddedItems( mEmbeddedItems ); +} + LogicalModel::~LogicalModel() { ClearFontDescriptionRuns(); + ClearEmbeddedImages(); } LogicalModel::LogicalModel()