Fixed prevent
authorYunji Park <yunji19.park@samsung.com>
Wed, 3 Apr 2013 07:08:47 +0000 (16:08 +0900)
committerYunji Park <yunji19.park@samsung.com>
Wed, 3 Apr 2013 07:08:47 +0000 (16:08 +0900)
Change-Id: Ifb40533afba66ce3298b7337c1f4f9b4d69d5c68

src/graphics/text/FGrp_TextTextComposite.cpp

index 80db4f8..39a3fc7 100644 (file)
@@ -735,10 +735,7 @@ TextComposite::Draw(_CanvasImpl& canvasImpl, FloatRectangle& displayRect, int st
                }
 
                pTextElement = static_cast < TextElement* >(pEnum->GetCurrent());
-               if (pTextElement == null)
-               {
-                       break;
-               }
+               SysTryCatch(NID_GRP, pTextElement, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Fail to get element.");
 
                textIndexFromElementOffset = pTextElement->GetValue(SET_TEXT_OFFSET);
                currentLength = Math::Min(textLength, pTextElement->GetTextLength());
@@ -949,10 +946,7 @@ TextComposite::DrawWithBaseline(_CanvasImpl& canvasImpl, FloatRectangle& display
                }
 
                pTextElement = static_cast < TextElement* >(pEnum->GetCurrent());
-               if (pTextElement == null)
-               {
-                       break;
-               }
+               SysTryCatch(NID_GRP, pTextElement, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Fail to get element.");
 
                textIndexFromElementOffset = pTextElement->GetValue(SET_TEXT_OFFSET);
                currentLength = Math::Min(textLength, pTextElement->GetTextLength());
@@ -1023,6 +1017,7 @@ TextComposite::DrawBlock(_CanvasImpl& canvasImpl, const FloatRectangle& displayR
 
        _FloatPair currentGap;
        IEnumeratorT<_FloatPair >* pGapEnum = pGapList->GetEnumeratorN();
+
        for (int i = 0; i <= blockStartTextIndex; i++)
        {
                pGapEnum->MoveNext();
@@ -3489,7 +3484,7 @@ TextComposite::GetTextExtentList(TextLine* pTextLine) const
                                else
                                {
                                        _FontImpl* pFontImpl = _FontImpl::GetInstance(*const_cast < Font* >(pSimpleText->GetFont()));
-                                       SysTryReturn(NID_GRP, pFontImpl, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Fail to get native font instance.");
+                                       SysTryCatch(NID_GRP, pFontImpl, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Fail to get native font instance.");
 
                                        Collection::ArrayListT<_FloatPair> pCurrentElementGapListF;
 
@@ -3551,6 +3546,11 @@ TextComposite::GetTextExtentList(TextLine* pTextLine) const
        Release(pEnum);
 
        return E_SUCCESS;
+
+CATCH:
+       Release(pEnum);
+
+       return r;
 }
 
 int
@@ -4993,6 +4993,8 @@ TextComposite::GetDisplayableText(FloatRectangle displayRect, TextObjectActionTy
 {
        int firstDisplayLineIndex = __pCurrentTextColumn->GetFirstDisplayLineIndex();
        TextLine* pTextLine = __pCurrentTextColumn->GetTextLine(firstDisplayLineIndex);
+       SysTryReturn(NID_GRP, pTextLine, L"", E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid. (firstDisplayLineIndex = %d)", firstDisplayLineIndex);
+
        int firstDisplayTextIndex = pTextLine->GetTextOffset();
        int displayableTextLength = 0;
        int displayableLineCount = __pCurrentTextColumn->CalculateDisplayableLineCount(displayRect, action);
@@ -5001,10 +5003,13 @@ TextComposite::GetDisplayableText(FloatRectangle displayRect, TextObjectActionTy
        for (int i = firstDisplayLineIndex; i < lastDisplayLineIndex; i++)
        {
                pTextLine = __pCurrentTextColumn->GetTextLine(i);
+               SysTryReturn(NID_GRP, pTextLine, L"", E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid. (line index = %d)", i);
+
                displayableTextLength += pTextLine->GetTextLength();
        }
 
        pTextLine = __pCurrentTextColumn->GetTextLine(lastDisplayLineIndex);
+       SysTryReturn(NID_GRP, pTextLine, L"", E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid. (lastDisplayLineIndex = %d)", lastDisplayLineIndex);
 
        int lineOffset = pTextLine->GetTextOffset();
        int lineLength = pTextLine->GetTextLength();
@@ -5145,4 +5150,3 @@ TextComposite::UpdateTextSweepInfo(TextObjectSweepInfo* pTextSweepInfo)
 }
 
 }}} // Tizen::Graphics::_Text
-