Re-land else-after-returns
authorTom Sepez <tsepez@chromium.org>
Wed, 22 Jul 2015 22:14:14 +0000 (15:14 -0700)
committerTom Sepez <tsepez@chromium.org>
Wed, 22 Jul 2015 22:14:14 +0000 (15:14 -0700)
Revert "Revert "Fix else-after-returns throughout pdfium.""
This reverts commit 4eb4d7f6c707cc2c23c806aa540d055c8832b55d.

Fix one naming conflict.

TBR=thestig@chromium.org

Review URL: https://codereview.chromium.org/1243953004 .

78 files changed:
core/include/fpdftext/fpdf_text.h
core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp
core/src/fpdfapi/fpdf_font/fpdf_font.cpp
core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp
core/src/fpdfapi/fpdf_page/fpdf_page.cpp
core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp
core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
core/src/fpdfapi/fpdf_parser/fpdf_parser_utility.cpp
core/src/fpdfapi/fpdf_render/fpdf_render.cpp
core/src/fpdfapi/fpdf_render/fpdf_render_image.cpp
core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
core/src/fpdfdoc/doc_action.cpp
core/src/fpdfdoc/doc_ap.cpp
core/src/fpdfdoc/doc_basic.cpp
core/src/fpdfdoc/doc_form.cpp
core/src/fpdfdoc/doc_formcontrol.cpp
core/src/fpdfdoc/doc_formfield.cpp
core/src/fpdfdoc/doc_metadata.cpp
core/src/fpdfdoc/doc_ocg.cpp
core/src/fpdfdoc/doc_utils.cpp
core/src/fpdfdoc/doc_vt.cpp
core/src/fpdftext/fpdf_text_int.cpp
core/src/fpdftext/text_int.h
core/src/fxcodec/codec/fx_codec_icc.cpp
core/src/fxcodec/codec/fx_codec_jbig.cpp
core/src/fxcodec/codec/fx_codec_jpeg.cpp
core/src/fxcrt/fx_basic_array.cpp
core/src/fxcrt/fx_basic_bstring.cpp
core/src/fxcrt/fx_basic_util.cpp
core/src/fxcrt/fx_basic_wstring.cpp
core/src/fxge/agg/src/fx_agg_driver.cpp
core/src/fxge/dib/fx_dib_composite.cpp
core/src/fxge/dib/fx_dib_convert.cpp
core/src/fxge/dib/fx_dib_engine.cpp
core/src/fxge/dib/fx_dib_main.cpp
core/src/fxge/dib/fx_dib_transform.cpp
core/src/fxge/ge/fx_ge_device.cpp
core/src/fxge/ge/fx_ge_font.cpp
core/src/fxge/ge/fx_ge_fontmap.cpp
core/src/fxge/ge/fx_ge_linux.cpp
core/src/fxge/ge/fx_ge_path.cpp
core/src/fxge/ge/fx_ge_text.cpp
core/src/fxge/skia/fx_skia_blitter_new.cpp
core/src/fxge/win32/fx_win32_device.cpp
core/src/fxge/win32/fx_win32_dib.cpp
core/src/fxge/win32/fx_win32_dwrite.cpp
core/src/fxge/win32/fx_win32_gdipext.cpp
core/src/fxge/win32/fx_win32_print.cpp
fpdfsdk/src/formfiller/FFL_ComboBox.cpp
fpdfsdk/src/formfiller/FFL_IFormFiller.cpp
fpdfsdk/src/formfiller/FFL_TextField.cpp
fpdfsdk/src/fpdf_ext.cpp
fpdfsdk/src/fpdfdoc.cpp
fpdfsdk/src/fpdfppo.cpp
fpdfsdk/src/fpdfsave.cpp
fpdfsdk/src/fsdk_annothandler.cpp
fpdfsdk/src/fsdk_baseannot.cpp
fpdfsdk/src/fsdk_baseform.cpp
fpdfsdk/src/fsdk_mgr.cpp
fpdfsdk/src/fsdk_rendercontext.cpp
fpdfsdk/src/fxedit/fxet_edit.cpp
fpdfsdk/src/javascript/Document.cpp
fpdfsdk/src/javascript/Field.cpp
fpdfsdk/src/javascript/JS_EventHandler.cpp
fpdfsdk/src/javascript/JS_GlobalData.cpp
fpdfsdk/src/javascript/JS_Runtime.cpp
fpdfsdk/src/javascript/PublicMethods.cpp
fpdfsdk/src/javascript/global.cpp
fpdfsdk/src/javascript/util.cpp
fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp
fpdfsdk/src/pdfwindow/PWL_FontMap.cpp
fpdfsdk/src/pdfwindow/PWL_Wnd.cpp

index ad5888e..04922c4 100644 (file)
@@ -100,8 +100,6 @@ public:
 
     virtual int                                GetIndexAtPos(FX_FLOAT x, FX_FLOAT y, FX_FLOAT xTorelance, FX_FLOAT yTorelance) const = 0;
 
-    virtual    int                             GetOrderByDirection(int index, int direction) const = 0;
-
     virtual CFX_WideString     GetTextByRect(const CFX_FloatRect& rect) const = 0;
 
     virtual void                       GetRectsArrayByRect(const CFX_FloatRect& rect, CFX_RectArray& resRectArray) const = 0;
index c37e92d..5a5fb94 100644 (file)
@@ -521,7 +521,8 @@ static FX_WORD FX_GetCsFromLangCode(uint32_t uCode)
         const FX_LANG2CS &charset = gs_FXLang2CharsetTable[iMid];
         if (uCode == charset.uLang) {
             return charset.uCharset;
-        } else if (uCode < charset.uLang) {
+        }
+        if (uCode < charset.uLang) {
             iEnd = iMid - 1;
         } else {
             iStart = iMid + 1;
index 9ed5d8f..8037a8c 100644 (file)
@@ -555,13 +555,12 @@ static FX_DWORD _StringToCode(const CFX_ByteStringC& str)
             result = result * 16 + digit;
         }
         return result;
-    } else {
-        for (int i = 0; i < len; i ++) {
-            if (buf[i] < '0' || buf[i] > '9') {
-                break;
-            }
-            result = result * 10 + buf[i] - '0';
+    }
+    for (int i = 0; i < len; i ++) {
+        if (buf[i] < '0' || buf[i] > '9') {
+            break;
         }
+        result = result * 10 + buf[i] - '0';
     }
     return result;
 }
index 7a01bba..f70b9ec 100644 (file)
@@ -641,22 +641,23 @@ int CPDF_CMap::AppendChar(FX_CHAR* str, FX_DWORD charcode) const
                 }
                 str[iSize - 1] = (uint8_t)charcode;
                 return iSize;
-            } else if (charcode < 0x10000) {
+            }
+            if (charcode < 0x10000) {
                 str[0] = (uint8_t)(charcode >> 8);
                 str[1] = (uint8_t)charcode;
                 return 2;
-            } else if (charcode < 0x1000000) {
+            }
+            if (charcode < 0x1000000) {
                 str[0] = (uint8_t)(charcode >> 16);
                 str[1] = (uint8_t)(charcode >> 8);
                 str[2] = (uint8_t)charcode;
                 return 3;
-            } else {
-                str[0] = (uint8_t)(charcode >> 24);
-                str[1] = (uint8_t)(charcode >> 16);
-                str[2] = (uint8_t)(charcode >> 8);
-                str[3] = (uint8_t)charcode;
-                return 4;
             }
+            str[0] = (uint8_t)(charcode >> 24);
+            str[1] = (uint8_t)(charcode >> 16);
+            str[2] = (uint8_t)(charcode >> 8);
+            str[3] = (uint8_t)charcode;
+            return 4;
     }
     return 0;
 }
@@ -794,9 +795,8 @@ FX_WCHAR CPDF_CIDFont::_UnicodeFromCharCode(FX_DWORD charcode) const
 #endif
         if (m_pCMap->m_pEmbedMap) {
             return _EmbeddedUnicodeFromCharcode(m_pCMap->m_pEmbedMap, m_pCMap->m_Charset, charcode);
-        } else {
-            return 0;
         }
+        return 0;
     }
     return m_pCID2UnicodeMap->UnicodeFromCID(CIDFromCharCode(charcode));
 }
@@ -826,7 +826,8 @@ FX_DWORD CPDF_CIDFont::_CharCodeFromUnicode(FX_WCHAR unicode) const
 
     if (unicode < 0x80) {
         return static_cast<FX_DWORD>(unicode);
-    } else if (m_pCMap->m_Coding == CIDCODING_CID) {
+    }
+    if (m_pCMap->m_Coding == CIDCODING_CID) {
         return 0;
     }
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
@@ -834,14 +835,15 @@ FX_DWORD CPDF_CIDFont::_CharCodeFromUnicode(FX_WCHAR unicode) const
     int ret = FXSYS_WideCharToMultiByte(g_CharsetCPs[m_pCMap->m_Coding], 0, &unicode, 1, (char*)buffer, 4, NULL, NULL);
     if (ret == 1) {
         return buffer[0];
-    } else if (ret == 2) {
+    }
+    if (ret == 2) {
         return buffer[0] * 256 + buffer[1];
     }
-    return 0;
-#endif
+#else
     if (m_pCMap->m_pEmbedMap) {
         return _EmbeddedCharcodeFromUnicode(m_pCMap->m_pEmbedMap, m_pCMap->m_Charset, unicode);
     }
+#endif
     return 0;
 }
 static void FT_UseCIDCharmap(FXFT_Face face, int coding)
@@ -1234,9 +1236,8 @@ int CPDF_CIDFont::GlyphFromCharCode(FX_DWORD charcode, FX_BOOL *pVertGlyph)
             }
             if (index == 0 || index == 0xffff) {
                 return charcode == 0 ? -1 : (int)charcode;
-            } else {
-                return index;
             }
+            return index;
         }
         if (m_Charset == CIDSET_JAPAN1) {
             if (unicode == '\\') {
index db3966e..c0cdb22 100644 (file)
@@ -754,18 +754,17 @@ void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause)
 }
 int CPDF_PageObjects::EstimateParseProgress() const
 {
-    if (m_pParser == NULL) {
+    if (!m_pParser) {
         return m_ParseState == PDF_CONTENT_PARSED ? 100 : 0;
     }
     return m_pParser->EstimateProgress();
 }
 FX_POSITION CPDF_PageObjects::InsertObject(FX_POSITION posInsertAfter, CPDF_PageObject* pNewObject)
 {
-    if (posInsertAfter == NULL) {
+    if (!posInsertAfter) {
         return m_ObjectList.AddHead(pNewObject);
-    } else {
-        return m_ObjectList.InsertAfter(posInsertAfter, pNewObject);
     }
+    return m_ObjectList.InsertAfter(posInsertAfter, pNewObject);
 }
 int CPDF_PageObjects::GetObjectIndex(CPDF_PageObject* pObj) const
 {
index 101a197..198054e 100644 (file)
@@ -103,14 +103,15 @@ FX_BOOL CPDF_DeviceCS::SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B
         pBuf[1] = G;
         pBuf[2] = B;
         return TRUE;
-    } else if (m_Family == PDFCS_DEVICEGRAY) {
+    }
+    if (m_Family == PDFCS_DEVICEGRAY) {
         if (R == G && R == B) {
             *pBuf = R;
             return TRUE;
-        } else {
-            return FALSE;
         }
-    } else if (m_Family == PDFCS_DEVICECMYK) {
+        return FALSE;
+    }
+    if (m_Family == PDFCS_DEVICECMYK) {
         sRGB_to_AdobeCMYK(R, G, B, pBuf[0], pBuf[1], pBuf[2], pBuf[3]);
         return TRUE;
     }
@@ -121,9 +122,8 @@ FX_BOOL CPDF_DeviceCS::v_SetCMYK(FX_FLOAT* pBuf, FX_FLOAT c, FX_FLOAT m, FX_FLOA
     if (m_Family == PDFCS_DEVICERGB) {
         AdobeCMYK_to_sRGB(c, m, y, k, pBuf[0], pBuf[1], pBuf[2]);
         return TRUE;
-    } else if (m_Family == PDFCS_DEVICEGRAY) {
-        return FALSE;
-    } else if (m_Family == PDFCS_DEVICECMYK) {
+    }
+    if (m_Family == PDFCS_DEVICECMYK) {
         pBuf[0] = c;
         pBuf[1] = m;
         pBuf[2] = y;
@@ -314,9 +314,8 @@ FX_BOOL CPDF_CalGray::SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B)
     if (R == G && R == B) {
         *pBuf = R;
         return TRUE;
-    } else {
-        return FALSE;
     }
+    return FALSE;
 }
 void CPDF_CalGray::TranslateImageLine(uint8_t* pDestBuf, const uint8_t* pSrcBuf, int pixels, int image_width, int image_height, FX_BOOL bTransMask) const
 {
@@ -993,10 +992,9 @@ FX_BOOL CPDF_SeparationCS::GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_F
     if (m_pAltCS) {
         m_pAltCS->GetRGB(results, R, G, B);
         return TRUE;
-    } else {
-        R = G = B = 0;
-        return FALSE;
     }
+    R = G = B = 0;
+    return FALSE;
 }
 void CPDF_SeparationCS::EnableStdConversion(FX_BOOL bEnabled)
 {
index 5b5703b..892e215 100644 (file)
@@ -337,7 +337,8 @@ FX_BOOL CPDF_StreamContentParser::OnOperator(const FX_CHAR* op)
         if (compare == 0) {
             (this->*g_OpCodes[middle].m_OpHandler)();
             return TRUE;
-        } else if (compare < 0) {
+        }
+        if (compare < 0) {
             high = middle - 1;
         } else {
             low = middle + 1;
index ebd4d83..37ffea9 100644 (file)
@@ -288,19 +288,25 @@ FX_DWORD PDF_DecodeInlineStream(const uint8_t* src_buf, FX_DWORD limit,
     if (decoder == FX_BSTRC("CCITTFaxDecode") || decoder == FX_BSTRC("CCF")) {
         ICodec_ScanlineDecoder* pDecoder = FPDFAPI_CreateFaxDecoder(src_buf, limit, width, height, pParam);
         return _DecodeAllScanlines(pDecoder, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("ASCII85Decode") || decoder == FX_BSTRC("A85")) {
+    }
+    if (decoder == FX_BSTRC("ASCII85Decode") || decoder == FX_BSTRC("A85")) {
         return _A85Decode(src_buf, limit, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("ASCIIHexDecode") || decoder == FX_BSTRC("AHx")) {
+    }
+    if (decoder == FX_BSTRC("ASCIIHexDecode") || decoder == FX_BSTRC("AHx")) {
         return _HexDecode(src_buf, limit, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("FlateDecode") || decoder == FX_BSTRC("Fl")) {
+    }
+    if (decoder == FX_BSTRC("FlateDecode") || decoder == FX_BSTRC("Fl")) {
         return FPDFAPI_FlateOrLZWDecode(FALSE, src_buf, limit, pParam, dest_size, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("LZWDecode") || decoder == FX_BSTRC("LZW")) {
+    }
+    if (decoder == FX_BSTRC("LZWDecode") || decoder == FX_BSTRC("LZW")) {
         return FPDFAPI_FlateOrLZWDecode(TRUE, src_buf, limit, pParam, 0, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("DCTDecode") || decoder == FX_BSTRC("DCT")) {
+    }
+    if (decoder == FX_BSTRC("DCTDecode") || decoder == FX_BSTRC("DCT")) {
         ICodec_ScanlineDecoder* pDecoder = CPDF_ModuleMgr::Get()->GetJpegModule()->CreateDecoder(
-                                               src_buf, limit, width, height, 0, pParam ? pParam->GetInteger(FX_BSTRC("ColorTransform"), 1) : 1);
+            src_buf, limit, width, height, 0, pParam ? pParam->GetInteger(FX_BSTRC("ColorTransform"), 1) : 1);
         return _DecodeAllScanlines(pDecoder, dest_buf, dest_size);
-    } else if (decoder == FX_BSTRC("RunLengthDecode") || decoder == FX_BSTRC("RL")) {
+    }
+    if (decoder == FX_BSTRC("RunLengthDecode") || decoder == FX_BSTRC("RL")) {
         return RunLengthDecode(src_buf, limit, dest_buf, dest_size);
     }
     dest_size = 0;
index 9736c3d..47c08fb 100644 (file)
@@ -311,9 +311,8 @@ FX_BOOL PDF_DataDecode(const uint8_t* src_buf, FX_DWORD src_size, const CPDF_Dic
                 dest_size = last_size;
                 pImageParms = pParam;
                 return TRUE;
-            } else {
-                offset = FPDFAPI_FlateOrLZWDecode(FALSE, last_buf, last_size, pParam, estimated_size, new_buf, new_size);
             }
+            offset = FPDFAPI_FlateOrLZWDecode(FALSE, last_buf, last_size, pParam, estimated_size, new_buf, new_size);
         } else if (decoder == FX_BSTRC("LZWDecode") || decoder == FX_BSTRC("LZW")) {
             offset = FPDFAPI_FlateOrLZWDecode(TRUE, last_buf, last_size, pParam, estimated_size, new_buf, new_size);
         } else if (decoder == FX_BSTRC("ASCII85Decode") || decoder == FX_BSTRC("A85")) {
index 0471250..f630ea5 100644 (file)
@@ -181,10 +181,9 @@ CFX_WideString     FPDF_FileSpec_GetWin32Path(const CPDF_Object* pFileSpec)
         result += ':';
         result += ChangeSlash(wsFileName.c_str() + 2);
         return result;
-    } else {
-        CFX_WideString result;
-        result += '\\';
-        result += ChangeSlash(wsFileName.c_str());
-        return result;
     }
+    CFX_WideString result;
+    result += '\\';
+    result += ChangeSlash(wsFileName.c_str());
+    return result;
 }
index a3e409d..c7d1dec 100644 (file)
@@ -160,8 +160,8 @@ CPDF_Array* CPDF_Object::GetArray() const
 {
     if (m_Type == PDFOBJ_ARRAY)
         return (CPDF_Array*)this;
-    else
-        return NULL;
+
+    return NULL;
 }
 void CPDF_Object::SetString(const CFX_ByteString& str)
 {
@@ -201,7 +201,8 @@ FX_BOOL CPDF_Object::IsIdentical(CPDF_Object* pOther) const
     if (pOther->m_Type != m_Type) {
         if (m_Type == PDFOBJ_REFERENCE && GetDirect()) {
             return GetDirect()->IsIdentical(pOther);
-        } else if (pOther->m_Type == PDFOBJ_REFERENCE) {
+        }
+        if (pOther->m_Type == PDFOBJ_REFERENCE) {
             return IsIdentical(pOther->GetDirect());
         }
         return FALSE;
@@ -285,27 +286,22 @@ CPDF_Object* CPDF_Object::CloneInternal(FX_BOOL bDirect, CFX_MapPtrToPtr* visite
                 CPDF_StreamAcc acc;
                 acc.LoadAllData(pThis, TRUE);
                 FX_DWORD streamSize = acc.GetSize();
-                CPDF_Stream* pObj;
-                if (pThis->GetDict())
-                    pObj = new CPDF_Stream(acc.DetachData(), streamSize, (CPDF_Dictionary*)((CPDF_Object*)pThis->GetDict())->CloneInternal(bDirect, visited));
-                else
-                    pObj = new CPDF_Stream(acc.DetachData(), streamSize, NULL);
-                return pObj;
+                CPDF_Dictionary* pDict = pThis->GetDict();
+                if (pDict)
+                    pDict = (CPDF_Dictionary*)((CPDF_Object*)pDict)->CloneInternal(bDirect, visited);
+                return new CPDF_Stream(acc.DetachData(), streamSize, pDict);
             }
         case PDFOBJ_REFERENCE: {
                 CPDF_Reference* pRef = (CPDF_Reference*)this;
                 FX_DWORD obj_num = pRef->m_RefObjNum;
                 if (bDirect && !visited->GetValueAt((void*)(uintptr_t)obj_num)) {
                     visited->SetAt((void*)(uintptr_t)obj_num, (void*)1);
-                    CPDF_Object* ret;
-                    if (pRef->GetDirect())
-                        ret = pRef->GetDirect()->CloneInternal(TRUE, visited);
-                    else
-                        ret = NULL;
-                    return ret;
-                } else {
-                    return new CPDF_Reference(pRef->m_pObjList, obj_num);
+                    if (!pRef->GetDirect())
+                        return nullptr;
+
+                    return pRef->GetDirect()->CloneInternal(TRUE, visited);
                 }
+                return new CPDF_Reference(pRef->m_pObjList, obj_num);
             }
     }
     return NULL;
@@ -321,12 +317,14 @@ CFX_WideString CPDF_Object::GetUnicodeText(CFX_CharMap* pCharMap) const
 {
     if (m_Type == PDFOBJ_STRING) {
         return PDF_DecodeText(((CPDF_String*)this)->m_String, pCharMap);
-    } else if (m_Type == PDFOBJ_STREAM) {
+    }
+    if (m_Type == PDFOBJ_STREAM) {
         CPDF_StreamAcc stream;
         stream.LoadAllData((CPDF_Stream*)this, FALSE);
         CFX_WideString result = PDF_DecodeText(stream.GetData(), stream.GetSize(), pCharMap);
         return result;
-    } else if (m_Type == PDFOBJ_NAME) {
+    }
+    if (m_Type == PDFOBJ_NAME) {
         return PDF_DecodeText(((CPDF_Name*)this)->m_Name, pCharMap);
     }
     return CFX_WideString();
@@ -427,8 +425,7 @@ CFX_ByteString CPDF_Array::GetString(FX_DWORD i) const
         CPDF_Object* p = (CPDF_Object*)m_Objects.GetAt(i);
         return p->GetString();
     }
-    else
-        return CFX_ByteString();
+    return CFX_ByteString();
 }
 CFX_ByteStringC CPDF_Array::GetConstString(FX_DWORD i) const
 {
@@ -436,8 +433,7 @@ CFX_ByteStringC CPDF_Array::GetConstString(FX_DWORD i) const
         CPDF_Object* p = (CPDF_Object*)m_Objects.GetAt(i);
         return p->GetConstString();
     }
-    else
-        return CFX_ByteStringC();
+    return CFX_ByteStringC();
 }
 int CPDF_Array::GetInteger(FX_DWORD i) const
 {
@@ -458,11 +454,13 @@ FX_FLOAT CPDF_Array::GetNumber(FX_DWORD i) const
 CPDF_Dictionary* CPDF_Array::GetDict(FX_DWORD i) const
 {
     CPDF_Object* p = GetElementValue(i);
-    if (p == NULL) {
+    if (!p) {
         return NULL;
-    } else if (p->GetType() == PDFOBJ_DICTIONARY) {
+    }
+    if (p->GetType() == PDFOBJ_DICTIONARY) {
         return (CPDF_Dictionary*)p;
-    } else if (p->GetType() == PDFOBJ_STREAM) {
+    }
+    if (p->GetType() == PDFOBJ_STREAM) {
         return ((CPDF_Stream*)p)->GetDict();
     }
     return NULL;
@@ -604,19 +602,19 @@ CFX_ByteString CPDF_Dictionary::GetString(const CFX_ByteStringC& key) const
 {
     CPDF_Object* p = NULL;
     m_Map.Lookup(key, (void*&)p);
-    if (p)
+    if (p) {
         return p->GetString();
-    else
-        return CFX_ByteString();
+    }
+    return CFX_ByteString();
 }
 CFX_ByteStringC CPDF_Dictionary::GetConstString(const CFX_ByteStringC& key) const
 {
     CPDF_Object* p = NULL;
     m_Map.Lookup(key, (void*&)p);
-    if (p)
+    if (p) {
         return p->GetConstString();
-    else
-        return CFX_ByteStringC();
+    }
+    return CFX_ByteStringC();
 }
 CFX_WideString CPDF_Dictionary::GetUnicodeText(const CFX_ByteStringC& key, CFX_CharMap* pCharMap) const
 {
@@ -647,10 +645,10 @@ CFX_ByteStringC CPDF_Dictionary::GetConstString(const CFX_ByteStringC& key, cons
 {
     CPDF_Object* p = NULL;
     m_Map.Lookup(key, (void*&)p);
-    if (p)
+    if (p) {
         return p->GetConstString();
-    else
-        return CFX_ByteStringC(def);
+    }
+    return CFX_ByteStringC(def);
 }
 int CPDF_Dictionary::GetInteger(const CFX_ByteStringC& key) const
 {
@@ -691,14 +689,16 @@ FX_BOOL CPDF_Dictionary::GetBoolean(const CFX_ByteStringC& key, FX_BOOL bDefault
 CPDF_Dictionary* CPDF_Dictionary::GetDict(const CFX_ByteStringC& key) const
 {
     CPDF_Object* p = GetElementValue(key);
-    if (p == NULL) {
-        return NULL;
-    } else if (p->GetType() == PDFOBJ_DICTIONARY) {
+    if (!p) {
+        return nullptr;
+    }
+    if (p->GetType() == PDFOBJ_DICTIONARY) {
         return (CPDF_Dictionary*)p;
-    } else if (p->GetType() == PDFOBJ_STREAM) {
+    }
+    if (p->GetType() == PDFOBJ_STREAM) {
         return ((CPDF_Stream*)p)->GetDict();
     }
-    return NULL;
+    return nullptr;
 }
 CPDF_Array* CPDF_Dictionary::GetArray(const CFX_ByteStringC& key) const
 {
@@ -1269,12 +1269,11 @@ void CPDF_IndirectObjects::InsertIndirectObject(FX_DWORD objnum, CPDF_Object* pO
     }
     void* value = NULL;
     if (m_IndirectObjs.Lookup((void*)(uintptr_t)objnum, value)) {
-        if (value)
-        {
-            if (pObj->GetGenNum() <= ((CPDF_Object*)value)->GetGenNum())
+        if (value) {
+            if (pObj->GetGenNum() <= ((CPDF_Object*)value)->GetGenNum()) {
                 return;
-            else
-                ((CPDF_Object*)value)->Destroy();
+            }
+            ((CPDF_Object*)value)->Destroy();
          }
     }
     pObj->m_ObjNum = objnum;
index f7174f7..854be75 100644 (file)
@@ -1993,21 +1993,16 @@ CFX_ByteString CPDF_SyntaxParser::ReadHexString()
 void CPDF_SyntaxParser::ToNextLine()
 {
     uint8_t ch;
-    while (1) {
-        if (!GetNextChar(ch)) {
-            return;
-        }
+    while (GetNextChar(ch)) {
         if (ch == '\n') {
-            return;
+            break;
         }
         if (ch == '\r') {
             GetNextChar(ch);
-            if (ch == '\n') {
-                return;
-            } else {
-                m_Pos --;
-                return;
+            if (ch != '\n') {
+                --m_Pos;
             }
+            break;
         }
     }
 }
@@ -2079,20 +2074,13 @@ CPDF_Object* CPDF_SyntaxParser::GetObject(CPDF_IndirectObjects* pObjList, FX_DWO
                     return (CPDF_Object*)PDFOBJ_REFERENCE;
                 }
                 return new CPDF_Reference(pObjList, objnum);
-            } else {
-                m_Pos = SavedPos;
-                if (bTypeOnly) {
-                    return (CPDF_Object*)PDFOBJ_NUMBER;
-                }
-                return CPDF_Number::Create(word);
             }
-        } else {
-            m_Pos = SavedPos;
-            if (bTypeOnly) {
-                return (CPDF_Object*)PDFOBJ_NUMBER;
-            }
-            return CPDF_Number::Create(word);
         }
+        m_Pos = SavedPos;
+        if (bTypeOnly) {
+            return (CPDF_Object*)PDFOBJ_NUMBER;
+        }
+        return CPDF_Number::Create(word);
     }
     if (word == FX_BSTRC("true") || word == FX_BSTRC("false")) {
         if (bTypeOnly) {
@@ -2252,25 +2240,18 @@ CPDF_Object* CPDF_SyntaxParser::GetObjectByStrict(CPDF_IndirectObjects* pObjList
         if (bIsNumber) {
             CFX_ByteString nextword2 = GetNextWord(bIsNumber);
             if (nextword2 == FX_BSTRC("R")) {
-                FX_DWORD objnum = FXSYS_atoi(word);
                 if (bTypeOnly) {
                     return (CPDF_Object*)PDFOBJ_REFERENCE;
                 }
+                FX_DWORD objnum = FXSYS_atoi(word);
                 return new CPDF_Reference(pObjList, objnum);
-            } else {
-                m_Pos = SavedPos;
-                if (bTypeOnly) {
-                    return (CPDF_Object*)PDFOBJ_NUMBER;
-                }
-                return CPDF_Number::Create(word);
             }
-        } else {
-            m_Pos = SavedPos;
-            if (bTypeOnly) {
-                return (CPDF_Object*)PDFOBJ_NUMBER;
-            }
-            return CPDF_Number::Create(word);
         }
+        m_Pos = SavedPos;
+        if (bTypeOnly) {
+            return (CPDF_Object*)PDFOBJ_NUMBER;
+        }
+        return CPDF_Number::Create(word);
     }
     if (word == FX_BSTRC("true") || word == FX_BSTRC("false")) {
         if (bTypeOnly) {
@@ -3140,21 +3121,20 @@ FX_BOOL CPDF_DataAvail::CheckAcroFormSubObject(IFX_DownloadHints* pHints)
             m_objs_array.RemoveAll();
         }
         return bRet;
-    } else {
-        CFX_PtrArray new_objs_array;
-        FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
-        if (bRet) {
-            int32_t iSize = m_arrayAcroforms.GetSize();
-            for (int32_t i = 0; i < iSize; ++i) {
-                ((CPDF_Object *)m_arrayAcroforms.GetAt(i))->Release();
-            }
-            m_arrayAcroforms.RemoveAll();
-        } else {
-            m_objs_array.RemoveAll();
-            m_objs_array.Append(new_objs_array);
+    }
+    CFX_PtrArray new_objs_array;
+    FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
+    if (bRet) {
+        int32_t iSize = m_arrayAcroforms.GetSize();
+        for (int32_t i = 0; i < iSize; ++i) {
+            ((CPDF_Object *)m_arrayAcroforms.GetAt(i))->Release();
         }
-        return bRet;
+        m_arrayAcroforms.RemoveAll();
+    } else {
+        m_objs_array.RemoveAll();
+        m_objs_array.Append(new_objs_array);
     }
+    return bRet;
 }
 FX_BOOL CPDF_DataAvail::CheckAcroForm(IFX_DownloadHints* pHints)
 {
@@ -3208,16 +3188,14 @@ FX_BOOL CPDF_DataAvail::CheckDocStatus(IFX_DownloadHints *pHints)
         case PDF_DATAAVAIL_PAGETREE:
             if (m_bTotalLoadPageTree) {
                 return CheckPages(pHints);
-            } else {
-                return LoadDocPages(pHints);
             }
+            return LoadDocPages(pHints);
         case PDF_DATAAVAIL_PAGE:
             if (m_bTotalLoadPageTree) {
                 return CheckPage(pHints);
-            } else {
-                m_docStatus = PDF_DATAAVAIL_PAGE_LATERLOAD;
-                return TRUE;
             }
+            m_docStatus = PDF_DATAAVAIL_PAGE_LATERLOAD;
+            return TRUE;
         case PDF_DATAAVAIL_ERROR:
             return LoadAllFile(pHints);
         case PDF_DATAAVAIL_PAGE_LATERLOAD:
@@ -3761,10 +3739,9 @@ FX_BOOL CPDF_DataAvail::CheckEnd(IFX_DownloadHints* pHints)
             SetStartOffset(m_dwXRefOffset);
             m_docStatus = PDF_DATAAVAIL_CROSSREF;
             return TRUE;
-        } else {
-            m_docStatus = PDF_DATAAVAIL_LOADALLFILE;
-            return TRUE;
         }
+        m_docStatus = PDF_DATAAVAIL_LOADALLFILE;
+        return TRUE;
     }
     pHints->AddSegment(req_pos, dwSize);
     return FALSE;
@@ -3799,9 +3776,6 @@ int32_t CPDF_DataAvail::CheckCrossRefStream(IFX_DownloadHints* pHints, FX_FILESI
                 xref_offset = pObj->GetDict()->GetInteger(FX_BSTRC("Prev"));
                 pObj->Release();
                 return 1;
-            } else {
-                pObj->Release();
-                return -1;
             }
         }
         pObj->Release();
@@ -3955,7 +3929,8 @@ FX_BOOL CPDF_DataAvail::CheckAllCrossRefStream(IFX_DownloadHints *pHints)
             m_Pos = xref_offset;
         }
         return TRUE;
-    } else if (nRet == -1) {
+    }
+    if (nRet == -1) {
         m_docStatus = PDF_DATAAVAIL_ERROR;
     }
     return FALSE;
@@ -4058,11 +4033,10 @@ FX_BOOL CPDF_DataAvail::CheckTrailer(IFX_DownloadHints* pHints)
                 }
             }
             return TRUE;
-        } else {
-            m_dwPrevXRefOffset = 0;
-            m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND;
-            pTrailer->Release();
         }
+        m_dwPrevXRefOffset = 0;
+        m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND;
+        pTrailer->Release();
         return TRUE;
     }
     pHints->AddSegment(m_Pos, iTrailerSize);
@@ -4295,9 +4269,8 @@ FX_BOOL CPDF_DataAvail::LoadDocPages(IFX_DownloadHints* pHints)
     if (CheckPageCount(pHints)) {
         m_docStatus = PDF_DATAAVAIL_PAGE;
         return TRUE;
-    } else {
-        m_bTotalLoadPageTree = TRUE;
     }
+    m_bTotalLoadPageTree = TRUE;
     return FALSE;
 }
 FX_BOOL CPDF_DataAvail::LoadPages(IFX_DownloadHints* pHints)
@@ -4363,15 +4336,14 @@ FX_BOOL CPDF_DataAvail::CheckPageAnnots(int32_t iPage, IFX_DownloadHints* pHints
             m_objs_array.RemoveAll();
         }
         return bRet;
-    } else {
-        CFX_PtrArray new_objs_array;
-        FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
-        m_objs_array.RemoveAll();
-        if (!bRet) {
-            m_objs_array.Append(new_objs_array);
-        }
-        return bRet;
     }
+    CFX_PtrArray new_objs_array;
+    FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
+    m_objs_array.RemoveAll();
+    if (!bRet) {
+        m_objs_array.Append(new_objs_array);
+    }
+    return bRet;
 }
 FX_BOOL CPDF_DataAvail::CheckLinearizedFirstPage(int32_t iPage, IFX_DownloadHints* pHints)
 {
@@ -4381,10 +4353,10 @@ FX_BOOL CPDF_DataAvail::CheckLinearizedFirstPage(int32_t iPage, IFX_DownloadHint
         }
         m_bAnnotsLoad = TRUE;
     }
-    if (m_bAnnotsLoad)
-        if (!CheckLinearizedData(pHints)) {
+    if (m_bAnnotsLoad) {
+        if (!CheckLinearizedData(pHints))
             return FALSE;
-        }
+    }
     m_bPageLoadedOK = FALSE;
     return TRUE;
 }
@@ -4539,15 +4511,14 @@ FX_BOOL CPDF_DataAvail::CheckResources(IFX_DownloadHints* pHints)
             m_objs_array.RemoveAll();
         }
         return bRet;
-    } else {
-        CFX_PtrArray new_objs_array;
-        FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
-        m_objs_array.RemoveAll();
-        if (!bRet) {
-            m_objs_array.Append(new_objs_array);
-        }
-        return bRet;
     }
+    CFX_PtrArray new_objs_array;
+    FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array);
+    m_objs_array.RemoveAll();
+    if (!bRet) {
+        m_objs_array.Append(new_objs_array);
+    }
+    return bRet;
 }
 void CPDF_DataAvail::GetLinearizedMainXRefInfo(FX_FILESIZE *pPos, FX_DWORD *pSize)
 {
@@ -4604,16 +4575,15 @@ FX_BOOL CPDF_SortObjNumArray::Find(FX_DWORD dwObjNum)
 }
 FX_BOOL CPDF_SortObjNumArray::BinarySearch(FX_DWORD value, int32_t &iNext)
 {
-    int32_t iLen = m_number_array.GetSize();
     int32_t iLow = 0;
-    int32_t iHigh = iLen - 1;
-    int32_t iMid = 0;
+    int32_t iHigh = m_number_array.GetSize() - 1;
     while (iLow <= iHigh) {
-        iMid = (iLow + iHigh) / 2;
+        int32_t iMid = (iLow + iHigh) / 2;
         if (m_number_array.GetAt(iMid) == value) {
             iNext = iMid;
             return TRUE;
-        } else if (m_number_array.GetAt(iMid) > value) {
+        }
+        if (m_number_array.GetAt(iMid) > value) {
             iHigh = iMid - 1;
         } else if (m_number_array.GetAt(iMid) < value) {
             iLow = iMid + 1;
index 6d425de..4903312 100644 (file)
@@ -165,7 +165,8 @@ CFX_ByteStringC CPDF_SimpleParser::GetWord()
             m_dwCurPos ++;
         }
         return CFX_ByteStringC(pStart, (FX_STRSIZE)(m_dwCurPos - (pStart - m_pData)));
-    } else if (dwSize == 1 && pStart[0] == '(') {
+    }
+    if (dwSize == 1 && pStart[0] == '(') {
         int level = 1;
         while (m_dwCurPos < m_dwSize) {
             if (m_pData[m_dwCurPos] == ')') {
index 12f6063..f8b5991 100644 (file)
@@ -551,7 +551,8 @@ FX_ARGB CPDF_RenderStatus::GetFillArgb(const CPDF_PageObject* pObj, FX_BOOL bTyp
     CPDF_ColorStateData* pColorData = (CPDF_ColorStateData*)(const CPDF_ColorStateData*)pObj->m_ColorState;
     if (m_pType3Char && !bType3 && (!m_pType3Char->m_bColored || (m_pType3Char->m_bColored && (!pColorData || pColorData->m_FillColor.IsNull())))) {
         return m_T3FillColor;
-    } else if (!pColorData || pColorData->m_FillColor.IsNull()) {
+    }
+    if (!pColorData || pColorData->m_FillColor.IsNull()) {
         pColorData = (CPDF_ColorStateData*)(const CPDF_ColorStateData*)m_InitialStates.m_ColorState;
     }
     FX_COLORREF rgb = pColorData->m_FillRGB;
@@ -580,7 +581,8 @@ FX_ARGB CPDF_RenderStatus::GetStrokeArgb(const CPDF_PageObject* pObj) const
     CPDF_ColorStateData* pColorData = (CPDF_ColorStateData*)(const CPDF_ColorStateData*)pObj->m_ColorState;
     if (m_pType3Char && (!m_pType3Char->m_bColored || (m_pType3Char->m_bColored && (!pColorData || pColorData->m_StrokeColor.IsNull())))) {
         return m_T3FillColor;
-    } else if (!pColorData || pColorData->m_StrokeColor.IsNull()) {
+    }
+    if (!pColorData || pColorData->m_StrokeColor.IsNull()) {
         pColorData = (CPDF_ColorStateData*)(const CPDF_ColorStateData*)m_InitialStates.m_ColorState;
     }
     FX_COLORREF rgb = pColorData->m_StrokeRGB;
index 0730206..fa9325a 100644 (file)
@@ -761,7 +761,8 @@ FX_BOOL CPDF_ImageRenderer::Continue(IFX_Pause* pPause)
             m_pRenderStatus->m_pDevice->SetDIBits(m_pQuickStretcher->m_pBitmap, m_pQuickStretcher->m_ResultLeft,
                                                   m_pQuickStretcher->m_ResultTop, m_BlendType);
         return FALSE;
-    } else if (m_Status == 2) {
+    }
+    if (m_Status == 2) {
         if (m_pTransformer->Continue(pPause)) {
             return TRUE;
         }
@@ -784,16 +785,17 @@ FX_BOOL CPDF_ImageRenderer::Continue(IFX_Pause* pPause)
         }
         delete pBitmap;
         return FALSE;
-    } else if (m_Status == 3) {
+    }
+    if (m_Status == 3) {
         return m_pRenderStatus->m_pDevice->ContinueDIBits(m_DeviceHandle, pPause);
-    } else if (m_Status == 4) {
+    }
+    if (m_Status == 4) {
         if (m_Loader.Continue(m_LoadHandle, pPause)) {
             return TRUE;
         }
         if (StartRenderDIBSource()) {
             return Continue(pPause);
         }
-        return FALSE;
     }
     return FALSE;
 }
index ce29baf..7d17e78 100644 (file)
@@ -21,13 +21,17 @@ unsigned int _GetBits8(const uint8_t* pData, int bitpos, int nbits)
     unsigned int byte = pData[bitpos / 8];
     if (nbits == 8) {
         return byte;
-    } else if (nbits == 4) {
+    }
+    if (nbits == 4) {
         return (bitpos % 8) ? (byte & 0x0f) : (byte >> 4);
-    } else if (nbits == 2) {
+    }
+    if (nbits == 2) {
         return (byte >> (6 - bitpos % 8)) & 0x03;
-    } else if (nbits == 1) {
+    }
+    if (nbits == 1) {
         return (byte >> (7 - bitpos % 8)) & 0x01;
-    } else if (nbits == 16) {
+    }
+    if (nbits == 16) {
         return byte * 256 + pData[bitpos / 8 + 1];
     }
     return 0;
@@ -462,7 +466,8 @@ int CPDF_DIBSource::ContinueLoadDIBSource(IFX_Pause* pPause)
             m_pColorSpace->EnableStdConversion(FALSE);
         }
         return ret1;
-    } else if (m_Status == 2) {
+    }
+    if (m_Status == 2) {
         return ContinueLoadMaskDIB(pPause);
     }
     return 0;
@@ -1008,7 +1013,8 @@ void CPDF_DIBSource::TranslateScanline24bpp(uint8_t* dest_scan, const uint8_t* s
                     break;
             }
             return;
-        } else if (m_bpc == 8) {
+        }
+        if (m_bpc == 8) {
             if (m_nComponents == m_pColorSpace->CountComponents())
                 m_pColorSpace->TranslateImageLine(dest_scan, src_scan, m_Width, m_Width, m_Height,
                                                   m_bLoadMask && m_GroupFamily == PDFCS_DEVICECMYK && m_Family == PDFCS_DEVICECMYK);
index da2e05a..851b2d6 100644 (file)
@@ -112,9 +112,11 @@ FX_DWORD CPDF_ActionFields::GetFieldsCount() const
     int iType = pFields->GetType();
     if (iType == PDFOBJ_DICTIONARY) {
         return 1;
-    } else if (iType == PDFOBJ_STRING) {
+    }
+    if (iType == PDFOBJ_STRING) {
         return 1;
-    } else if (iType == PDFOBJ_ARRAY) {
+    }
+    if (iType == PDFOBJ_ARRAY) {
         return ((CPDF_Array*)pFields)->GetCount();
     }
     return 0;
@@ -207,16 +209,17 @@ CFX_WideString CPDF_Action::GetJavaScript() const
 }
 CPDF_Dictionary* CPDF_Action::GetAnnot() const
 {
-    if (m_pDict == NULL) {
-        return NULL;
+    if (!m_pDict) {
+        return nullptr;
     }
     CFX_ByteString csType = m_pDict->GetString("S");
     if (csType == FX_BSTRC("Rendition")) {
         return m_pDict->GetDict("AN");
-    } else if (csType == FX_BSTRC("Movie")) {
+    }
+    if (csType == FX_BSTRC("Movie")) {
         return m_pDict->GetDict("Annotation");
     }
-    return NULL;
+    return nullptr;
 }
 int32_t CPDF_Action::GetOperationType() const
 {
@@ -226,15 +229,19 @@ int32_t CPDF_Action::GetOperationType() const
     CFX_ByteString csType = m_pDict->GetString("S");
     if (csType == FX_BSTRC("Rendition")) {
         return m_pDict->GetInteger("OP");
-    } else if (csType == FX_BSTRC("Movie")) {
+    }
+    if (csType == FX_BSTRC("Movie")) {
         CFX_ByteString csOP = m_pDict->GetString("Operation");
         if (csOP == FX_BSTRC("Play")) {
             return 0;
-        } else if (csOP == FX_BSTRC("Stop")) {
+        }
+        if (csOP == FX_BSTRC("Stop")) {
             return 1;
-        } else if (csOP == FX_BSTRC("Pause")) {
+        }
+        if (csOP == FX_BSTRC("Pause")) {
             return 2;
-        } else if (csOP == FX_BSTRC("Resume")) {
+        }
+        if (csOP == FX_BSTRC("Resume")) {
             return 3;
         }
     }
index 2d991b3..f94a4d6 100644 (file)
@@ -17,13 +17,13 @@ FX_BOOL FPDF_GenerateAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict)
     FX_DWORD flags = FPDF_GetFieldAttr(pAnnotDict, "Ff")? FPDF_GetFieldAttr(pAnnotDict, "Ff")->GetInteger() : 0;
     if (field_type == "Tx") {
         return CPVT_GenerateAP::GenerateTextFieldAP(pDoc, pAnnotDict);
-    } else if (field_type == "Ch") {
-        if (flags & (1 << 17)) {
-            return CPVT_GenerateAP::GenerateComboBoxAP(pDoc, pAnnotDict);
-        } else {
-            return CPVT_GenerateAP::GenerateListBoxAP(pDoc, pAnnotDict);
-        }
-    } else if (field_type == "Btn") {
+    }
+    if (field_type == "Ch") {
+        return (flags & (1 << 17)) ?
+                CPVT_GenerateAP::GenerateComboBoxAP(pDoc, pAnnotDict) :
+                CPVT_GenerateAP::GenerateListBoxAP(pDoc, pAnnotDict);
+    }
+    if (field_type == "Btn") {
         if (!(flags & (1 << 16))) {
             if (!pAnnotDict->KeyExist("AS")) {
                 if (CPDF_Dictionary* pParentDict = pAnnotDict->GetDict("Parent")) {
index 9d31d15..3ba109b 100644 (file)
@@ -148,13 +148,12 @@ static CPDF_Object* SearchNameNode(CPDF_Dictionary* pNode, int nIndex, int& nCur
         if (nIndex >= nCurIndex + nCount) {
             nCurIndex += nCount;
             return NULL;
-        } else {
-            if (ppFind != NULL) {
-                *ppFind = pNames;
-            }
-            csName = pNames->GetString((nIndex - nCurIndex) * 2);
-            return pNames->GetElementValue((nIndex - nCurIndex) * 2 + 1);
         }
+        if (ppFind != NULL) {
+            *ppFind = pNames;
+        }
+        csName = pNames->GetString((nIndex - nCurIndex) * 2);
+        return pNames->GetElementValue((nIndex - nCurIndex) * 2 + 1);
     }
     CPDF_Array* pKids = pNode->GetArray(FX_BSTRC("Kids"));
     if (pKids == NULL) {
index 2b59bee..735231c 100644 (file)
@@ -354,12 +354,11 @@ static int CALLBACK EnumFontFamExProc(    ENUMLOGFONTEXA *lpelfe,
 {
     if (FontType != 0x004 || strchr(lpelfe->elfLogFont.lfFaceName, '@') != NULL) {
         return 1;
-    } else {
-        LPDF_FONTDATA pData = (LPDF_FONTDATA)lParam;
-        memcpy(&pData->lf, &lpelfe->elfLogFont, sizeof(LOGFONTA));
-        pData->bFind = TRUE;
-        return 0;
     }
+    LPDF_FONTDATA pData = (LPDF_FONTDATA)lParam;
+    memcpy(&pData->lf, &lpelfe->elfLogFont, sizeof(LOGFONTA));
+    pData->bFind = TRUE;
+    return 0;
 }
 static FX_BOOL RetrieveSpecificFont(LOGFONTA& lf)
 {
@@ -697,41 +696,39 @@ int CPDF_InterForm::CompareFieldName(const CFX_ByteString& name1, const CFX_Byte
 {
     const FX_CHAR* ptr1 = name1;
     const FX_CHAR* ptr2 = name2;
-    if (name1.GetLength() != name2.GetLength()) {
-        int i = 0;
-        while (ptr1[i] == ptr2[i]) {
-            i ++;
-        }
-        if (i == name1.GetLength()) {
-            return 2;
-        }
-        if (i == name2.GetLength()) {
-            return 3;
-        }
-        return 0;
-    } else {
+    if (name1.GetLength() == name2.GetLength()) {
         return name1 == name2 ? 1 : 0;
     }
+    int i = 0;
+    while (ptr1[i] == ptr2[i]) {
+        i ++;
+    }
+    if (i == name1.GetLength()) {
+        return 2;
+    }
+    if (i == name2.GetLength()) {
+        return 3;
+    }
+    return 0;
 }
 int CPDF_InterForm::CompareFieldName(const CFX_WideString& name1, const CFX_WideString& name2)
 {
     const FX_WCHAR* ptr1 = name1.c_str();
     const FX_WCHAR* ptr2 = name2.c_str();
-    if (name1.GetLength() != name2.GetLength()) {
-        int i = 0;
-        while (ptr1[i] == ptr2[i]) {
-            i ++;
-        }
-        if (i == name1.GetLength()) {
-            return 2;
-        }
-        if (i == name2.GetLength()) {
-            return 3;
-        }
-        return 0;
-    } else {
+    if (name1.GetLength() == name2.GetLength()) {
         return name1 == name2 ? 1 : 0;
     }
+    int i = 0;
+    while (ptr1[i] == ptr2[i]) {
+        i ++;
+    }
+    if (i == name1.GetLength()) {
+        return 2;
+    }
+    if (i == name2.GetLength()) {
+        return 3;
+    }
+    return 0;
 }
 FX_DWORD CPDF_InterForm::CountFields(const CFX_WideString &csFieldName)
 {
@@ -900,115 +897,104 @@ CPDF_FormControl* CPDF_InterForm::GetControlByDict(CPDF_Dictionary* pWidgetDict)
 }
 FX_DWORD CPDF_InterForm::CountInternalFields(const CFX_WideString& csFieldName) const
 {
-    if (m_pFormDict == NULL) {
+    if (!m_pFormDict) {
         return 0;
     }
     CPDF_Array* pArray = m_pFormDict->GetArray("Fields");
-    if (pArray == NULL) {
+    if (!pArray) {
         return 0;
     }
     if (csFieldName.IsEmpty()) {
         return pArray->GetCount();
-    } else {
-        int iLength = csFieldName.GetLength();
-        int iPos = 0;
-        CPDF_Dictionary* pDict = NULL;
-        while (pArray != NULL) {
-            CFX_WideString csSub;
-            if (iPos < iLength && csFieldName[iPos] == L'.') {
-                iPos ++;
-            }
-            while (iPos < iLength && csFieldName[iPos] != L'.') {
-                csSub += csFieldName[iPos ++];
-            }
-            int iCount = pArray->GetCount();
-            FX_BOOL bFind = FALSE;
-            for (int i = 0; i < iCount; i ++) {
-                pDict = pArray->GetDict(i);
-                if (pDict == NULL) {
-                    continue;
-                }
-                CFX_WideString csT = pDict->GetUnicodeText("T");
-                if (csT == csSub) {
-                    bFind = TRUE;
-                    break;
-                }
-            }
-            if (!bFind) {
-                return 0;
+    }
+    int iLength = csFieldName.GetLength();
+    int iPos = 0;
+    CPDF_Dictionary* pDict = NULL;
+    while (pArray != NULL) {
+        CFX_WideString csSub;
+        if (iPos < iLength && csFieldName[iPos] == L'.') {
+            iPos ++;
+        }
+        while (iPos < iLength && csFieldName[iPos] != L'.') {
+            csSub += csFieldName[iPos ++];
+        }
+        int iCount = pArray->GetCount();
+        FX_BOOL bFind = FALSE;
+        for (int i = 0; i < iCount; i ++) {
+            pDict = pArray->GetDict(i);
+            if (pDict == NULL) {
+                continue;
             }
-            if (iPos >= iLength) {
+            CFX_WideString csT = pDict->GetUnicodeText("T");
+            if (csT == csSub) {
+                bFind = TRUE;
                 break;
             }
-            pArray = pDict->GetArray("Kids");
         }
-        if (pDict == NULL) {
+        if (!bFind) {
             return 0;
-        } else {
-            pArray = pDict->GetArray("Kids");
-            if (pArray == NULL) {
-                return 1;
-            } else {
-                return pArray->GetCount();
-            }
         }
+        if (iPos >= iLength) {
+            break;
+        }
+        pArray = pDict->GetArray("Kids");
+    }
+    if (!pDict) {
+        return 0;
     }
+    pArray = pDict->GetArray("Kids");
+    return pArray ? pArray->GetCount() : 1;
 }
+
 CPDF_Dictionary* CPDF_InterForm::GetInternalField(FX_DWORD index, const CFX_WideString& csFieldName) const
 {
-    if (m_pFormDict == NULL) {
-        return NULL;
+    if (!m_pFormDict) {
+        return nullptr;
     }
     CPDF_Array* pArray = m_pFormDict->GetArray("Fields");
-    if (pArray == NULL) {
-        return 0;
+    if (!pArray) {
+        return nullptr;
     }
     if (csFieldName.IsEmpty()) {
         return pArray->GetDict(index);
-    } else {
-        int iLength = csFieldName.GetLength();
-        int iPos = 0;
-        CPDF_Dictionary* pDict = NULL;
-        while (pArray != NULL) {
-            CFX_WideString csSub;
-            if (iPos < iLength && csFieldName[iPos] == L'.') {
-                iPos ++;
-            }
-            while (iPos < iLength && csFieldName[iPos] != L'.') {
-                csSub += csFieldName[iPos ++];
-            }
-            int iCount = pArray->GetCount();
-            FX_BOOL bFind = FALSE;
-            for (int i = 0; i < iCount; i ++) {
-                pDict = pArray->GetDict(i);
-                if (pDict == NULL) {
-                    continue;
-                }
-                CFX_WideString csT = pDict->GetUnicodeText("T");
-                if (csT == csSub) {
-                    bFind = TRUE;
-                    break;
-                }
-            }
-            if (!bFind) {
-                return NULL;
+    }
+    int iLength = csFieldName.GetLength();
+    int iPos = 0;
+    CPDF_Dictionary* pDict = NULL;
+    while (pArray != NULL) {
+        CFX_WideString csSub;
+        if (iPos < iLength && csFieldName[iPos] == L'.') {
+            iPos ++;
+        }
+        while (iPos < iLength && csFieldName[iPos] != L'.') {
+            csSub += csFieldName[iPos ++];
+        }
+        int iCount = pArray->GetCount();
+        FX_BOOL bFind = FALSE;
+        for (int i = 0; i < iCount; i ++) {
+            pDict = pArray->GetDict(i);
+            if (pDict == NULL) {
+                continue;
             }
-            if (iPos >= iLength) {
+            CFX_WideString csT = pDict->GetUnicodeText("T");
+            if (csT == csSub) {
+                bFind = TRUE;
                 break;
             }
-            pArray = pDict->GetArray("Kids");
         }
-        if (pDict == NULL) {
+        if (!bFind) {
             return NULL;
-        } else {
-            pArray = pDict->GetArray("Kids");
-            if (pArray == NULL) {
-                return pDict;
-            } else {
-                return pArray->GetDict(index);
-            }
         }
+        if (iPos >= iLength) {
+            break;
+        }
+        pArray = pDict->GetArray("Kids");
+    }
+    if (!pDict) {
+        return nullptr;
     }
+    pArray = pDict->GetArray("Kids");
+    return pArray ? pArray->GetDict(index) : pDict;
 }
 FX_BOOL CPDF_InterForm::NeedConstructAP()
 {
index 7fa17b8..87eee92 100644 (file)
@@ -262,29 +262,27 @@ CPDF_Action CPDF_FormControl::GetAction()
 }
 CPDF_AAction CPDF_FormControl::GetAdditionalAction()
 {
-    if (m_pWidgetDict == NULL) {
-        return NULL;
+    if (!m_pWidgetDict) {
+        return nullptr;
     }
     if (m_pWidgetDict->KeyExist("AA")) {
         return m_pWidgetDict->GetDict("AA");
-    } else {
-        return m_pField->GetAdditionalAction();
     }
+    return m_pField->GetAdditionalAction();
 }
 CPDF_DefaultAppearance CPDF_FormControl::GetDefaultAppearance()
 {
-    if (m_pWidgetDict == NULL) {
+    if (!m_pWidgetDict) {
         return CFX_ByteString();
     }
     if (m_pWidgetDict->KeyExist("DA")) {
         return m_pWidgetDict->GetString("DA");
-    } else {
-        CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->m_pDict, "DA");
-        if (pObj == NULL) {
-            return m_pField->m_pForm->GetDefaultAppearance();
-        }
-        return pObj->GetString();
     }
+    CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->m_pDict, "DA");
+    if (!pObj) {
+        return m_pField->m_pForm->GetDefaultAppearance();
+    }
+    return pObj->GetString();
 }
 
 CPDF_Font* CPDF_FormControl::GetDefaultControlFont()
@@ -333,18 +331,17 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont()
 
 int CPDF_FormControl::GetControlAlignment()
 {
-    if (m_pWidgetDict == NULL) {
+    if (!m_pWidgetDict) {
         return 0;
     }
     if (m_pWidgetDict->KeyExist("Q")) {
         return m_pWidgetDict->GetInteger("Q", 0);
-    } else {
-        CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->m_pDict, "Q");
-        if (pObj == NULL) {
-            return m_pField->m_pForm->GetFormAlignment();
-        }
-        return pObj->GetInteger();
     }
+    CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->m_pDict, "Q");
+    if (pObj == NULL) {
+        return m_pField->m_pForm->GetFormAlignment();
+    }
+    return pObj->GetInteger();
 }
 FX_BOOL CPDF_ApSettings::HasMKEntry(const CFX_ByteStringC& csEntry)
 {
index d1acab8..087eba8 100644 (file)
@@ -472,14 +472,15 @@ int CPDF_FormField::GetSelectedIndex(int index)
             return -1;
         }
     }
+    if (pValue->GetType() == PDFOBJ_NUMBER) {
+        return pValue->GetInteger();
+    }
     CFX_WideString sel_value;
     if (pValue->GetType() == PDFOBJ_STRING) {
         if (index != 0) {
             return -1;
         }
         sel_value = pValue->GetUnicodeText();
-    } else if (pValue->GetType() == PDFOBJ_NUMBER) {
-        return pValue->GetInteger();
     } else {
         if (pValue->GetType() != PDFOBJ_ARRAY) {
             return -1;
index 211bc25..aeeb1d1 100644 (file)
@@ -112,7 +112,8 @@ int32_t CPDF_Metadata::GetString(const CFX_ByteStringC& bsItem, CFX_WideString &
             }
             wsStr = pElmnt->GetContent(0);
             return wsStr.GetLength();
-        } else if (bsItem == FX_BSTRC("Author")) {
+        }
+        if (bsItem == FX_BSTRC("Author")) {
             CXML_Element *pElmnt = pTag->GetElement(NULL, bsTag);
             if (!pElmnt) {
                 continue;
@@ -127,14 +128,13 @@ int32_t CPDF_Metadata::GetString(const CFX_ByteStringC& bsItem, CFX_WideString &
             }
             wsStr = pElmnt->GetContent(0);
             return wsStr.GetLength();
-        } else {
-            CXML_Element *pElmnt = pTag->GetElement(NULL, bsTag);
-            if (!pElmnt) {
-                continue;
-            }
-            wsStr = pElmnt->GetContent(0);
-            return wsStr.GetLength();
         }
+        CXML_Element *pElmnt = pTag->GetElement(NULL, bsTag);
+        if (!pElmnt) {
+            continue;
+        }
+        wsStr = pElmnt->GetContent(0);
+        return wsStr.GetLength();
     }
     return -1;
 }
index 8477cb8..d525227 100644 (file)
@@ -207,11 +207,11 @@ FX_BOOL CPDF_OCContext::GetOCGVE(CPDF_Array *pExpression, FX_BOOL bFromConfig, i
         }
         if (pOCGObj->GetType() == PDFOBJ_DICTIONARY) {
             return !(bFromConfig ? LoadOCGState((CPDF_Dictionary*)pOCGObj) : GetOCGVisible((CPDF_Dictionary*)pOCGObj));
-        } else if (pOCGObj->GetType() == PDFOBJ_ARRAY) {
+        }
+        if (pOCGObj->GetType() == PDFOBJ_ARRAY) {
             return !GetOCGVE((CPDF_Array*)pOCGObj, bFromConfig, nLevel + 1);
-        } else {
-            return FALSE;
         }
+        return FALSE;
     }
     if (csOperator == FX_BSTRC("Or") || csOperator == FX_BSTRC("And")) {
         FX_BOOL bValue = FALSE;
@@ -286,15 +286,14 @@ FX_BOOL CPDF_OCContext::LoadOCMDState(const CPDF_Dictionary *pOCMDDict, FX_BOOL
 }
 FX_BOOL CPDF_OCContext::CheckOCGVisible(const CPDF_Dictionary *pOCGDict)
 {
-    if (pOCGDict == NULL) {
+    if (!pOCGDict) {
         return TRUE;
     }
     CFX_ByteString csType = pOCGDict->GetString(FX_BSTRC("Type"), FX_BSTRC("OCG"));
     if (csType == FX_BSTRC("OCG")) {
         return GetOCGVisible(pOCGDict);
-    } else {
-        return LoadOCMDState(pOCGDict, FALSE);
     }
+    return LoadOCMDState(pOCGDict, FALSE);
 }
 void CPDF_OCContext::ResetOCContext()
 {
index 10ca146..96d2ccf 100644 (file)
@@ -655,15 +655,17 @@ CPDF_Font* GetDefaultInterFormFont(CPDF_Dictionary* pFormDict, CPDF_Document* pD
 }
 CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod()
 {
-    if (m_pDict == NULL) {
+    if (!m_pDict) {
         return Always;
     }
     CFX_ByteString csSW = m_pDict->GetString("SW", "A");
     if (csSW == "B") {
         return Bigger;
-    } else if (csSW == "S") {
+    }
+    if (csSW == "S") {
         return Smaller;
-    } else if (csSW == "N") {
+    }
+    if (csSW == "N") {
         return Never;
     }
     return Always;
index c6fdf0e..230ba76 100644 (file)
@@ -95,9 +95,8 @@ CPVT_FloatRect CSection::Rearrange()
     ASSERT(m_pVT != NULL);
     if (m_pVT->m_nCharArray > 0) {
         return CTypeset(this).CharArray();
-    } else {
-        return CTypeset(this).Typeset();
     }
+    return CTypeset(this).Typeset();
 }
 CPVT_Size CSection::GetSectionSize(FX_FLOAT fFontSize)
 {
@@ -107,17 +106,15 @@ CPVT_WordPlace CSection::GetBeginWordPlace() const
 {
     if (CLine * pLine = m_LineArray.GetAt(0)) {
         return pLine->GetBeginWordPlace();
-    } else {
-        return SecPlace;
     }
+    return SecPlace;
 }
 CPVT_WordPlace CSection::GetEndWordPlace() const
 {
     if (CLine * pLine = m_LineArray.GetAt(m_LineArray.GetSize() - 1)) {
         return pLine->GetEndWordPlace();
-    } else {
-        return SecPlace;
     }
+    return SecPlace;
 }
 CPVT_WordPlace CSection::GetPrevWordPlace(const CPVT_WordPlace & place) const
 {
@@ -130,7 +127,8 @@ CPVT_WordPlace CSection::GetPrevWordPlace(const CPVT_WordPlace & place) const
     if (CLine * pLine = m_LineArray.GetAt(place.nLineIndex)) {
         if (place.nWordIndex == pLine->m_LineInfo.nBeginWordIndex) {
             return CPVT_WordPlace(place.nSecIndex, place.nLineIndex, -1);
-        } else if (place.nWordIndex < pLine->m_LineInfo.nBeginWordIndex) {
+        }
+        if (place.nWordIndex < pLine->m_LineInfo.nBeginWordIndex) {
             if (CLine * pPrevLine = m_LineArray.GetAt(place.nLineIndex - 1)) {
                 return pPrevLine->GetEndWordPlace();
             }
@@ -571,17 +569,23 @@ static FX_BOOL NeedDivision(FX_WORD prevWord, FX_WORD curWord)
 {
     if ((IsLatin(prevWord) || IsDigit(prevWord)) && (IsLatin(curWord) || IsDigit(curWord))) {
         return FALSE;
-    } else if (IsSpace(curWord) || IsPunctuation(curWord)) {
+    }
+    if (IsSpace(curWord) || IsPunctuation(curWord)) {
         return FALSE;
-    } else if (IsConnectiveSymbol(prevWord) || IsConnectiveSymbol(curWord)) {
+    }
+    if (IsConnectiveSymbol(prevWord) || IsConnectiveSymbol(curWord)) {
         return FALSE;
-    } else if (IsSpace(prevWord) || IsPunctuation(prevWord)) {
+    }
+    if (IsSpace(prevWord) || IsPunctuation(prevWord)) {
         return TRUE;
-    } else if (IsPrefixSymbol(prevWord)) {
+    }
+    if (IsPrefixSymbol(prevWord)) {
         return FALSE;
-    } else if (IsPrefixSymbol(curWord) || IsCJK(curWord)) {
+    }
+    if (IsPrefixSymbol(curWord) || IsCJK(curWord)) {
         return TRUE;
-    } else if (IsCJK(prevWord)) {
+    }
+    if (IsCJK(prevWord)) {
         return TRUE;
     }
     return FALSE;
@@ -868,11 +872,9 @@ CPVT_WordPlace CPDF_VariableText::InsertWord(const CPVT_WordPlace & place, FX_WO
         CPVT_WordProps * pNewProps = pWordProps ? new CPVT_WordProps(*pWordProps) : new CPVT_WordProps();
         pNewProps->nFontIndex = GetWordFontIndex(word, charset, pWordProps->nFontIndex);
         return AddWord(newplace, CPVT_WordInfo(word, charset, -1, pNewProps));
-    } else {
-        int32_t nFontIndex = GetSubWord() > 0 ? GetDefaultFontIndex() : GetWordFontIndex(word, charset, GetDefaultFontIndex());
-        return AddWord(newplace, CPVT_WordInfo(word, charset, nFontIndex, NULL));
     }
-    return place;
+    int32_t nFontIndex = GetSubWord() > 0 ? GetDefaultFontIndex() : GetWordFontIndex(word, charset, GetDefaultFontIndex());
+    return AddWord(newplace, CPVT_WordInfo(word, charset, nFontIndex, NULL));
 }
 CPVT_WordPlace CPDF_VariableText::InsertSection(const CPVT_WordPlace & place, const CPVT_SecProps * pSecProps,
         const CPVT_WordProps * pWordProps)
@@ -1120,12 +1122,10 @@ CPVT_WordPlace CPDF_VariableText::GetPrevWordPlace(const CPVT_WordPlace & place)
         if (place.WordCmp(pSection->GetBeginWordPlace()) <= 0) {
             if (CSection * pPrevSection = m_SectionArray.GetAt(place.nSecIndex - 1)) {
                 return pPrevSection->GetEndWordPlace();
-            } else {
-                return GetBeginWordPlace();
             }
-        } else {
-            return pSection->GetPrevWordPlace(place);
+            return GetBeginWordPlace();
         }
+        return pSection->GetPrevWordPlace(place);
     }
     return place;
 }
@@ -1141,12 +1141,10 @@ CPVT_WordPlace CPDF_VariableText::GetNextWordPlace(const CPVT_WordPlace & place)
         if (place.WordCmp(pSection->GetEndWordPlace()) >= 0) {
             if (CSection * pNextSection = m_SectionArray.GetAt(place.nSecIndex + 1)) {
                 return pNextSection->GetBeginWordPlace();
-            } else {
-                return GetEndWordPlace();
             }
-        } else {
-            return pSection->GetNextWordPlace(place);
+            return GetEndWordPlace();
         }
+        return pSection->GetNextWordPlace(place);
     }
     return place;
 }
@@ -1201,12 +1199,11 @@ CPVT_WordPlace CPDF_VariableText::GetUpWordPlace(const CPVT_WordPlace & place, c
         CPDF_Point pt = OutToIn(point);
         if (temp.nLineIndex-- > 0) {
             return pSection->SearchWordPlace(pt.x - pSection->m_SecInfo.rcSection.left, temp);
-        } else {
-            if (temp.nSecIndex-- > 0) {
-                if (CSection * pLastSection = m_SectionArray.GetAt(temp.nSecIndex)) {
-                    temp.nLineIndex = pLastSection->m_LineArray.GetSize() - 1;
-                    return pLastSection->SearchWordPlace(pt.x - pLastSection->m_SecInfo.rcSection.left, temp);
-                }
+        }
+        if (temp.nSecIndex-- > 0) {
+            if (CSection * pLastSection = m_SectionArray.GetAt(temp.nSecIndex)) {
+                temp.nLineIndex = pLastSection->m_LineArray.GetSize() - 1;
+                return pLastSection->SearchWordPlace(pt.x - pLastSection->m_SecInfo.rcSection.left, temp);
             }
         }
     }
@@ -1219,12 +1216,11 @@ CPVT_WordPlace CPDF_VariableText::GetDownWordPlace(const CPVT_WordPlace & place,
         CPDF_Point pt = OutToIn(point);
         if (temp.nLineIndex++ < pSection->m_LineArray.GetSize() - 1) {
             return pSection->SearchWordPlace(pt.x - pSection->m_SecInfo.rcSection.left, temp);
-        } else {
-            if (temp.nSecIndex++ < m_SectionArray.GetSize() - 1) {
-                if (CSection * pNextSection = m_SectionArray.GetAt(temp.nSecIndex)) {
-                    temp.nLineIndex = 0;
-                    return pNextSection->SearchWordPlace(pt.x - pSection->m_SecInfo.rcSection.left, temp);
-                }
+        }
+        if (temp.nSecIndex++ < m_SectionArray.GetSize() - 1) {
+            if (CSection * pNextSection = m_SectionArray.GetAt(temp.nSecIndex)) {
+                temp.nLineIndex = 0;
+                return pNextSection->SearchWordPlace(pt.x - pSection->m_SecInfo.rcSection.left, temp);
             }
         }
     }
@@ -1236,10 +1232,10 @@ CPVT_WordPlace CPDF_VariableText::GetLineBeginPlace(const CPVT_WordPlace & place
 }
 CPVT_WordPlace CPDF_VariableText::GetLineEndPlace(const CPVT_WordPlace & place) const
 {
-    if (CSection * pSection = m_SectionArray.GetAt(place.nSecIndex))
-        if (CLine * pLine = pSection->m_LineArray.GetAt(place.nLineIndex)) {
+    if (CSection* pSection = m_SectionArray.GetAt(place.nSecIndex)) {
+        if (CLine* pLine = pSection->m_LineArray.GetAt(place.nLineIndex))
             return pLine->GetEndWordPlace();
-        }
+    }
     return place;
 }
 CPVT_WordPlace CPDF_VariableText::GetSectionBeginPlace(const CPVT_WordPlace & place) const
@@ -1436,11 +1432,7 @@ void CPDF_VariableText::ClearSectionRightWords(const CPVT_WordPlace & place)
 CPVT_WordPlace CPDF_VariableText::AjustLineHeader(const CPVT_WordPlace & place, FX_BOOL bPrevOrNext) const
 {
     if (place.nWordIndex < 0 && place.nLineIndex > 0) {
-        if (bPrevOrNext) {
-            return GetPrevWordPlace(place);
-        } else {
-            return GetNextWordPlace(place);
-        }
+        return bPrevOrNext ? GetPrevWordPlace(place) : GetNextWordPlace(place);
     }
     return place;
 }
@@ -1636,14 +1628,13 @@ CPVT_FloatRect CPDF_VariableText::RearrangeSections(const CPVT_WordRange & Place
 }
 int32_t CPDF_VariableText::GetCharWidth(int32_t nFontIndex, FX_WORD Word, FX_WORD SubWord, int32_t nWordStyle)
 {
-    if (m_pVTProvider) {
-        if (SubWord > 0) {
-            return m_pVTProvider->GetCharWidth(nFontIndex, SubWord, nWordStyle);
-        } else {
-            return m_pVTProvider->GetCharWidth(nFontIndex, Word, nWordStyle);
-        }
+    if (!m_pVTProvider) {
+        return 0;
+    }
+    if (SubWord > 0) {
+        return m_pVTProvider->GetCharWidth(nFontIndex, SubWord, nWordStyle);
     }
-    return 0;
+    return m_pVTProvider->GetCharWidth(nFontIndex, Word, nWordStyle);
 }
 int32_t CPDF_VariableText::GetTypeAscent(int32_t nFontIndex)
 {
@@ -1698,7 +1689,6 @@ void CPDF_VariableText_Iterator::SetAt(const CPVT_WordPlace & place)
 }
 FX_BOOL        CPDF_VariableText_Iterator::NextWord()
 {
-    ASSERT(m_pVT != NULL);
     if (m_CurPos == m_pVT->GetEndWordPlace()) {
         return FALSE;
     }
@@ -1707,7 +1697,6 @@ FX_BOOL   CPDF_VariableText_Iterator::NextWord()
 }
 FX_BOOL        CPDF_VariableText_Iterator::PrevWord()
 {
-    ASSERT(m_pVT != NULL);
     if (m_CurPos == m_pVT->GetBeginWordPlace()) {
         return FALSE;
     }
@@ -1716,33 +1705,29 @@ FX_BOOL CPDF_VariableText_Iterator::PrevWord()
 }
 FX_BOOL        CPDF_VariableText_Iterator::NextLine()
 {
-    ASSERT(m_pVT != NULL);
     if (CSection * pSection = m_pVT->m_SectionArray.GetAt(m_CurPos.nSecIndex)) {
         if (m_CurPos.nLineIndex < pSection->m_LineArray.GetSize() - 1) {
             m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex, m_CurPos.nLineIndex + 1, -1);
             return TRUE;
-        } else {
-            if (m_CurPos.nSecIndex < m_pVT->m_SectionArray.GetSize() - 1) {
-                m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex + 1, 0, -1);
-                return TRUE;
-            }
+        }
+        if (m_CurPos.nSecIndex < m_pVT->m_SectionArray.GetSize() - 1) {
+            m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex + 1, 0, -1);
+            return TRUE;
         }
     }
     return FALSE;
 }
 FX_BOOL        CPDF_VariableText_Iterator::PrevLine()
 {
-    ASSERT(m_pVT != NULL);
     if (m_pVT->m_SectionArray.GetAt(m_CurPos.nSecIndex)) {
         if (m_CurPos.nLineIndex > 0) {
             m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex, m_CurPos.nLineIndex - 1, -1);
             return TRUE;
-        } else {
-            if (m_CurPos.nSecIndex > 0) {
-                if (CSection * pLastSection = m_pVT->m_SectionArray.GetAt(m_CurPos.nSecIndex - 1)) {
-                    m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex - 1, pLastSection->m_LineArray.GetSize() - 1, -1);
-                    return TRUE;
-                }
+        }
+        if (m_CurPos.nSecIndex > 0) {
+            if (CSection * pLastSection = m_pVT->m_SectionArray.GetAt(m_CurPos.nSecIndex - 1)) {
+                m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex - 1, pLastSection->m_LineArray.GetSize() - 1, -1);
+                return TRUE;
             }
         }
     }
@@ -1750,7 +1735,6 @@ FX_BOOL   CPDF_VariableText_Iterator::PrevLine()
 }
 FX_BOOL        CPDF_VariableText_Iterator::NextSection()
 {
-    ASSERT(m_pVT != NULL);
     if (m_CurPos.nSecIndex < m_pVT->m_SectionArray.GetSize() - 1) {
         m_CurPos = CPVT_WordPlace(m_CurPos.nSecIndex + 1, 0, -1);
         return TRUE;
index 6755939..c1aaad8 100644 (file)
@@ -42,9 +42,11 @@ FX_FLOAT _NormalizeThreshold(FX_FLOAT threshold)
 {
     if (threshold < 300) {
         return threshold / 2.0f;
-    } else if (threshold < 500) {
+    }
+    if (threshold < 500) {
         return threshold / 4.0f;
-    } else if (threshold < 700) {
+    }
+    if (threshold < 700) {
         return threshold / 5.0f;
     }
     return threshold / 6.0f;
@@ -159,12 +161,9 @@ void CPDF_TextPage::NormalizeObjects(FX_BOOL bNormalize)
 {
     m_ParseOptions.m_bNormalizeObjs = bNormalize;
 }
-FX_BOOL CPDF_TextPage::IsControlChar(PAGECHAR_INFO* pCharInfo)
+bool CPDF_TextPage::IsControlChar(const PAGECHAR_INFO& charInfo)
 {
-    if(!pCharInfo) {
-        return FALSE;
-    }
-    switch(pCharInfo->m_Unicode) {
+    switch (charInfo.m_Unicode) {
         case 0x2:
         case 0x3:
         case 0x93:
@@ -173,13 +172,9 @@ FX_BOOL CPDF_TextPage::IsControlChar(PAGECHAR_INFO* pCharInfo)
         case 0x97:
         case 0x98:
         case 0xfffe:
-            if(pCharInfo->m_Flag == FPDFTEXT_CHAR_HYPHEN) {
-                return FALSE;
-            } else {
-                return TRUE;
-            }
+            return charInfo.m_Flag != FPDFTEXT_CHAR_HYPHEN;
         default:
-            return FALSE;
+            return false;
     }
 }
 FX_BOOL CPDF_TextPage::ParseTextPage()
@@ -207,7 +202,7 @@ FX_BOOL CPDF_TextPage::ParseTextPage()
             if(charinfo.m_Flag == FPDFTEXT_CHAR_GENERATED) {
                 bNormal = TRUE;
             }
-            else if(charinfo.m_Unicode == 0 || IsControlChar(&charinfo))
+            else if(charinfo.m_Unicode == 0 || IsControlChar(charinfo))
                 bNormal = FALSE;
             else {
                 bNormal = TRUE;
@@ -492,141 +487,6 @@ int       CPDF_TextPage::GetIndexAtPos(FX_FLOAT x, FX_FLOAT y, FX_FLOAT xTorelance, FX
     CPDF_Point point(x, y);
     return GetIndexAtPos(point, xTorelance, yTorelance);
 }
-int CPDF_TextPage::GetOrderByDirection(int order, int direction) const
-{
-    if(m_ParseOptions.m_bGetCharCodeOnly) {
-        return -3;
-    }
-    if (!m_IsParsered) {
-        return -3;
-    }
-    if (direction == FPDFTEXT_RIGHT || direction == FPDFTEXT_LEFT) {
-        order += direction;
-        while(order >= 0 && order < m_charList.GetSize()) {
-            PAGECHAR_INFO cinfo = *(PAGECHAR_INFO*)m_charList.GetAt(order);
-            if (cinfo.m_Flag != FPDFTEXT_CHAR_GENERATED) {
-                break;
-            } else {
-                if (cinfo.m_Unicode == TEXT_LINEFEED_CHAR || cinfo.m_Unicode == TEXT_RETURN_CHAR) {
-                    order += direction;
-                } else {
-                    break;
-                }
-            }
-        }
-        if (order >= m_charList.GetSize()) {
-            order = -2;
-        }
-        return order;
-    }
-    PAGECHAR_INFO charinfo;
-    charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(order);
-    CPDF_Point curPos(charinfo.m_OriginX, charinfo.m_OriginY);
-    FX_FLOAT difPosY = 0.0, minXdif = 1000;
-    int        minIndex = -2;
-    int index = order;
-    FX_FLOAT height = charinfo.m_CharBox.Height();
-    if (direction == FPDFTEXT_UP) {
-        minIndex = -1;
-        while (1) {
-            if (--index < 0)   {
-                return -1;
-            }
-            charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(index);
-            if (FXSYS_fabs(charinfo.m_OriginY - curPos.y) > FX_MAX(height, charinfo.m_CharBox.Height()) / 2) {
-                difPosY = charinfo.m_OriginY;
-                minIndex = index;
-                break;
-            }
-        }
-        FX_FLOAT PreXdif = charinfo.m_OriginX - curPos.x;
-        minXdif = PreXdif;
-        if (PreXdif == 0)      {
-            return index;
-        }
-        FX_FLOAT curXdif = 0;
-        while (--index >= 0) {
-            charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(index);
-            if (difPosY != charinfo.m_OriginY) {
-                break;
-            }
-            curXdif = charinfo.m_OriginX - curPos.x;
-            if (curXdif == 0) {
-                return index;
-            }
-            int signflag = 0;
-            if (curXdif > 0) {
-                signflag = 1;
-            } else {
-                signflag = -1;
-            }
-            if (signflag * PreXdif < 0) {
-                if (FXSYS_fabs(PreXdif) < FXSYS_fabs(curXdif)) {
-                    return index + 1;
-                } else {
-                    return index;
-                }
-            }
-            if (FXSYS_fabs(curXdif) < FXSYS_fabs(minXdif)) {
-                minIndex = index;
-                minXdif = curXdif;
-            }
-            PreXdif = curXdif;
-            if (difPosY != charinfo.m_OriginY) {
-                break;
-            }
-        }
-        return minIndex;
-    } else if(FPDFTEXT_DOWN) {
-        minIndex = -2;
-        while (1) {
-            if (++index > m_charList.GetSize() - 1)    {
-                return minIndex;
-            }
-            charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(index);
-            if (FXSYS_fabs(charinfo.m_OriginY - curPos.y) > FX_MAX(height, charinfo.m_CharBox.Height()) / 2) {
-                difPosY = charinfo.m_OriginY;
-                minIndex = index;
-                break;
-            }
-        }
-        FX_FLOAT PreXdif = charinfo.m_OriginX - curPos.x;
-        minXdif = PreXdif;
-        if (PreXdif == 0)      {
-            return index;
-        }
-        FX_FLOAT curXdif = 0;
-        while (++index < m_charList.GetSize()) {
-            charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(index);
-            if (difPosY != charinfo.m_OriginY) {
-                break;
-            }
-            curXdif = charinfo.m_OriginX - curPos.x;
-            if (curXdif == 0) {
-                return index;
-            }
-            int signflag = 0;
-            if (curXdif > 0) {
-                signflag = 1;
-            } else {
-                signflag = -1;
-            }
-            if (signflag * PreXdif < 0) {
-                if (FXSYS_fabs(PreXdif) < FXSYS_fabs(curXdif)) {
-                    return index - 1;
-                } else {
-                    return index;
-                }
-            }
-            if (FXSYS_fabs(curXdif) < FXSYS_fabs(minXdif)) {
-                minXdif = curXdif;
-                minIndex = index;
-            }
-            PreXdif = curXdif;
-        }
-        return minIndex;
-    }
-}
 void CPDF_TextPage::GetCharInfo(int index, FPDF_CHAR_INFO & info) const
 {
     if(m_ParseOptions.m_bGetCharCodeOnly) {
@@ -952,7 +812,6 @@ int CPDF_TextPage::GetWordBreak(int index, int direction) const
                 return breakPos;
             }
         }
-        return breakPos;
     } else if (direction == FPDFTEXT_RIGHT) {
         while (++breakPos < m_charList.GetSize()) {
             charinfo = *(PAGECHAR_INFO*)m_charList.GetAt(breakPos);
@@ -960,7 +819,6 @@ int CPDF_TextPage::GetWordBreak(int index, int direction) const
                 return breakPos;
             }
         }
-        return breakPos;
     }
     return breakPos;
 }
@@ -1161,7 +1019,7 @@ void CPDF_TextPage::AddCharInfoByLRDirection(CFX_WideString& str, int i)
 {
     PAGECHAR_INFO Info = *(PAGECHAR_INFO*)m_TempCharList.GetAt(i);
     FX_WCHAR wChar = str.GetAt(i);
-    if(!IsControlChar(&Info)) {
+    if(!IsControlChar(Info)) {
         Info.m_Index = m_TextBuf.GetLength();
         if (wChar >= 0xFB00 && wChar <= 0xFB06) {
             FX_WCHAR* pDst = NULL;
@@ -1193,7 +1051,7 @@ void CPDF_TextPage::AddCharInfoByLRDirection(CFX_WideString& str, int i)
 void CPDF_TextPage::AddCharInfoByRLDirection(CFX_WideString& str, int i)
 {
     PAGECHAR_INFO Info = *(PAGECHAR_INFO*)m_TempCharList.GetAt(i);
-    if(!IsControlChar(&Info)) {
+    if(!IsControlChar(Info)) {
         Info.m_Index = m_TextBuf.GetLength();
         FX_WCHAR wChar = FX_GetMirrorChar(str.GetAt(i), TRUE, FALSE);
         FX_WCHAR* pDst = NULL;
@@ -1212,9 +1070,8 @@ void CPDF_TextPage::AddCharInfoByRLDirection(CFX_WideString& str, int i)
             }
             FX_Free(pDst);
             return;
-        } else {
-            Info.m_Unicode = wChar;
         }
+        Info.m_Unicode = wChar;
         m_TextBuf.AppendChar(Info.m_Unicode);
     } else {
         Info.m_Index = -1;
@@ -1915,11 +1772,9 @@ int32_t CPDF_TextPage::GetTextObjectWritingMode(const CPDF_TextObject* pTextObj)
     v.Set(dX, dY);
     v.Normalize();
     if (v.y <= 0.0872f) {
-        if (v.x <= 0.0872f) {
-            return m_TextlineDir;
-        }
-        return 0;
-    } else if (v.x <= 0.0872f) {
+        return v.x <= 0.0872f ? m_TextlineDir : 0;
+    }
+    if (v.x <= 0.0872f) {
         return 1;
     }
     return m_TextlineDir;
@@ -2698,22 +2553,25 @@ FX_BOOL CPDF_LinkExtract::CheckWebLink(CFX_WideString& strBeCheck)
     if (str.Find(L"http://www.") != -1) {
         strBeCheck = strBeCheck.Right(str.GetLength() - str.Find(L"http://www."));
         return TRUE;
-    } else if (str.Find(L"http://") != -1) {
+    }
+    if (str.Find(L"http://") != -1) {
         strBeCheck = strBeCheck.Right(str.GetLength() - str.Find(L"http://"));
         return TRUE;
-    } else if (str.Find(L"https://www.") != -1) {
+    }
+    if (str.Find(L"https://www.") != -1) {
         strBeCheck = strBeCheck.Right(str.GetLength() - str.Find(L"https://www."));
         return TRUE;
-    } else if (str.Find(L"https://") != -1) {
+    }
+    if (str.Find(L"https://") != -1) {
         strBeCheck = strBeCheck.Right(str.GetLength() - str.Find(L"https://"));
         return TRUE;
-    } else if (str.Find(L"www.") != -1) {
+    }
+    if (str.Find(L"www.") != -1) {
         strBeCheck = strBeCheck.Right(str.GetLength() - str.Find(L"www."));
         strBeCheck = L"http://" + strBeCheck;
         return TRUE;
-    } else {
-        return FALSE;
     }
+    return FALSE;
 }
 FX_BOOL CPDF_LinkExtract::CheckMailLink(CFX_WideString& str)
 {
index e2d6af6..ce52371 100644 (file)
@@ -66,7 +66,6 @@ public:
             FX_FLOAT yTorelance) const;
     virtual CFX_WideString                     GetTextByRect(const CFX_FloatRect& rect) const;
     virtual void                                       GetRectsArrayByRect(const CFX_FloatRect& rect, CFX_RectArray& resRectArray) const;
-    virtual    int                                             GetOrderByDirection(int order, int direction) const;
     virtual    CFX_WideString                  GetPageText(int start = 0, int nCount = -1) const;
 
     virtual int                                                CountRects(int start, int nCount);
@@ -87,7 +86,7 @@ public:
     static     FX_BOOL                                 IsLetter(FX_WCHAR unicode);
 private:
     FX_BOOL                                                    IsHyphen(FX_WCHAR curChar);
-    FX_BOOL                                                    IsControlChar(PAGECHAR_INFO* pCharInfo);
+    bool                                                       IsControlChar(const PAGECHAR_INFO& charInfo);
     FX_BOOL                                                    GetBaselineRotate(int start, int end, int& Rotate);
     void                                                       ProcessObject();
     void                                                       ProcessFormObject(CPDF_FormObject*      pFormObj, const CFX_AffineMatrix& formMatrix);
index da503c0..7507fe5 100644 (file)
@@ -44,7 +44,8 @@ FX_BOOL CheckComponents(cmsColorSpaceSignature cs, int nComponents, FX_BOOL bDst
         case cmsSigGrayData:
             if (bDst && nComponents != 1) {
                 return FALSE;
-            } else if (!bDst && nComponents > 2) {
+            }
+            if (!bDst && nComponents > 2) {
                 return FALSE;
             }
             break;
index 7a69a24..5118430 100644 (file)
@@ -172,35 +172,34 @@ FXCODEC_STATUS CCodec_Jbig2Module::ContinueDecode(void* pJbig2Context, IFX_Pause
 {
     CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
     int ret = m_pJbig2Context->m_pContext->Continue(pPause);
-    if(m_pJbig2Context->m_pContext->GetProcessiveStatus() == FXCODEC_STATUS_DECODE_FINISH) {
-        if(m_pJbig2Context->m_bFileReader) {
-            CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
-            m_pJbig2Context->m_pContext = NULL;
-            if (ret != JBIG2_SUCCESS) {
-                if(m_pJbig2Context->m_src_buf) {
-                    FX_Free(m_pJbig2Context->m_src_buf);
-                }
-                m_pJbig2Context->m_src_buf = NULL;
-                return FXCODEC_STATUS_ERROR;
-            }
-            delete m_pJbig2Context->m_dest_image;
-            FX_Free(m_pJbig2Context->m_src_buf);
-            return FXCODEC_STATUS_DECODE_FINISH;
-        } else {
-            CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
-            m_pJbig2Context->m_pContext = NULL;
-            if (ret != JBIG2_SUCCESS) {
-                return FXCODEC_STATUS_ERROR;
-            }
-            int dword_size = m_pJbig2Context->m_height * m_pJbig2Context->m_dest_pitch / 4;
-            FX_DWORD* dword_buf = (FX_DWORD*)m_pJbig2Context->m_dest_buf;
-            for (int i = 0; i < dword_size; i ++) {
-                dword_buf[i] = ~dword_buf[i];
+    if (m_pJbig2Context->m_pContext->GetProcessiveStatus() != FXCODEC_STATUS_DECODE_FINISH) {
+        return m_pJbig2Context->m_pContext->GetProcessiveStatus();
+    }
+    if (m_pJbig2Context->m_bFileReader) {
+        CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
+        m_pJbig2Context->m_pContext = NULL;
+        if (ret != JBIG2_SUCCESS) {
+            if(m_pJbig2Context->m_src_buf) {
+                FX_Free(m_pJbig2Context->m_src_buf);
             }
-            return FXCODEC_STATUS_DECODE_FINISH;
+            m_pJbig2Context->m_src_buf = NULL;
+            return FXCODEC_STATUS_ERROR;
         }
+        delete m_pJbig2Context->m_dest_image;
+        FX_Free(m_pJbig2Context->m_src_buf);
+        return FXCODEC_STATUS_DECODE_FINISH;
     }
-    return m_pJbig2Context->m_pContext->GetProcessiveStatus();
+    CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
+    m_pJbig2Context->m_pContext = NULL;
+    if (ret != JBIG2_SUCCESS) {
+        return FXCODEC_STATUS_ERROR;
+    }
+    int dword_size = m_pJbig2Context->m_height * m_pJbig2Context->m_dest_pitch / 4;
+    FX_DWORD* dword_buf = (FX_DWORD*)m_pJbig2Context->m_dest_buf;
+    for (int i = 0; i < dword_size; i ++) {
+        dword_buf[i] = ~dword_buf[i];
+    }
+    return FXCODEC_STATUS_DECODE_FINISH;
 }
 
 
index 7666ac6..b7d9fbe 100644 (file)
@@ -420,9 +420,11 @@ extern "C" {
         int ratio = (iratio_w > iratio_h) ? iratio_h : iratio_w;
         if (ratio >= 8) {
             return 8;
-        } else if (ratio >= 4) {
+        }
+        if (ratio >= 4) {
             return 4;
-        } else if (ratio >= 2) {
+        }
+        if (ratio >= 2) {
             return 2;
         }
         return 1;
index 56b2f57..4ab34bb 100644 (file)
@@ -243,7 +243,8 @@ void** CFX_BaseSegmentedArray::GetIndex(int seg_index) const
     ASSERT(m_IndexDepth != 0);
     if (m_IndexDepth == 1) {
         return (void**)m_pIndex;
-    } else if (m_IndexDepth == 2) {
+    }
+    if (m_IndexDepth == 2) {
         return (void**)((void**)m_pIndex)[seg_index / m_IndexSize];
     }
     int tree_size = 1;
index 9f54414..5eeb33b 100644 (file)
@@ -132,10 +132,9 @@ CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& stringSrc)
     if (stringSrc.IsEmpty()) {
         m_pData = NULL;
         return;
-    } else {
-        m_pData = NULL;
-        *this = stringSrc;
     }
+    m_pData = NULL;
+    *this = stringSrc;
 }
 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& str1, const CFX_ByteStringC& str2)
 {
@@ -971,13 +970,15 @@ int CFX_ByteString::Compare(const CFX_ByteStringC& str) const
     for (int i = 0; i < min_len; i ++) {
         if ((uint8_t)m_pData->m_String[i] < str.GetAt(i)) {
             return -1;
-        } else if ((uint8_t)m_pData->m_String[i] > str.GetAt(i)) {
+        }
+        if ((uint8_t)m_pData->m_String[i] > str.GetAt(i)) {
             return 1;
         }
     }
     if (this_len < that_len) {
         return -1;
-    } else if (this_len > that_len) {
+    }
+    if (this_len > that_len) {
         return 1;
     }
     return 0;
index f23bf4b..26eeacc 100644 (file)
@@ -457,18 +457,18 @@ CFX_Matrix_3by3 CFX_Matrix_3by3::Inverse()
     FX_FLOAT det = a*(e*i - f*h) - b*(i*d - f*g) + c*(d*h - e*g);
     if (FXSYS_fabs(det) < 0.0000001)
         return CFX_Matrix_3by3();
-    else
-        return CFX_Matrix_3by3(
-            (e*i - f*h) / det,
-            -(b*i - c*h) / det,
-            (b*f - c*e) / det,
-            -(d*i - f*g) / det,
-            (a*i - c*g) / det,
-            -(a*f - c*d) / det,
-            (d*h - e*g) / det,
-            -(a*h - b*g) / det,
-            (a*e - b*d) / det
-        );
+
+    return CFX_Matrix_3by3(
+        (e*i - f*h) / det,
+        -(b*i - c*h) / det,
+        (b*f - c*e) / det,
+        -(d*i - f*g) / det,
+        (a*i - c*g) / det,
+        -(a*f - c*d) / det,
+        (d*h - e*g) / det,
+        -(a*h - b*g) / det,
+        (a*e - b*d) / det
+    );
 }
 
 CFX_Matrix_3by3 CFX_Matrix_3by3::Multiply(const CFX_Matrix_3by3 &m)
index 2442dae..b6b5955 100644 (file)
@@ -485,7 +485,8 @@ int CFX_WideString::Compare(const CFX_WideString& str) const
             return 0;
         }
         return -1;
-    } else if (str.m_pData == NULL) {
+    }
+    if (str.m_pData == NULL) {
         return 1;
     }
     int this_len = m_pData->m_nDataLength;
@@ -494,13 +495,15 @@ int CFX_WideString::Compare(const CFX_WideString& str) const
     for (int i = 0; i < min_len; i ++) {
         if (m_pData->m_String[i] < str.m_pData->m_String[i]) {
             return -1;
-        } else if (m_pData->m_String[i] > str.m_pData->m_String[i]) {
+        }
+        if (m_pData->m_String[i] > str.m_pData->m_String[i]) {
             return 1;
         }
     }
     if (this_len < that_len) {
         return -1;
-    } else if (this_len > that_len) {
+    }
+    if (this_len > that_len) {
         return 1;
     }
     return 0;
index 475e5f6..118db7b 100644 (file)
@@ -417,7 +417,8 @@ public:
                     }
                 }
                 return;
-            } else if (Bpp == 3 || Bpp == 4) {
+            }
+            if (Bpp == 3 || Bpp == 4) {
                 for (int col = col_start; col < col_end; col ++) {
                     int src_alpha;
                     if (clip_scan) {
@@ -479,7 +480,8 @@ public:
                 }
             }
             return;
-        } else if (Bpp == 3 || Bpp == 4) {
+        }
+        if (Bpp == 3 || Bpp == 4) {
             for (int col = col_start; col < col_end; col ++) {
                 int src_alpha;
                 if (clip_scan) {
@@ -508,7 +510,8 @@ public:
                 continue;
             }
             return;
-        } else if (Bpp == 1) {
+        }
+        if (Bpp == 1) {
             for (int col = col_start; col < col_end; col ++) {
                 int src_alpha;
                 if (clip_scan) {
index 19a870a..cb99a37 100644 (file)
@@ -3938,7 +3938,8 @@ void CFX_ScanlineCompositor::CompositePalBitmapLine(uint8_t* dest_scan, const ui
         if (m_SrcFormat == FXDIB_1bppRgb) {
             if (m_DestFormat == FXDIB_8bppRgb) {
                 return;
-            } else if(m_DestFormat == FXDIB_Argb) {
+            }
+            if(m_DestFormat == FXDIB_Argb) {
                 _CompositeRow_1bppRgb2Argb_NoBlend_RgbByteOrder(dest_scan, src_scan, src_left, width, m_pSrcPalette, clip_scan);
             } else {
                 _CompositeRow_1bppRgb2Rgb_NoBlend_RgbByteOrder(dest_scan, src_scan, src_left, m_pSrcPalette, width, (m_DestFormat & 0xff) >> 3, clip_scan);
@@ -3946,7 +3947,8 @@ void CFX_ScanlineCompositor::CompositePalBitmapLine(uint8_t* dest_scan, const ui
         } else {
             if (m_DestFormat == FXDIB_8bppRgb) {
                 return;
-            } else if (m_DestFormat == FXDIB_Argb) {
+            }
+            if (m_DestFormat == FXDIB_Argb) {
                 _CompositeRow_8bppRgb2Argb_NoBlend_RgbByteOrder(dest_scan, src_scan, width, m_pSrcPalette, clip_scan);
             } else {
                 _CompositeRow_8bppRgb2Rgb_NoBlend_RgbByteOrder(dest_scan, src_scan, m_pSrcPalette, width, (m_DestFormat & 0xff) >> 3, clip_scan);
@@ -3957,7 +3959,8 @@ void CFX_ScanlineCompositor::CompositePalBitmapLine(uint8_t* dest_scan, const ui
     if (m_DestFormat == FXDIB_8bppMask) {
         _CompositeRow_Rgb2Mask(dest_scan, src_scan, width, clip_scan);
         return;
-    } else if ((m_DestFormat & 0xff) == 8) {
+    }
+    if ((m_DestFormat & 0xff) == 8) {
         if (m_Transparency & 8) {
             if (m_DestFormat & 0x0200) {
                 _CompositeRow_1bppPal2Graya(dest_scan, src_scan, src_left, (const uint8_t*)m_pSrcPalette, width, m_BlendType, clip_scan, dst_extra_alpha);
@@ -4208,7 +4211,8 @@ FX_BOOL CFX_DIBitmap::CompositeRect(int left, int top, int width, int height, FX
                 }
         }
         return TRUE;
-    } else if (m_bpp == 1) {
+    }
+    if (m_bpp == 1) {
         ASSERT(!IsCmykImage() && (uint8_t)(alpha_flag >> 8) == 0);
         int left_shift = rect.left % 8;
         int right_shift = rect.right % 8;
index 8e96379..d7860ae 100644 (file)
@@ -843,12 +843,14 @@ FX_BOOL ConvertBuffer(FXDIB_Format dest_format, uint8_t* dest_buf, int dest_pitc
                         return _ConvertBuffer_1bppPlt2Gray(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_1bppMask2Gray(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) == 8) {
+                }
+                if ((src_format & 0xff) == 8) {
                     if (pSrcBitmap->GetPalette()) {
                         return _ConvertBuffer_8bppPlt2Gray(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_8bppMask2Gray(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) >= 24) {
+                }
+                if ((src_format & 0xff) >= 24) {
                     return _ConvertBuffer_RgbOrCmyk2Gray(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                 }
                 return FALSE;
@@ -861,7 +863,8 @@ FX_BOOL ConvertBuffer(FXDIB_Format dest_format, uint8_t* dest_buf, int dest_pitc
                 d_pal = FX_Alloc(FX_DWORD, 256);
                 if (((src_format & 0xff) == 1 || (src_format & 0xff) == 8) && pSrcBitmap->GetPalette()) {
                     return _ConvertBuffer_Plt2PltRgb8(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, d_pal, pIccTransform);
-                } else if ((src_format & 0xff) >= 24) {
+                }
+                if ((src_format & 0xff) >= 24) {
                     return _ConvertBuffer_Rgb2PltRgb8(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, d_pal, pIccTransform);
                 }
                 return FALSE;
@@ -873,14 +876,17 @@ FX_BOOL ConvertBuffer(FXDIB_Format dest_format, uint8_t* dest_buf, int dest_pitc
                         return _ConvertBuffer_1bppPlt2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_1bppMask2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) == 8) {
+                }
+                if ((src_format & 0xff) == 8) {
                     if (pSrcBitmap->GetPalette()) {
                         return _ConvertBuffer_8bppPlt2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_8bppMask2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) == 24) {
+                }
+                if ((src_format & 0xff) == 24) {
                     return _ConvertBuffer_24bppRgb2Rgb24(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
-                } else if ((src_format & 0xff) == 32) {
+                }
+                if ((src_format & 0xff) == 32) {
                     return _ConvertBuffer_32bppRgb2Rgb24(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                 }
                 return FALSE;
@@ -892,12 +898,14 @@ FX_BOOL ConvertBuffer(FXDIB_Format dest_format, uint8_t* dest_buf, int dest_pitc
                         return _ConvertBuffer_1bppPlt2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_1bppMask2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) == 8) {
+                }
+                if ((src_format & 0xff) == 8) {
                     if (pSrcBitmap->GetPalette()) {
                         return _ConvertBuffer_8bppPlt2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
                     return _ConvertBuffer_8bppMask2Rgb(dest_format, dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top);
-                } else if ((src_format & 0xff) >= 24) {
+                }
+                if ((src_format & 0xff) >= 24) {
                     if (src_format & 0x0400) {
                         return _ConvertBuffer_32bppCmyk2Rgb32(dest_buf, dest_pitch, width, height, pSrcBitmap, src_left, src_top, pIccTransform);
                     }
index 11e9a11..7390c43 100644 (file)
@@ -346,9 +346,8 @@ FX_BOOL CStretchEngine::ContinueStretchHorz(IFX_Pause* pPause)
         if (rows_to_go == 0) {
             if (pPause && pPause->NeedToPauseNow()) {
                 return TRUE;
-            } else {
-                rows_to_go = FX_STRECH_PAUSE_ROWS;
             }
+            rows_to_go = FX_STRECH_PAUSE_ROWS;
         }
         const uint8_t* src_scan = m_pSource->GetScanline(m_CurRow);
         uint8_t* dest_scan = m_pInterBuf + (m_CurRow - m_SrcClip.top) * m_InterPitch;
@@ -745,17 +744,15 @@ FX_BOOL CFX_ImageStretcher::Start(IFX_ScanlineComposer* pDest,
     }
     if (flags & FXDIB_DOWNSAMPLE) {
         return StartQuickStretch();
-    } else {
-        return StartStretch();
     }
+    return StartStretch();
 }
 FX_BOOL CFX_ImageStretcher::Continue(IFX_Pause* pPause)
 {
     if (m_Flags & FXDIB_DOWNSAMPLE) {
         return ContinueQuickStretch(pPause);
-    } else {
-        return ContinueStretch(pPause);
     }
+    return ContinueStretch(pPause);
 }
 #define MAX_PROGRESSIVE_STRETCH_PIXELS 1000000
 FX_BOOL CFX_ImageStretcher::StartStretch()
index 82a1497..8a864f1 100644 (file)
@@ -1033,10 +1033,8 @@ FX_DWORD CFX_DIBitmap::GetPixel(int x, int y) const
         case FXDIB_1bppRgb: {
                 if ((*pos) & (1 << (7 - x % 8))) {
                     return m_pPalette ? m_pPalette[1] : 0xffffffff;
-                } else {
-                    return m_pPalette ? m_pPalette[0] : 0xff000000;
                 }
-                break;
+                return m_pPalette ? m_pPalette[0] : 0xff000000;
             }
         case FXDIB_8bppMask:
             return (*pos) << 24;
@@ -1588,7 +1586,8 @@ FX_BOOL CFX_ImageRenderer::Continue(IFX_Pause* pPause)
 {
     if (m_Status == 1) {
         return m_Stretcher.Continue(pPause);
-    } else if (m_Status == 2) {
+    }
+    if (m_Status == 2) {
         if (m_pTransformer->Continue(pPause)) {
             return TRUE;
         }
index 4235779..e34e715 100644 (file)
@@ -345,9 +345,11 @@ FX_BOOL CFX_ImageTransformer::Continue(IFX_Pause* pPause)
             m_Storer.Replace(m_Storer.GetBitmap()->SwapXY(m_pMatrix->c > 0, m_pMatrix->b < 0));
         }
         return FALSE;
-    } else if (m_Status == 2) {
+    }
+    if (m_Status == 2) {
         return m_Stretcher.Continue(pPause);
-    } else if (m_Status != 3) {
+    }
+    if (m_Status != 3) {
         return FALSE;
     }
     if (m_Stretcher.Continue(pPause)) {
index 793dfc5..0baa99c 100644 (file)
@@ -64,13 +64,14 @@ FX_BOOL CFX_RenderDevice::CreateCompatibleBitmap(CFX_DIBitmap* pDIB, int width,
 {
     if (m_RenderCaps & FXRC_CMYK_OUTPUT) {
         return pDIB->Create(width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Cmyka : FXDIB_Cmyk);
-    } else if (m_RenderCaps & FXRC_BYTEMASK_OUTPUT) {
+    }
+    if (m_RenderCaps & FXRC_BYTEMASK_OUTPUT) {
         return pDIB->Create(width, height, FXDIB_8bppMask);
-    } else
+    }
 #if _FXM_PLATFORM_  == _FXM_PLATFORM_APPLE_
-        return pDIB->Create(width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Argb : FXDIB_Rgb32);
+    return pDIB->Create(width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Argb : FXDIB_Rgb32);
 #else
-        return pDIB->Create(width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Argb : FXDIB_Rgb);
+    return pDIB->Create(width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Argb : FXDIB_Rgb);
 #endif
 }
 FX_BOOL CFX_RenderDevice::SetClip_PathFill(const CFX_PathData* pPathData,
index f88cbaa..6a950bf 100644 (file)
@@ -309,9 +309,8 @@ CFX_ByteString CFX_Font::GetFamilyName() const
     }
     if (m_Face) {
         return CFX_ByteString(FXFT_Get_Face_Family_Name(m_Face));
-    } else {
-        return m_pSubstFont->m_Family;
     }
+    return m_pSubstFont->m_Family;
 }
 CFX_ByteString CFX_Font::GetFaceName() const
 {
@@ -329,9 +328,8 @@ CFX_ByteString CFX_Font::GetFaceName() const
             facename += " " + style;
         }
         return facename;
-    } else {
-        return m_pSubstFont->m_Family;
     }
+    return m_pSubstFont->m_Family;
 }
 FX_BOOL CFX_Font::GetBBox(FX_RECT &bbox)
 {
@@ -410,21 +408,20 @@ FX_DWORD CFX_UnicodeEncoding::GlyphFromCharCode(FX_DWORD charcode)
 }
 FX_DWORD CFX_UnicodeEncoding::GlyphFromCharCodeEx(FX_DWORD charcode, int encoding)
 {
-    FXFT_Face face =  m_pFont->GetFace();
+    FXFT_Face face = m_pFont->GetFace();
     if (!face) {
         return charcode;
     }
     if (encoding == ENCODING_UNICODE) {
-        return GlyphFromCharCode(charcode);
-    } else {
-        int nmaps = FXFT_Get_Face_CharmapCount(m_pFont->m_Face);
-        int i = 0;
-        while (i < nmaps) {
-            int encoding = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i++]);
-            if (encoding != FXFT_ENCODING_UNICODE) {
-                FXFT_Select_Charmap(face, encoding);
-                break;
-            }
+        return GlyphFromCharCode(charcode);
+    }
+    int nmaps = FXFT_Get_Face_CharmapCount(m_pFont->m_Face);
+    int i = 0;
+    while (i < nmaps) {
+        int encoding = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i++]);
+        if (encoding != FXFT_ENCODING_UNICODE) {
+            FXFT_Select_Charmap(face, encoding);
+            break;
         }
     }
     return FXFT_Get_Char_Index(face, charcode);
index 8956cd1..4674589 100644 (file)
@@ -688,7 +688,8 @@ uint8_t _GetCharsetFromCodePage(FX_WORD codepage)
         const CHARSET_MAP & cp = g_Codepage2CharsetTable[iMid];
         if (codepage == cp.codepage) {
             return cp.charset;
-        } else if (codepage < cp.codepage) {
+        }
+        if (codepage < cp.codepage) {
             iEnd = iMid - 1;
         } else {
             iStart = iMid + 1;
@@ -1159,14 +1160,10 @@ FXFT_Face CFX_FontMapper::FindSubstFont(const CFX_ByteString& name, FX_BOOL bTru
                     m_pFontMgr->GetStandardFont(pFontData, size, 12);
                     m_FoxitFaces[12] = m_pFontMgr->GetFixedFace(pFontData, size, 0);
                     return m_FoxitFaces[12];
-                } else {
-                    pSubstFont->m_SubstFlags |= FXFONT_SUBST_NONSYMBOL;
-                    return FindSubstFont(family, bTrueType, flags & ~FXFONT_SYMBOLIC, weight, italic_angle, 0, pSubstFont);
                 }
-#else
+#endif
                 pSubstFont->m_SubstFlags |= FXFONT_SUBST_NONSYMBOL;
                 return FindSubstFont(family, bTrueType, flags & ~FXFONT_SYMBOLIC, weight, italic_angle, 0, pSubstFont);
-#endif
             }
             if (Charset == FXFONT_ANSI_CHARSET) {
                 pSubstFont->m_SubstFlags |= FXFONT_SUBST_STANDARD;
@@ -1175,9 +1172,8 @@ FXFT_Face CFX_FontMapper::FindSubstFont(const CFX_ByteString& name, FX_BOOL bTru
             int index = m_CharsetArray.Find(Charset);
             if (index < 0) {
                 return UseInternalSubst(pSubstFont, iBaseFont, italic_angle, old_weight, PitchFamily);
-            } else {
-                hFont = m_pFontInfo->GetFont(m_FaceArray[index]);
             }
+            hFont = m_pFontInfo->GetFont(m_FaceArray[index]);
         }
     }
     pSubstFont->m_ExtHandle = m_pFontInfo->RetainFont(hFont);
index 631ff8e..4e73345 100644 (file)
@@ -63,15 +63,14 @@ static int32_t GetJapanesePreference(const FX_CHAR* facearr, int weight, int pic
     if (face.Find("Gothic") >= 0 || face.Find("\x83\x53\x83\x56\x83\x62\x83\x4e") >= 0) {
         if (face.Find("PGothic") >= 0 || face.Find("\x82\x6f\x83\x53\x83\x56\x83\x62\x83\x4e") >= 0) {
             return 0;
-        } else {
-            return 1;
         }
-    } else if (face.Find("Mincho") >= 0 || face.Find("\x96\xbe\x92\xa9") >= 0) {
+        return 1;
+    }
+    if (face.Find("Mincho") >= 0 || face.Find("\x96\xbe\x92\xa9") >= 0) {
         if (face.Find("PMincho") >= 0 || face.Find("\x82\x6f\x96\xbe\x92\xa9") >= 0) {
             return 2;
-        } else {
-            return 3;
         }
+        return 3;
     }
     if (!(picth_family & FXFONT_FF_ROMAN) && weight > 400) {
         return 0;
index ea1d803..b1410b3 100644 (file)
@@ -55,7 +55,8 @@ void CFX_ClipRgn::IntersectMaskRect(FX_RECT rect, FX_RECT mask_rect, CFX_DIBitma
     if (m_Box.IsEmpty()) {
         m_Type = RectI;
         return;
-    } else if (m_Box == mask_rect) {
+    }
+    if (m_Box == mask_rect) {
         m_Mask = Mask;
         return;
     }
@@ -229,7 +230,8 @@ static void _UpdateLineEndPoints(CFX_FloatRect& rect, FX_FLOAT start_x, FX_FLOAT
         rect.UpdateRect(end_x + hw, point_y);
         rect.UpdateRect(end_x - hw, point_y);
         return;
-    } else if (start_y == end_y) {
+    }
+    if (start_y == end_y) {
         FX_FLOAT point_x;
         if (end_x < start_x) {
             point_x = end_x - hw;
index 76c7cf4..59a4cfb 100644 (file)
@@ -1154,38 +1154,37 @@ const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap(CFX_Font* pFont, FX_DWORD
 #else
     if (text_flags & FXTEXT_NO_NATIVETEXT) {
         return LookUpGlyphBitmap(pFont, pMatrix, FaceGlyphsKey, glyph_index, bFontStyle, dest_width, anti_alias);
+    }
+    CFX_GlyphBitmap* pGlyphBitmap;
+    CFX_SizeGlyphCache* pSizeCache = NULL;
+    if (m_SizeMap.Lookup(FaceGlyphsKey, (void*&)pSizeCache)) {
+        if (pSizeCache->m_GlyphMap.Lookup((void*)(uintptr_t)glyph_index, (void*&)pGlyphBitmap)) {
+            return pGlyphBitmap;
+        }
+        pGlyphBitmap = RenderGlyph_Nativetext(pFont, glyph_index, pMatrix, dest_width, anti_alias);
+        if (pGlyphBitmap) {
+            pSizeCache->m_GlyphMap.SetAt((void*)(uintptr_t)glyph_index, pGlyphBitmap);
+            return pGlyphBitmap;
+        }
     } else {
-        CFX_GlyphBitmap* pGlyphBitmap;
-        CFX_SizeGlyphCache* pSizeCache = NULL;
-        if (m_SizeMap.Lookup(FaceGlyphsKey, (void*&)pSizeCache)) {
-            if (pSizeCache->m_GlyphMap.Lookup((void*)(uintptr_t)glyph_index, (void*&)pGlyphBitmap)) {
-                return pGlyphBitmap;
-            }
-            pGlyphBitmap = RenderGlyph_Nativetext(pFont, glyph_index, pMatrix, dest_width, anti_alias);
-            if (pGlyphBitmap) {
-                pSizeCache->m_GlyphMap.SetAt((void*)(uintptr_t)glyph_index, pGlyphBitmap);
-                return pGlyphBitmap;
-            }
-        } else {
-            pGlyphBitmap = RenderGlyph_Nativetext(pFont, glyph_index, pMatrix, dest_width, anti_alias);
-            if (pGlyphBitmap) {
-                pSizeCache = new CFX_SizeGlyphCache;
-                m_SizeMap.SetAt(FaceGlyphsKey, pSizeCache);
-                pSizeCache->m_GlyphMap.SetAt((void*)(uintptr_t)glyph_index, pGlyphBitmap);
-                return pGlyphBitmap;
-            }
+        pGlyphBitmap = RenderGlyph_Nativetext(pFont, glyph_index, pMatrix, dest_width, anti_alias);
+        if (pGlyphBitmap) {
+            pSizeCache = new CFX_SizeGlyphCache;
+            m_SizeMap.SetAt(FaceGlyphsKey, pSizeCache);
+            pSizeCache->m_GlyphMap.SetAt((void*)(uintptr_t)glyph_index, pGlyphBitmap);
+            return pGlyphBitmap;
         }
-        if (pFont->GetSubstFont())
-            keygen.Generate(9, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000),
-                            (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000), dest_width, anti_alias,
-                            pFont->GetSubstFont()->m_Weight, pFont->GetSubstFont()->m_ItalicAngle, pFont->IsVertical());
-        else
-            keygen.Generate(6, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000),
-                            (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000), dest_width, anti_alias);
-        CFX_ByteStringC FaceGlyphsKey(keygen.m_Key, keygen.m_KeyLen);
-        text_flags |= FXTEXT_NO_NATIVETEXT;
-        return LookUpGlyphBitmap(pFont, pMatrix, FaceGlyphsKey, glyph_index, bFontStyle, dest_width, anti_alias);
     }
+    if (pFont->GetSubstFont())
+        keygen.Generate(9, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000),
+                        (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000), dest_width, anti_alias,
+                        pFont->GetSubstFont()->m_Weight, pFont->GetSubstFont()->m_ItalicAngle, pFont->IsVertical());
+    else
+        keygen.Generate(6, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000),
+                        (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000), dest_width, anti_alias);
+    CFX_ByteStringC FaceGlyphsKey2(keygen.m_Key, keygen.m_KeyLen);
+    text_flags |= FXTEXT_NO_NATIVETEXT;
+    return LookUpGlyphBitmap(pFont, pMatrix, FaceGlyphsKey2, glyph_index, bFontStyle, dest_width, anti_alias);
 #endif
 }
 CFX_SizeGlyphCache::~CFX_SizeGlyphCache()
index da9e6f2..3437eb4 100644 (file)
 #include "../../../include/fxcodec/fx_codec.h"
 #include "SkBlitter.h"
 #include "fx_skia_blitter_new.h"
-       // We use our own renderer here to make it simple
-       void CFX_SkiaRenderer::blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[])
-       {
-               FXSYS_assert(m_Alpha);
-               if (m_pOriDevice == NULL && composite_span == NULL) return;
-               if (y < m_ClipBox.top || y >= m_ClipBox.bottom) return;
-               while (1)
-               {
-                       int width = runs[0];
-                       SkASSERT(width >= 0);
-                       if (width <= 0)
-                               return;
-                       unsigned aa = antialias[0];
-                       if (aa)
-                               (*composite_span)(m_pDestScan, m_pOriScan, 0, x, width, y, aa, m_ClipBox.top, m_ClipBox.left, m_ClipBox.right, m_pClipScan, m_pDestExtraAlphaScan);
-                       runs += width;
-                       antialias += width;
-                       x += width;
-               }
-       }
+    // We use our own renderer here to make it simple
+    void CFX_SkiaRenderer::blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[])
+    {
+        FXSYS_assert(m_Alpha);
+        if (m_pOriDevice == NULL && composite_span == NULL) return;
+        if (y < m_ClipBox.top || y >= m_ClipBox.bottom) return;
+        while (1)
+        {
+            int width = runs[0];
+            SkASSERT(width >= 0);
+            if (width <= 0)
+                return;
+            unsigned aa = antialias[0];
+            if (aa)
+                (*composite_span)(m_pDestScan, m_pOriScan, 0, x, width, y, aa, m_ClipBox.top, m_ClipBox.left, m_ClipBox.right, m_pClipScan, m_pDestExtraAlphaScan);
+            runs += width;
+            antialias += width;
+            x += width;
+        }
+    }
 
-       void CFX_SkiaRenderer::blitH(int x, int y, int width)
-       {
-               FXSYS_assert(m_Alpha && width);
-               if (y < m_ClipBox.top || y >= m_ClipBox.bottom) return;
-               (*composite_span)(m_pDestScan, m_pOriScan, 0, x, width, y, 255, m_ClipBox.top, m_ClipBox.left, m_ClipBox.right, m_pClipScan, m_pDestExtraAlphaScan);
-       }
+    void CFX_SkiaRenderer::blitH(int x, int y, int width)
+    {
+        FXSYS_assert(m_Alpha && width);
+        if (y < m_ClipBox.top || y >= m_ClipBox.bottom) return;
+        (*composite_span)(m_pDestScan, m_pOriScan, 0, x, width, y, 255, m_ClipBox.top, m_ClipBox.left, m_ClipBox.right, m_pClipScan, m_pDestExtraAlphaScan);
+    }
 
-       void CFX_SkiaRenderer::blitV(int x, int y, int height, SkAlpha alpha)
-       {
-               FXSYS_assert(m_Alpha && alpha);
-               if (alpha == 255) {
-                       blitRect(x, y, 1, height);
-               } else {
-                       int16_t runs[2];
-                       runs[0] = 1;
-                       runs[1] = 0;
-                       while (--height >= 0) {
-                               if (y >= m_ClipBox.bottom)
-                                       return;
-                               blitAntiH(x, y ++, &alpha, runs);
-                       }
-               }
-       }
-       void CFX_SkiaRenderer::blitRect(int x, int y, int width, int height)
-       {
-               FXSYS_assert(m_Alpha && width);
-               while (--height >= 0){
-                       if (y >= m_ClipBox.bottom)
-                               return;
-                       blitH(x, y ++, width);
-               }
-       }
+    void CFX_SkiaRenderer::blitV(int x, int y, int height, SkAlpha alpha)
+    {
+        FXSYS_assert(m_Alpha && alpha);
+        if (alpha == 255) {
+            blitRect(x, y, 1, height);
+        } else {
+            int16_t runs[2];
+            runs[0] = 1;
+            runs[1] = 0;
+            while (--height >= 0) {
+                if (y >= m_ClipBox.bottom)
+                    return;
+                blitAntiH(x, y ++, &alpha, runs);
+            }
+        }
+    }
+    void CFX_SkiaRenderer::blitRect(int x, int y, int width, int height)
+    {
+        FXSYS_assert(m_Alpha && width);
+        while (--height >= 0){
+            if (y >= m_ClipBox.bottom)
+                return;
+            blitH(x, y ++, width);
+        }
+    }
 
-       void CFX_SkiaRenderer::blitAntiRect(int x, int y, int width, int height,
+    void CFX_SkiaRenderer::blitAntiRect(int x, int y, int width, int height,
                              SkAlpha leftAlpha, SkAlpha rightAlpha)
-       {
-               blitV(x++, y, height, leftAlpha);
-               if (width > 0) {
-                       blitRect(x, y, width, height);
-                       x += width;
-               }
-               blitV(x, y, height, rightAlpha);
-       }
-       /*---------------------------------------------------------------------------------------------------*/
-       void CFX_SkiaRenderer::CompositeSpan1bpp_0(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_bRgbByteOrder);
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left/8;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start/8;
+    {
+        blitV(x++, y, height, leftAlpha);
+        if (width > 0) {
+            blitRect(x, y, width, height);
+            x += width;
+        }
+        blitV(x, y, height, rightAlpha);
+    }
+    /*---------------------------------------------------------------------------------------------------*/
+    void CFX_SkiaRenderer::CompositeSpan1bpp_0(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_bRgbByteOrder);
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left/8;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start/8;
 
-               int index = 0;
-               if (m_pDevice->GetPalette() == NULL)
-                       index = ((uint8_t)m_Color == 0xff) ? 1 : 0;
-               else {
-                       for (int i = 0; i < 2; i ++)
-                               if (FXARGB_TODIB(m_pDevice->GetPalette()[i]) == m_Color)
-                                       index = i;
-               }
-               uint8_t* dest_scan1 = dest_scan;
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       if (src_alpha) {
-                               if (!index)
-                                       *dest_scan1 &= ~(1 << (7 - (col+span_left)%8));
-                               else
-                                       *dest_scan1|= 1 << (7 - (col+span_left)%8);
-                       }
-                       dest_scan1 = dest_scan+(span_left%8+col-col_start+1)/8;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpan1bpp_4(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_bRgbByteOrder);
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left/8;
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start/8;
+        int index = 0;
+        if (m_pDevice->GetPalette() == NULL)
+            index = ((uint8_t)m_Color == 0xff) ? 1 : 0;
+        else {
+            for (int i = 0; i < 2; i ++)
+                if (FXARGB_TODIB(m_pDevice->GetPalette()[i]) == m_Color)
+                    index = i;
+        }
+        uint8_t* dest_scan1 = dest_scan;
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            if (src_alpha) {
+                if (!index)
+                    *dest_scan1 &= ~(1 << (7 - (col+span_left)%8));
+                else
+                    *dest_scan1|= 1 << (7 - (col+span_left)%8);
+            }
+            dest_scan1 = dest_scan+(span_left%8+col-col_start+1)/8;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpan1bpp_4(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_bRgbByteOrder);
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left/8;
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start/8;
 
-               int index = 0;
-               if (m_pDevice->GetPalette() == NULL)
-                       index = ((uint8_t)m_Color == 0xff) ? 1 : 0;
-               else {
-                       for (int i = 0; i < 2; i ++)
-                               if (FXARGB_TODIB(m_pDevice->GetPalette()[i]) == m_Color)
-                                       index = i;
-               }
-               uint8_t* dest_scan1 = dest_scan;
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                       if (src_alpha1) {
-                               if (!index)
-                                       *dest_scan1 &= ~(1 << (7 - (col+span_left)%8));
-                               else
-                                       *dest_scan1|= 1 << (7 - (col+span_left)%8);
-                       }
-                       dest_scan1 = dest_scan+(span_left%8+col-col_start+1)/8;
-               }
-       }
-       /*-----------------------------------------------------------------------------------------------------*/
-       void CFX_SkiaRenderer::CompositeSpanGray_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               ASSERT(!m_bRgbByteOrder);
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start;
-               if (cover_scan == 255 && m_Alpha == 255) {
-                       FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
-                       return;
-               }
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha);
-                       dest_scan++;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanGray_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               ASSERT(!m_bRgbByteOrder);
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start;
-               ori_scan += col_start;
-               if (m_Alpha == 255 && cover_scan == 255) {
-                       FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
-               } else {
-                       int src_alpha = m_Alpha;
+        int index = 0;
+        if (m_pDevice->GetPalette() == NULL)
+            index = ((uint8_t)m_Color == 0xff) ? 1 : 0;
+        else {
+            for (int i = 0; i < 2; i ++)
+                if (FXARGB_TODIB(m_pDevice->GetPalette()[i]) == m_Color)
+                    index = i;
+        }
+        uint8_t* dest_scan1 = dest_scan;
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha * clip_scan[col] / 255;
+            if (src_alpha1) {
+                if (!index)
+                    *dest_scan1 &= ~(1 << (7 - (col+span_left)%8));
+                else
+                    *dest_scan1|= 1 << (7 - (col+span_left)%8);
+            }
+            dest_scan1 = dest_scan+(span_left%8+col-col_start+1)/8;
+        }
+    }
+    /*-----------------------------------------------------------------------------------------------------*/
+    void CFX_SkiaRenderer::CompositeSpanGray_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        ASSERT(!m_bRgbByteOrder);
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start;
+        if (cover_scan == 255 && m_Alpha == 255) {
+            FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
+            return;
+        }
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha);
+            dest_scan++;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanGray_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        ASSERT(!m_bRgbByteOrder);
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start;
+        ori_scan += col_start;
+        if (m_Alpha == 255 && cover_scan == 255) {
+            FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
+        } else {
+            int src_alpha = m_Alpha;
 #if 1
-                       for (int col = col_start; col < col_end; col ++) {
-                               int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
-                               dest_scan ++;
-                       }
+            for (int col = col_start; col < col_end; col ++) {
+                int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
+                dest_scan ++;
+            }
 #else
-                       if (m_bFullCover) {
-                               if (src_alpha == 255) {
-                                       FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
-                                       return;
-                               }
-                               for (int col = col_start; col < col_end; col ++)
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                       } else {
-                               for (int col = col_start; col < col_end; col ++) {
-                                       int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
-                                       dest_scan++;
-                               }
-                       }
+            if (m_bFullCover) {
+                if (src_alpha == 255) {
+                    FXSYS_memset(dest_scan, FXARGB_MAKE(m_Gray, m_Gray, m_Gray, m_Gray), col_end - col_start);
+                    return;
+                }
+                for (int col = col_start; col < col_end; col ++)
+                    *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+            } else {
+                for (int col = col_start; col < col_end; col ++) {
+                    int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
+                    dest_scan++;
+                }
+            }
 #endif
-               }
-       }
+        }
+    }
 
-       void CFX_SkiaRenderer::CompositeSpanGray_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_bRgbByteOrder);
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start;
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                       if (!src_alpha1) {
-                               dest_scan ++;
-                               continue;
-                       }
-                       if (src_alpha1 == 255)
-                               *dest_scan++ = m_Gray;
-                       else {
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha1);
-                               dest_scan ++;
-                       }
-               }
-       }
+    void CFX_SkiaRenderer::CompositeSpanGray_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_bRgbByteOrder);
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start;
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha * clip_scan[col] / 255;
+            if (!src_alpha1) {
+                dest_scan ++;
+                continue;
+            }
+            if (src_alpha1 == 255)
+                *dest_scan++ = m_Gray;
+            else {
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha1);
+                dest_scan ++;
+            }
+        }
+    }
 
-       void CFX_SkiaRenderer::CompositeSpanGray_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left;
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start;
-               ori_scan += col_start;
+    void CFX_SkiaRenderer::CompositeSpanGray_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left;
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left;
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start;
+        ori_scan += col_start;
 #if 1
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha = m_Alpha * clip_scan[col] / 255;
-                       if (src_alpha == 255 && cover_scan == 255) {
-                               *dest_scan++ = m_Gray;
-                               ori_scan++;
-                               continue;
-                       }
-                       int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
-                       dest_scan++;
-               }
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha = m_Alpha * clip_scan[col] / 255;
+            if (src_alpha == 255 && cover_scan == 255) {
+                *dest_scan++ = m_Gray;
+                ori_scan++;
+                continue;
+            }
+            int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
+            dest_scan++;
+        }
 
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       dest_scan++;
-                                       ori_scan++;
-                                       continue;
-                               }
-                               if (src_alpha == 255){
-                                       *dest_scan++ = m_Gray;
-                                       ori_scan++;
-                                       continue;
-                               }
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                       }
-               } else {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (src_alpha == 255 && cover_scan == 255) {
-                                       *dest_scan++ = m_Gray;
-                                       ori_scan++;
-                                       continue;
-                               }
-                               int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
-                               dest_scan++;
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    dest_scan++;
+                    ori_scan++;
+                    continue;
+                }
+                if (src_alpha == 255){
+                    *dest_scan++ = m_Gray;
+                    ori_scan++;
+                    continue;
+                }
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+            }
+        } else {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (src_alpha == 255 && cover_scan == 255) {
+                    *dest_scan++ = m_Gray;
+                    ori_scan++;
+                    continue;
+                }
+                int gray = FXDIB_ALPHA_MERGE(*ori_scan++, m_Gray, src_alpha);
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, gray, cover_scan);
+                dest_scan++;
+            }
+        }
 #endif
-       }
-       /*--------------------------------------------------------------------------------------------------*/
+    }
+    /*--------------------------------------------------------------------------------------------------*/
 
-       void CFX_SkiaRenderer::CompositeSpanARGB_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start<<2;
-               if (m_Alpha == 255 && cover_scan == 255) {
-                       FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
-                       return;
-               }
-               int src_alpha;
+    void CFX_SkiaRenderer::CompositeSpanARGB_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start<<2;
+        if (m_Alpha == 255 && cover_scan == 255) {
+            FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
+            return;
+        }
+        int src_alpha;
 #if 0
-               if (m_bFullCover) {
-                       if (m_Alpha == 255) {
-                               FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
-                               return;
-                       }
-               }
-               else
+        if (m_bFullCover) {
+            if (m_Alpha == 255) {
+                FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
+                return;
+            }
+        }
+        else
 #endif
-                       src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       // Dest format: Argb
-                       // calculate destination alpha (it's union of source and dest alpha)
-                       if (dest_scan[3] == 0) {
-                               dest_scan[3] = src_alpha;
-                               *dest_scan++ = m_Blue;
-                               *dest_scan++ = m_Green;
-                               *dest_scan = m_Red;
-                               dest_scan += 2;
-                               continue;
-                       }
-                       uint8_t dest_alpha = dest_scan[3] + src_alpha - dest_scan[3] * src_alpha / 255;
-                       dest_scan[3] = dest_alpha;
-                       int alpha_ratio = src_alpha*255/dest_alpha;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                       dest_scan += 2;
-               }
-       }
+            src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            // Dest format: Argb
+            // calculate destination alpha (it's union of source and dest alpha)
+            if (dest_scan[3] == 0) {
+                dest_scan[3] = src_alpha;
+                *dest_scan++ = m_Blue;
+                *dest_scan++ = m_Green;
+                *dest_scan = m_Red;
+                dest_scan += 2;
+                continue;
+            }
+            uint8_t dest_alpha = dest_scan[3] + src_alpha - dest_scan[3] * src_alpha / 255;
+            dest_scan[3] = dest_alpha;
+            int alpha_ratio = src_alpha*255/dest_alpha;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+            dest_scan += 2;
+        }
+    }
 
-       void CFX_SkiaRenderer::CompositeSpanARGB_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               //ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
-               //ori_scan += col_start << 2;
+    void CFX_SkiaRenderer::CompositeSpanARGB_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        //ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
+        //ori_scan += col_start << 2;
 
-               if (m_Alpha == 255 && cover_scan == 255){
-                       FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
-                       return;
-               }
-               if (cover_scan == 255) {
-                       int dst_color = (0x00ffffff&m_Color)|(m_Alpha<<24);
-                       FXSYS_memset(dest_scan, dst_color, (col_end - col_start)<<2);
-                       return;
-               }
-               // Do not need origin bitmap, because of merge in pure transparent background
-               int src_alpha_covered = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++)
-               {
-                       // shortcut
-                       if (dest_scan[3] == 0) {
-                               dest_scan[3] = src_alpha_covered;
-                               *dest_scan ++ = m_Blue;
-                               *dest_scan ++ = m_Green;
-                               *dest_scan = m_Red;
-                               dest_scan += 2;
-                               continue;
-                       }
-                       // We should do alpha transition and color transition
-                       // alpha fg          color fg
-                       // alpha bg          color bg
-                       // alpha cover       color cover
-                       dest_scan[3] = FXDIB_ALPHA_MERGE(dest_scan[3], m_Alpha, cover_scan);
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, cover_scan);
-                       dest_scan += 2;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanARGB_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
+        if (m_Alpha == 255 && cover_scan == 255){
+            FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
+            return;
+        }
+        if (cover_scan == 255) {
+            int dst_color = (0x00ffffff&m_Color)|(m_Alpha<<24);
+            FXSYS_memset(dest_scan, dst_color, (col_end - col_start)<<2);
+            return;
+        }
+        // Do not need origin bitmap, because of merge in pure transparent background
+        int src_alpha_covered = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++)
+        {
+            // shortcut
+            if (dest_scan[3] == 0) {
+                dest_scan[3] = src_alpha_covered;
+                *dest_scan ++ = m_Blue;
+                *dest_scan ++ = m_Green;
+                *dest_scan = m_Red;
+                dest_scan += 2;
+                continue;
+            }
+            // We should do alpha transition and color transition
+            // alpha fg          color fg
+            // alpha bg          color bg
+            // alpha cover       color cover
+            dest_scan[3] = FXDIB_ALPHA_MERGE(dest_scan[3], m_Alpha, cover_scan);
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, cover_scan);
+            dest_scan += 2;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanARGB_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
 #if 1
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha* clip_scan[col] / 255;
-                       if (!src_alpha1) {
-                               dest_scan += 4;
-                               continue;
-                       }
-                       if (src_alpha1 == 255) {
-                               *(FX_DWORD*)dest_scan = m_Color;
-                               dest_scan += 4;
-                       } else {
-                               // Dest format: Argb
-                               // calculate destination alpha (it's union of source and dest alpha)
-                               if (dest_scan[3] == 0) {
-                                       dest_scan[3] = src_alpha1;
-                                       *dest_scan++ = m_Blue;
-                                       *dest_scan++ = m_Green;
-                                       *dest_scan = m_Red;
-                                       dest_scan += 2;
-                                       continue;
-                               }
-                               uint8_t dest_alpha = dest_scan[3] + src_alpha1 - dest_scan[3] * src_alpha1 / 255;
-                               dest_scan[3] = dest_alpha;
-                               int alpha_ratio = src_alpha1*255/dest_alpha;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                               dest_scan += 2;
-                       }
-               }
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha* clip_scan[col] / 255;
+            if (!src_alpha1) {
+                dest_scan += 4;
+                continue;
+            }
+            if (src_alpha1 == 255) {
+                *(FX_DWORD*)dest_scan = m_Color;
+                dest_scan += 4;
+            } else {
+                // Dest format: Argb
+                // calculate destination alpha (it's union of source and dest alpha)
+                if (dest_scan[3] == 0) {
+                    dest_scan[3] = src_alpha1;
+                    *dest_scan++ = m_Blue;
+                    *dest_scan++ = m_Green;
+                    *dest_scan = m_Red;
+                    dest_scan += 2;
+                    continue;
+                }
+                uint8_t dest_alpha = dest_scan[3] + src_alpha1 - dest_scan[3] * src_alpha1 / 255;
+                dest_scan[3] = dest_alpha;
+                int alpha_ratio = src_alpha1*255/dest_alpha;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                dest_scan += 2;
+            }
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       dest_scan += 4;
-                                       continue;
-                               }
-                               if (src_alpha == 255){
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                                       continue;
-                               } else {
-                                       // Dest format: Argb
-                                       // calculate destination alpha (it's union of source and dest alpha)
-                                       if (dest_scan[3] == 0) {
-                                               dest_scan[3] = src_alpha;
-                                               *dest_scan++ = m_Blue;
-                                               *dest_scan++ = m_Green;
-                                               *dest_scan = m_Red;
-                                               dest_scan += 2;
-                                               continue;
-                                       }
-                                       uint8_t dest_alpha = dest_scan[3] + src_alpha - dest_scan[3] * src_alpha / 255;
-                                       dest_scan[3] = dest_alpha;
-                                       int alpha_ratio = src_alpha*255/dest_alpha;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                                       dest_scan += 2;
-                               }
-                       }
-               } else {
-                       int src_alpha = m_Alpha * cover_scan / 255;
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha1 = src_alpha* clip_scan[col] / 255;
-                               if (!src_alpha1) {
-                                       dest_scan += 4;
-                                       continue;
-                               }
-                               if (src_alpha1 == 255) {
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                               } else {
-                                       // Dest format: Argb
-                                       // calculate destination alpha (it's union of source and dest alpha)
-                                       if (dest_scan[3] == 0) {
-                                               dest_scan[3] = src_alpha1;
-                                               *dest_scan++ = m_Blue;
-                                               *dest_scan++ = m_Green;
-                                               *dest_scan = m_Red;
-                                               dest_scan += 2;
-                                               continue;
-                                       }
-                                       uint8_t dest_alpha = dest_scan[3] + src_alpha1 - dest_scan[3] * src_alpha1 / 255;
-                                       dest_scan[3] = dest_alpha;
-                                       int alpha_ratio = src_alpha1*255/dest_alpha;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                                       dest_scan += 2;
-                               }
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    dest_scan += 4;
+                    continue;
+                }
+                if (src_alpha == 255){
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                    continue;
+                } else {
+                    // Dest format: Argb
+                    // calculate destination alpha (it's union of source and dest alpha)
+                    if (dest_scan[3] == 0) {
+                        dest_scan[3] = src_alpha;
+                        *dest_scan++ = m_Blue;
+                        *dest_scan++ = m_Green;
+                        *dest_scan = m_Red;
+                        dest_scan += 2;
+                        continue;
+                    }
+                    uint8_t dest_alpha = dest_scan[3] + src_alpha - dest_scan[3] * src_alpha / 255;
+                    dest_scan[3] = dest_alpha;
+                    int alpha_ratio = src_alpha*255/dest_alpha;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                    dest_scan += 2;
+                }
+            }
+        } else {
+            int src_alpha = m_Alpha * cover_scan / 255;
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha1 = src_alpha* clip_scan[col] / 255;
+                if (!src_alpha1) {
+                    dest_scan += 4;
+                    continue;
+                }
+                if (src_alpha1 == 255) {
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                } else {
+                    // Dest format: Argb
+                    // calculate destination alpha (it's union of source and dest alpha)
+                    if (dest_scan[3] == 0) {
+                        dest_scan[3] = src_alpha1;
+                        *dest_scan++ = m_Blue;
+                        *dest_scan++ = m_Green;
+                        *dest_scan = m_Red;
+                        dest_scan += 2;
+                        continue;
+                    }
+                    uint8_t dest_alpha = dest_scan[3] + src_alpha1 - dest_scan[3] * src_alpha1 / 255;
+                    dest_scan[3] = dest_alpha;
+                    int alpha_ratio = src_alpha1*255/dest_alpha;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                    dest_scan += 2;
+                }
+            }
+        }
 #endif
-       }
+    }
 
-       void CFX_SkiaRenderer::CompositeSpanARGB_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               //ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
-               //ori_scan += col_start << 2;
-               // Do not need origin bitmap, because of merge in pure transparent background
-               for (int col = col_start; col < col_end; col ++)
-               {
-                       int src_alpha = m_Alpha * clip_scan[col] / 255;
-                       int src_alpha_covered = src_alpha * cover_scan / 255;
-                       // shortcut
-                       if (src_alpha_covered == 0){
-                               dest_scan += 4;
-                               continue;
-                       }
-                       // shortcut
-                       if (cover_scan == 255 || dest_scan[3] == 0)
-                       {
-                               // origin alpha always zero, just get src alpha
-                               dest_scan[3] = src_alpha_covered;
-                               *dest_scan ++ = m_Blue;
-                               *dest_scan ++ = m_Green;
-                               *dest_scan = m_Red;
-                               dest_scan += 2;
-                               continue;
-                       }
-                       // We should do alpha transition and color transition
-                       // alpha fg          color fg
-                       // alpha bg          color bg
-                       // alpha cover       color cover
-                       dest_scan[3] = FXDIB_ALPHA_MERGE(dest_scan[3], src_alpha, cover_scan);
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, cover_scan);
-                       dest_scan += 2;
-               }
-       }
+    void CFX_SkiaRenderer::CompositeSpanARGB_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        //ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
+        //ori_scan += col_start << 2;
+        // Do not need origin bitmap, because of merge in pure transparent background
+        for (int col = col_start; col < col_end; col ++)
+        {
+            int src_alpha = m_Alpha * clip_scan[col] / 255;
+            int src_alpha_covered = src_alpha * cover_scan / 255;
+            // shortcut
+            if (src_alpha_covered == 0){
+                dest_scan += 4;
+                continue;
+            }
+            // shortcut
+            if (cover_scan == 255 || dest_scan[3] == 0)
+            {
+                // origin alpha always zero, just get src alpha
+                dest_scan[3] = src_alpha_covered;
+                *dest_scan ++ = m_Blue;
+                *dest_scan ++ = m_Green;
+                *dest_scan = m_Red;
+                dest_scan += 2;
+                continue;
+            }
+            // We should do alpha transition and color transition
+            // alpha fg          color fg
+            // alpha bg          color bg
+            // alpha cover       color cover
+            dest_scan[3] = FXDIB_ALPHA_MERGE(dest_scan[3], src_alpha, cover_scan);
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, cover_scan);
+            dest_scan += 2;
+        }
+    }
 
-       /*-----------------------------------------------------------------------------------------------------------*/
-       void CFX_SkiaRenderer::CompositeSpanRGB32_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += (col_start << 2);
-               if (m_Alpha == 255 && cover_scan == 255) {
-                       FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
-                       return;
-               }
-               int src_alpha;
+    /*-----------------------------------------------------------------------------------------------------------*/
+    void CFX_SkiaRenderer::CompositeSpanRGB32_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += (col_start << 2);
+        if (m_Alpha == 255 && cover_scan == 255) {
+            FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
+            return;
+        }
+        int src_alpha;
 #if 0
-               if (m_bFullCover)
-                       src_alpha = m_Alpha;
-               else
+        if (m_bFullCover)
+            src_alpha = m_Alpha;
+        else
 #endif
-                       src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       // Dest format:  Rgb32
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
-                       dest_scan += 2;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB32_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
-               ori_scan += col_start << 2;
-               if (m_Alpha == 255 && cover_scan == 255) {
-                       FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
-                       return;
-               }
-               int src_alpha = m_Alpha;
-               for (int col = col_start; col < col_end; col ++) {
+            src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            // Dest format:  Rgb32
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
+            dest_scan += 2;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB32_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
+        ori_scan += col_start << 2;
+        if (m_Alpha == 255 && cover_scan == 255) {
+            FXSYS_memset(dest_scan, m_Color, (col_end - col_start)<<2);
+            return;
+        }
+        int src_alpha = m_Alpha;
+        for (int col = col_start; col < col_end; col ++) {
 #if 0
-                       if (m_bFullCover) {
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                               *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
-                               dest_scan += 2; ori_scan += 2;
-                               continue;
-                       }
+            if (m_bFullCover) {
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+                *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
+                dest_scan += 2; ori_scan += 2;
+                continue;
+            }
 #endif
-                       int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                       int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                       int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
-                       ori_scan += 2;
-                       *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                       dest_scan += 2;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB32_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
+            int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+            int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+            int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
+            ori_scan += 2;
+            *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+            dest_scan += 2;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB32_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
 #if 1
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                       if (!src_alpha1) {
-                               dest_scan += 4;
-                               continue;
-                       }
-                       if (src_alpha1 == 255) {
-                               *(FX_DWORD*)dest_scan = m_Color;
-                               dest_scan += 4;
-                       } else {
-                               // Dest format: Rgb or Rgb32
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
-                               dest_scan += 2;
-                       }
-               }
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha * clip_scan[col] / 255;
+            if (!src_alpha1) {
+                dest_scan += 4;
+                continue;
+            }
+            if (src_alpha1 == 255) {
+                *(FX_DWORD*)dest_scan = m_Color;
+                dest_scan += 4;
+            } else {
+                // Dest format: Rgb or Rgb32
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
+                dest_scan += 2;
+            }
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       dest_scan += 4;
-                                       continue;
-                               }
-                               if (src_alpha == 255) {
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                               } else {
-                                       // Dest format: Rgb or Rgb32
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
-                                       dest_scan += 2;
-                               }
-                       }
-               } else {
-                       // Rgb32
-                       int src_alpha = m_Alpha * cover_scan / 255;
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                               if (!src_alpha1) {
-                                       dest_scan += 4;
-                                       continue;
-                               }
-                               if (src_alpha1 == 255) {
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                               } else {
-                                       // Dest format: Rgb or Rgb32
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
-                                       dest_scan += 2;
-                               }
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    dest_scan += 4;
+                    continue;
+                }
+                if (src_alpha == 255) {
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                } else {
+                    // Dest format: Rgb or Rgb32
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
+                    dest_scan += 2;
+                }
+            }
+        } else {
+            // Rgb32
+            int src_alpha = m_Alpha * cover_scan / 255;
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha1 = src_alpha * clip_scan[col] / 255;
+                if (!src_alpha1) {
+                    dest_scan += 4;
+                    continue;
+                }
+                if (src_alpha1 == 255) {
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                } else {
+                    // Dest format: Rgb or Rgb32
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
+                    dest_scan += 2;
+                }
+            }
+        }
 #endif
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB32_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start << 2;
-               ori_scan += col_start << 2;
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB32_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + (span_left<<2);
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + (span_left<<2);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start << 2;
+        ori_scan += col_start << 2;
 #if 1
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha = m_Alpha * clip_scan[col] / 255;
-                       if (src_alpha == 255 && cover_scan == 255) {
-                               *(FX_DWORD*)dest_scan = m_Color;
-                               dest_scan += 4;
-                               ori_scan += 4;
-                               continue;
-                       }
-                       int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                       int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                       int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
-                       ori_scan += 2;
-                       *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                       dest_scan += 2;
-               }
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha = m_Alpha * clip_scan[col] / 255;
+            if (src_alpha == 255 && cover_scan == 255) {
+                *(FX_DWORD*)dest_scan = m_Color;
+                dest_scan += 4;
+                ori_scan += 4;
+                continue;
+            }
+            int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+            int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+            int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
+            ori_scan += 2;
+            *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+            dest_scan += 2;
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       *(FX_DWORD*)dest_scan = *(FX_DWORD*)ori_scan;
-                                       dest_scan += 4;
-                                       ori_scan += 4;
-                                       continue;
-                               }
-                               if (src_alpha == 255) {
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                                       ori_scan += 4;
-                                       continue;
-                               }
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                               *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
-                               dest_scan += 2; ori_scan += 2;
-                       }
-               } else {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (src_alpha == 255 && cover_scan == 255) {
-                                       *(FX_DWORD*)dest_scan = m_Color;
-                                       dest_scan += 4;
-                                       ori_scan += 4;
-                                       continue;
-                               }
-                               int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                               int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                               int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
-                               ori_scan += 2;
-                               *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                               dest_scan += 2;
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    *(FX_DWORD*)dest_scan = *(FX_DWORD*)ori_scan;
+                    dest_scan += 4;
+                    ori_scan += 4;
+                    continue;
+                }
+                if (src_alpha == 255) {
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                    ori_scan += 4;
+                    continue;
+                }
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+                *dest_scan = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
+                dest_scan += 2; ori_scan += 2;
+            }
+        } else {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (src_alpha == 255 && cover_scan == 255) {
+                    *(FX_DWORD*)dest_scan = m_Color;
+                    dest_scan += 4;
+                    ori_scan += 4;
+                    continue;
+                }
+                int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+                int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+                int r = FXDIB_ALPHA_MERGE(*ori_scan, m_Red, src_alpha);
+                ori_scan += 2;
+                *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+                dest_scan += 2;
+            }
+        }
 #endif
-       }
-       /*-----------------------------------------------------------------------------------------------------*/
-       void CFX_SkiaRenderer::CompositeSpanRGB24_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left + (span_left<<1);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += (col_start<<1)+col_start;
-               int src_alpha;
+    }
+    /*-----------------------------------------------------------------------------------------------------*/
+    void CFX_SkiaRenderer::CompositeSpanRGB24_2(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left + (span_left<<1);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += (col_start<<1)+col_start;
+        int src_alpha;
 #if 0
-               if (m_bFullCover)
-                       src_alpha = m_Alpha;
-               else
+        if (m_bFullCover)
+            src_alpha = m_Alpha;
+        else
 #endif
-                       src_alpha = m_Alpha * cover_scan / 255;
-               if (src_alpha == 255) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               *dest_scan++ = m_Blue;
-                               *dest_scan++ = m_Green;
-                               *dest_scan++ = m_Red;
-                       }
-                       return;
-               }
-               for (int col = col_start; col < col_end; col ++) {
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
-                       dest_scan ++;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB24_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left + (span_left<<1);
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left + (span_left<<1);
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += (col_start<<1) + col_start;
-               ori_scan += (col_start<<1) + col_start;
-               if (m_Alpha == 255&&cover_scan == 255) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               *dest_scan ++ = m_Blue;
-                               *dest_scan ++ = m_Green;
-                               *dest_scan ++ = m_Red;
-                       }
-                       return;
-               }
-               for (int col = col_start; col < col_end; col ++) {
+            src_alpha = m_Alpha * cover_scan / 255;
+        if (src_alpha == 255) {
+            for (int col = col_start; col < col_end; col ++) {
+                *dest_scan++ = m_Blue;
+                *dest_scan++ = m_Green;
+                *dest_scan++ = m_Red;
+            }
+            return;
+        }
+        for (int col = col_start; col < col_end; col ++) {
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
+            dest_scan ++;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB24_3(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left + (span_left<<1);
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left + (span_left<<1);
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += (col_start<<1) + col_start;
+        ori_scan += (col_start<<1) + col_start;
+        if (m_Alpha == 255&&cover_scan == 255) {
+            for (int col = col_start; col < col_end; col ++) {
+                *dest_scan ++ = m_Blue;
+                *dest_scan ++ = m_Green;
+                *dest_scan ++ = m_Red;
+            }
+            return;
+        }
+        for (int col = col_start; col < col_end; col ++) {
 #if 0
-                       if (m_bFullCover) {
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, m_Alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, m_Alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, m_Alpha);
-                               continue;
-                       }
+            if (m_bFullCover) {
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, m_Alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, m_Alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, m_Alpha);
+                continue;
+            }
 #endif
-                       int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, m_Alpha);
-                       int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, m_Alpha);
-                       int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, m_Alpha);
-                       *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                       dest_scan ++;
-               }
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB24_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start + (col_start << 1);
+            int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, m_Alpha);
+            int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, m_Alpha);
+            int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, m_Alpha);
+            *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+            dest_scan ++;
+        }
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB24_6(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start + (col_start << 1);
 #if 1
-               int src_alpha = m_Alpha * cover_scan /255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                       if (!src_alpha1) {
-                               dest_scan += 3;
-                               continue;
-                       }
-                       if (src_alpha1 == 255) {
-                               *dest_scan++ = m_Blue;
-                               *dest_scan++ = m_Green;
-                               *dest_scan++ = m_Red;
-                       } else {
-                               // Dest format: Rgb
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
-                               dest_scan ++;
-                       }
-               }
+        int src_alpha = m_Alpha * cover_scan /255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha * clip_scan[col] / 255;
+            if (!src_alpha1) {
+                dest_scan += 3;
+                continue;
+            }
+            if (src_alpha1 == 255) {
+                *dest_scan++ = m_Blue;
+                *dest_scan++ = m_Green;
+                *dest_scan++ = m_Red;
+            } else {
+                // Dest format: Rgb
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
+                dest_scan ++;
+            }
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       dest_scan += 3;
-                                       continue;
-                               }
-                               if (src_alpha == 255) {
-                                       *dest_scan++ = m_Blue;
-                                       *dest_scan++ = m_Green;
-                                       *dest_scan++ = m_Red;
-                               } else {
-                                       // Dest format: Rgb
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
-                                       dest_scan ++;
-                               }
-                       }
-               } else {
-                       int src_alpha = m_Alpha * cover_scan /255;
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                               if (!src_alpha1) {
-                                       dest_scan += 3;
-                                       continue;
-                               }
-                               if (src_alpha1 == 255) {
-                                       *dest_scan++ = m_Blue;
-                                       *dest_scan++ = m_Green;
-                                       *dest_scan++ = m_Red;
-                               } else {
-                                       // Dest format: Rgb
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
-                                       dest_scan ++;
-                               }
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    dest_scan += 3;
+                    continue;
+                }
+                if (src_alpha == 255) {
+                    *dest_scan++ = m_Blue;
+                    *dest_scan++ = m_Green;
+                    *dest_scan++ = m_Red;
+                } else {
+                    // Dest format: Rgb
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
+                    dest_scan ++;
+                }
+            }
+        } else {
+            int src_alpha = m_Alpha * cover_scan /255;
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha1 = src_alpha * clip_scan[col] / 255;
+                if (!src_alpha1) {
+                    dest_scan += 3;
+                    continue;
+                }
+                if (src_alpha1 == 255) {
+                    *dest_scan++ = m_Blue;
+                    *dest_scan++ = m_Green;
+                    *dest_scan++ = m_Red;
+                } else {
+                    // Dest format: Rgb
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha1);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha1);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha1);
+                    dest_scan ++;
+                }
+            }
+        }
 #endif
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB24_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_pDevice->IsCmykImage());
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
-               ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left+(span_left<<1);
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start + (col_start<<1);
-               ori_scan += col_start + (col_start<<1);
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB24_7(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_pDevice->IsCmykImage());
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
+        ori_scan  = (uint8_t*)m_pOriDevice->GetScanline(span_top) + span_left+(span_left<<1);
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start + (col_start<<1);
+        ori_scan += col_start + (col_start<<1);
 #if 1
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha = m_Alpha * clip_scan[col] / 255;
-                       if (src_alpha == 255 && cover_scan == 255) {
-                               *dest_scan++ = m_Blue;
-                               *dest_scan++ = m_Green;
-                               *dest_scan++ = m_Red;
-                               ori_scan += 3;
-                               continue;
-                       }
-                       int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                       int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                       int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
-                       *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                       dest_scan ++;
-               }
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha = m_Alpha * clip_scan[col] / 255;
+            if (src_alpha == 255 && cover_scan == 255) {
+                *dest_scan++ = m_Blue;
+                *dest_scan++ = m_Green;
+                *dest_scan++ = m_Red;
+                ori_scan += 3;
+                continue;
+            }
+            int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+            int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+            int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
+            *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+            dest_scan ++;
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha){
-                                       *dest_scan++ = *ori_scan++;
-                                       *dest_scan++ = *ori_scan++;
-                                       *dest_scan++ = *ori_scan++;
-                                       continue;
-                               }
-                               if (src_alpha == 255){
-                                       *dest_scan++ = m_Blue;
-                                       *dest_scan++ = m_Green;
-                                       *dest_scan++ = m_Red;
-                                       ori_scan += 3;
-                                       continue;
-                               }
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                               *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
-                       }
-               } else {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (src_alpha == 255 && cover_scan == 255) {
-                                       *dest_scan++ = m_Blue;
-                                       *dest_scan++ = m_Green;
-                                       *dest_scan++ = m_Red;
-                                       ori_scan += 3;
-                                       continue;
-                               }
-                               int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
-                               int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
-                               int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
-                               *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
-                               dest_scan ++;
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha){
+                    *dest_scan++ = *ori_scan++;
+                    *dest_scan++ = *ori_scan++;
+                    *dest_scan++ = *ori_scan++;
+                    continue;
+                }
+                if (src_alpha == 255){
+                    *dest_scan++ = m_Blue;
+                    *dest_scan++ = m_Green;
+                    *dest_scan++ = m_Red;
+                    ori_scan += 3;
+                    continue;
+                }
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+                *dest_scan++ = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
+            }
+        } else {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (src_alpha == 255 && cover_scan == 255) {
+                    *dest_scan++ = m_Blue;
+                    *dest_scan++ = m_Green;
+                    *dest_scan++ = m_Red;
+                    ori_scan += 3;
+                    continue;
+                }
+                int b = FXDIB_ALPHA_MERGE(*ori_scan++, m_Blue, src_alpha);
+                int g = FXDIB_ALPHA_MERGE(*ori_scan++, m_Green, src_alpha);
+                int r = FXDIB_ALPHA_MERGE(*ori_scan++, m_Red, src_alpha);
+                *dest_scan = FXDIB_ALPHA_MERGE( *dest_scan, b, cover_scan);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, g, cover_scan);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, r, cover_scan);
+                dest_scan ++;
+            }
+        }
 #endif
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB24_10(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
-               dest_extra_alpha_scan =  (uint8_t*)m_pDevice->m_pAlphaMask->GetScanline(span_top)+span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start+(col_start<<1);
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB24_10(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
+        dest_extra_alpha_scan =  (uint8_t*)m_pDevice->m_pAlphaMask->GetScanline(span_top)+span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start+(col_start<<1);
 #if 1
-               if (m_Alpha == 255 && cover_scan == 255) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               *dest_scan++ = (uint8_t)m_Blue;
-                               *dest_scan++ = (uint8_t)m_Green;
-                               *dest_scan++ = (uint8_t)m_Red;
-                               *dest_extra_alpha_scan++ = 255;
-                       }
-                       return;
-               }
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       // Dest format: Rgba
-                       // calculate destination alpha (it's union of source and dest alpha)
-                       uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
-                                                               (*dest_extra_alpha_scan) * src_alpha / 255;
-                       *dest_extra_alpha_scan++ = dest_alpha;
-                       int alpha_ratio = src_alpha*255/dest_alpha;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                       dest_scan ++;
-                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                       dest_scan ++;
-               }
+        if (m_Alpha == 255 && cover_scan == 255) {
+            for (int col = col_start; col < col_end; col ++) {
+                *dest_scan++ = (uint8_t)m_Blue;
+                *dest_scan++ = (uint8_t)m_Green;
+                *dest_scan++ = (uint8_t)m_Red;
+                *dest_extra_alpha_scan++ = 255;
+            }
+            return;
+        }
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            // Dest format: Rgba
+            // calculate destination alpha (it's union of source and dest alpha)
+            uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
+                                (*dest_extra_alpha_scan) * src_alpha / 255;
+            *dest_extra_alpha_scan++ = dest_alpha;
+            int alpha_ratio = src_alpha*255/dest_alpha;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+            dest_scan ++;
+            *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+            dest_scan ++;
+        }
 #else
-               if (m_bFullCover) {
-                       if (m_Alpha == 255) {
-                               for (int col = col_start; col < col_end; col ++) {
-                                       *dest_scan++ = (uint8_t)m_Blue;
-                                       *dest_scan++ = (uint8_t)m_Green;
-                                       *dest_scan++ = (uint8_t)m_Red;
-                                       *dest_extra_alpha_scan++ = 255;
-                               }
-                               return;
-                       }
-                       for (int col = col_start; col < col_end; col ++) {
-                               // Dest format: Rgba
-                               // calculate destination alpha (it's union of source and dest alpha)
-                               uint8_t dest_alpha = (*dest_extra_alpha_scan) + m_Alpha -
-                                                                       (*dest_extra_alpha_scan) * m_Alpha / 255;
-                               *dest_extra_alpha_scan++ = dest_alpha;
-                               int alpha_ratio = m_Alpha*255/dest_alpha;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                               dest_scan ++;
-                       }
-               } else {
-                       if (m_Alpha == 255 && cover_scan == 255) {
-                               for (int col = col_start; col < col_end; col ++) {
-                                       *dest_scan++ = (uint8_t)m_Blue;
-                                       *dest_scan++ = (uint8_t)m_Green;
-                                       *dest_scan++ = (uint8_t)m_Red;
-                                       *dest_extra_alpha_scan++ = 255;
-                               }
-                               return;
-                       }
-                       int src_alpha = m_Alpha * cover_scan / 255;
-                       for (int col = col_start; col < col_end; col ++) {
-                               // Dest format: Rgba
-                               // calculate destination alpha (it's union of source and dest alpha)
-                               uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
-                                                                       (*dest_extra_alpha_scan) * src_alpha / 255;
-                               *dest_extra_alpha_scan++ = dest_alpha;
-                               int alpha_ratio = src_alpha*255/dest_alpha;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                               dest_scan ++;
-                       }
-               }
+        if (m_bFullCover) {
+            if (m_Alpha == 255) {
+                for (int col = col_start; col < col_end; col ++) {
+                    *dest_scan++ = (uint8_t)m_Blue;
+                    *dest_scan++ = (uint8_t)m_Green;
+                    *dest_scan++ = (uint8_t)m_Red;
+                    *dest_extra_alpha_scan++ = 255;
+                }
+                return;
+            }
+            for (int col = col_start; col < col_end; col ++) {
+                // Dest format: Rgba
+                // calculate destination alpha (it's union of source and dest alpha)
+                uint8_t dest_alpha = (*dest_extra_alpha_scan) + m_Alpha -
+                                    (*dest_extra_alpha_scan) * m_Alpha / 255;
+                *dest_extra_alpha_scan++ = dest_alpha;
+                int alpha_ratio = m_Alpha*255/dest_alpha;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                dest_scan ++;
+            }
+        } else {
+            if (m_Alpha == 255 && cover_scan == 255) {
+                for (int col = col_start; col < col_end; col ++) {
+                    *dest_scan++ = (uint8_t)m_Blue;
+                    *dest_scan++ = (uint8_t)m_Green;
+                    *dest_scan++ = (uint8_t)m_Red;
+                    *dest_extra_alpha_scan++ = 255;
+                }
+                return;
+            }
+            int src_alpha = m_Alpha * cover_scan / 255;
+            for (int col = col_start; col < col_end; col ++) {
+                // Dest format: Rgba
+                // calculate destination alpha (it's union of source and dest alpha)
+                uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
+                                    (*dest_extra_alpha_scan) * src_alpha / 255;
+                *dest_extra_alpha_scan++ = dest_alpha;
+                int alpha_ratio = src_alpha*255/dest_alpha;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                dest_scan ++;
+            }
+        }
 #endif
-       }
-       void CFX_SkiaRenderer::CompositeSpanRGB24_14(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
-               dest_extra_alpha_scan =  (uint8_t*)m_pDevice->m_pAlphaMask->GetScanline(span_top)+span_left;
-               clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start + (col_start << 1);
+    }
+    void CFX_SkiaRenderer::CompositeSpanRGB24_14(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        dest_scan = (uint8_t*)m_pDevice->GetScanline(span_top) + span_left+(span_left<<1);
+        dest_extra_alpha_scan =  (uint8_t*)m_pDevice->m_pAlphaMask->GetScanline(span_top)+span_left;
+        clip_scan = (uint8_t*)m_pClipMask->GetScanline(span_top-clip_top) - clip_left + span_left;
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start + (col_start << 1);
 #if 1
-               int src_alpha = m_Alpha * cover_scan / 255;
-               for (int col = col_start; col < col_end; col ++) {
-                       int src_alpha1 = src_alpha * clip_scan[col] / 255;
-                       if (!src_alpha1) {
-                               dest_extra_alpha_scan++;
-                               dest_scan += 3;
-                               continue;
-                       }
-                       if (src_alpha1 == 255) {
-                               *dest_scan++ = (uint8_t)m_Blue;
-                               *dest_scan++ = (uint8_t)m_Green;
-                               *dest_scan++ = (uint8_t)m_Red;
-                               *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
-                       } else {
-                               // Dest format: Rgba
-                               // calculate destination alpha (it's union of source and dest alpha)
-                               uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha1 -
-                                                                       (*dest_extra_alpha_scan) * src_alpha1 / 255;
-                               *dest_extra_alpha_scan++ = dest_alpha;
-                               int alpha_ratio = src_alpha1*255/dest_alpha;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                               dest_scan ++;
-                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                               dest_scan ++;
-                       }
-               }
+        int src_alpha = m_Alpha * cover_scan / 255;
+        for (int col = col_start; col < col_end; col ++) {
+            int src_alpha1 = src_alpha * clip_scan[col] / 255;
+            if (!src_alpha1) {
+                dest_extra_alpha_scan++;
+                dest_scan += 3;
+                continue;
+            }
+            if (src_alpha1 == 255) {
+                *dest_scan++ = (uint8_t)m_Blue;
+                *dest_scan++ = (uint8_t)m_Green;
+                *dest_scan++ = (uint8_t)m_Red;
+                *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
+            } else {
+                // Dest format: Rgba
+                // calculate destination alpha (it's union of source and dest alpha)
+                uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha1 -
+                                    (*dest_extra_alpha_scan) * src_alpha1 / 255;
+                *dest_extra_alpha_scan++ = dest_alpha;
+                int alpha_ratio = src_alpha1*255/dest_alpha;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                dest_scan ++;
+                *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                dest_scan ++;
+            }
+        }
 #else
-               if (m_bFullCover) {
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha = m_Alpha * clip_scan[col] / 255;
-                               if (!src_alpha) {
-                                       dest_extra_alpha_scan++;
-                                       dest_scan += 3;
-                                       continue;
-                               }
-                               if (src_alpha == 255) {
-                                       *dest_scan++ = (uint8_t)m_Blue;
-                                       *dest_scan++ = (uint8_t)m_Green;
-                                       *dest_scan++ = (uint8_t)m_Red;
-                                       *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
-                               } else {
-                                       // Dest format: Rgba
-                                       // calculate destination alpha (it's union of source and dest alpha)
-                                       uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
-                                                                               (*dest_extra_alpha_scan) * src_alpha / 255;
-                                       *dest_extra_alpha_scan++ = dest_alpha;
-                                       int alpha_ratio = src_alpha*255/dest_alpha;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                                       dest_scan ++;
-                               }
-                       }
-               } else {
-                       int src_alpha = m_Alpha * cover_scan / 255;
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha1 = m_Alpha * cover_scan * clip_scan[col] / 255;
-                               if (!src_alpha1) {
-                                       dest_extra_alpha_scan++;
-                                       dest_scan += 3;
-                                       continue;
-                               }
-                               if (src_alpha1 == 255) {
-                                       *dest_scan++ = (uint8_t)m_Blue;
-                                       *dest_scan++ = (uint8_t)m_Green;
-                                       *dest_scan++ = (uint8_t)m_Red;
-                                       *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
-                               } else {
-                                       // Dest format: Rgba
-                                       // calculate destination alpha (it's union of source and dest alpha)
-                                       uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha1 -
-                                                                               (*dest_extra_alpha_scan) * src_alpha1 / 255;
-                                       *dest_extra_alpha_scan++ = dest_alpha;
-                                       int alpha_ratio = src_alpha1*255/dest_alpha;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                                       dest_scan ++;
-                                       *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                                       dest_scan ++;
-                               }
-                       }
-               }
+        if (m_bFullCover) {
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha = m_Alpha * clip_scan[col] / 255;
+                if (!src_alpha) {
+                    dest_extra_alpha_scan++;
+                    dest_scan += 3;
+                    continue;
+                }
+                if (src_alpha == 255) {
+                    *dest_scan++ = (uint8_t)m_Blue;
+                    *dest_scan++ = (uint8_t)m_Green;
+                    *dest_scan++ = (uint8_t)m_Red;
+                    *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
+                } else {
+                    // Dest format: Rgba
+                    // calculate destination alpha (it's union of source and dest alpha)
+                    uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
+                                        (*dest_extra_alpha_scan) * src_alpha / 255;
+                    *dest_extra_alpha_scan++ = dest_alpha;
+                    int alpha_ratio = src_alpha*255/dest_alpha;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                    dest_scan ++;
+                }
+            }
+        } else {
+            int src_alpha = m_Alpha * cover_scan / 255;
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha1 = m_Alpha * cover_scan * clip_scan[col] / 255;
+                if (!src_alpha1) {
+                    dest_extra_alpha_scan++;
+                    dest_scan += 3;
+                    continue;
+                }
+                if (src_alpha1 == 255) {
+                    *dest_scan++ = (uint8_t)m_Blue;
+                    *dest_scan++ = (uint8_t)m_Green;
+                    *dest_scan++ = (uint8_t)m_Red;
+                    *dest_extra_alpha_scan++ = (uint8_t)m_Alpha;
+                } else {
+                    // Dest format: Rgba
+                    // calculate destination alpha (it's union of source and dest alpha)
+                    uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha1 -
+                                        (*dest_extra_alpha_scan) * src_alpha1 / 255;
+                    *dest_extra_alpha_scan++ = dest_alpha;
+                    int alpha_ratio = src_alpha1*255/dest_alpha;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                    dest_scan ++;
+                    *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                    dest_scan ++;
+                }
+            }
+        }
 #endif
-       }
-       /*-----------------------------------------------------------------------------------------------------*/
+    }
+    /*-----------------------------------------------------------------------------------------------------*/
 
-       // A general alpha merge function (with clipping mask). Cmyka/Cmyk device.
-       void CFX_SkiaRenderer::CompositeSpanCMYK(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
-                       int span_left, int span_len, int span_top, uint8_t cover_scan,
-                       int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
-                       uint8_t* dest_extra_alpha_scan)
-       {
-               ASSERT(!m_bRgbByteOrder);
-               // Cmyk(a)
-               int col_start = span_left < clip_left ? clip_left - span_left : 0;
-               int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
-               if (col_end < col_start) return; // do nothing.
-               dest_scan += col_start * 4;
-               Bpp; // for avoid compile warning.
+    // A general alpha merge function (with clipping mask). Cmyka/Cmyk device.
+    void CFX_SkiaRenderer::CompositeSpanCMYK(uint8_t* dest_scan, uint8_t* ori_scan,int Bpp,
+            int span_left, int span_len, int span_top, uint8_t cover_scan,
+            int clip_top, int clip_left, int clip_right, uint8_t* clip_scan,
+            uint8_t* dest_extra_alpha_scan)
+    {
+        ASSERT(!m_bRgbByteOrder);
+        // Cmyk(a)
+        int col_start = span_left < clip_left ? clip_left - span_left : 0;
+        int col_end = (span_left + span_len) < clip_right ? span_len : (clip_right - span_left);
+        if (col_end < col_start) return; // do nothing.
+        dest_scan += col_start * 4;
+        Bpp; // for avoid compile warning.
 
-               if (dest_extra_alpha_scan) {
-                       // CMYKa
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha;
-                               if (m_bFullCover) {
-                                       if (clip_scan)
-                                               src_alpha = m_Alpha * clip_scan[col] / 255;
-                                       else
-                                               src_alpha = m_Alpha;
-                               } else {
-                                       if (clip_scan)
-                                               src_alpha = m_Alpha * cover_scan * clip_scan[col] / 255 / 255;
-                                       else
-                                               src_alpha = m_Alpha * cover_scan / 255;
-                               }
+        if (dest_extra_alpha_scan) {
+            // CMYKa
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha;
+                if (m_bFullCover) {
+                    if (clip_scan)
+                        src_alpha = m_Alpha * clip_scan[col] / 255;
+                    else
+                        src_alpha = m_Alpha;
+                } else {
+                    if (clip_scan)
+                        src_alpha = m_Alpha * cover_scan * clip_scan[col] / 255 / 255;
+                    else
+                        src_alpha = m_Alpha * cover_scan / 255;
+                }
 
-                               if (src_alpha) {
-                                       if (src_alpha == 255) {
-                                               *(FX_CMYK*)dest_scan = m_Color;
-                                               *dest_extra_alpha_scan = (uint8_t)m_Alpha;
-                                       } else {
-                                               // Dest format: Cmyka
-                                               // calculate destination alpha (it's union of source and dest alpha)
-                                               uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
-                                                       (*dest_extra_alpha_scan) * src_alpha / 255;
-                                               *dest_extra_alpha_scan++ = dest_alpha;
-                                               int alpha_ratio = src_alpha*255/dest_alpha;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, alpha_ratio);
-                                               dest_scan ++;
-                                               continue;
-                                       }
-                               }
-                               dest_extra_alpha_scan++;
-                               dest_scan += 4;
-                       }
-               } else {
-                       // CMYK
-                       for (int col = col_start; col < col_end; col ++) {
-                               int src_alpha;
-                               if (clip_scan)
-                                       src_alpha = m_Alpha * cover_scan * clip_scan[col] / 255 / 255;
-                               else
-                                       src_alpha = m_Alpha * cover_scan / 255;
+                if (src_alpha) {
+                    if (src_alpha == 255) {
+                        *(FX_CMYK*)dest_scan = m_Color;
+                        *dest_extra_alpha_scan = (uint8_t)m_Alpha;
+                    } else {
+                        // Dest format: Cmyka
+                        // calculate destination alpha (it's union of source and dest alpha)
+                        uint8_t dest_alpha = (*dest_extra_alpha_scan) + src_alpha -
+                            (*dest_extra_alpha_scan) * src_alpha / 255;
+                        *dest_extra_alpha_scan++ = dest_alpha;
+                        int alpha_ratio = src_alpha*255/dest_alpha;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, alpha_ratio);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, alpha_ratio);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, alpha_ratio);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, alpha_ratio);
+                        dest_scan ++;
+                        continue;
+                    }
+                }
+                dest_extra_alpha_scan++;
+                dest_scan += 4;
+            }
+        } else {
+            // CMYK
+            for (int col = col_start; col < col_end; col ++) {
+                int src_alpha;
+                if (clip_scan)
+                    src_alpha = m_Alpha * cover_scan * clip_scan[col] / 255 / 255;
+                else
+                    src_alpha = m_Alpha * cover_scan / 255;
 
-                               if (src_alpha) {
-                                       if (src_alpha == 255) {
-                                               *(FX_CMYK*)dest_scan = m_Color;
-                                       } else {
-                                               // Dest format: cmyk
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
-                                               dest_scan ++;
-                                               *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha);
-                                               dest_scan ++;
-                                               continue;
-                                       }
-                               }
-                               dest_scan += 4;
-                       }
-               }
-       }
+                if (src_alpha) {
+                    if (src_alpha == 255) {
+                        *(FX_CMYK*)dest_scan = m_Color;
+                    } else {
+                        // Dest format: cmyk
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Red, src_alpha);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Green, src_alpha);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Blue, src_alpha);
+                        dest_scan ++;
+                        *dest_scan = FXDIB_ALPHA_MERGE(*dest_scan, m_Gray, src_alpha);
+                        dest_scan ++;
+                        continue;
+                    }
+                }
+                dest_scan += 4;
+            }
+        }
+    }
 
 
 
-       //--------------------------------------------------------------------
-       FX_BOOL CFX_SkiaRenderer::Init(CFX_DIBitmap* pDevice, CFX_DIBitmap* pOriDevice, const CFX_ClipRgn* pClipRgn, FX_DWORD color, FX_BOOL bFullCover, FX_BOOL bRgbByteOrder,
-               int alpha_flag, void* pIccTransform) //The alpha flag must be fill_flag if exist.
-       {
-               m_pDevice = pDevice;
-               m_pClipRgn = pClipRgn;
-               m_bRgbByteOrder = bRgbByteOrder;
-               m_pOriDevice = pOriDevice;
-               m_pDestScan = NULL;
-               m_pDestExtraAlphaScan = NULL;
-               m_pOriScan = NULL;
-               m_pClipScan = NULL;
-               composite_span = NULL;
-               if (m_pClipRgn)
-                       m_ClipBox = m_pClipRgn->GetBox();
-               else {
-                       m_ClipBox.left = m_ClipBox.top = 0;
-                       m_ClipBox.right = m_pDevice->GetWidth();
-                       m_ClipBox.bottom = m_pDevice->GetHeight();
-               }
-               m_pClipMask = NULL;
-               if (m_pClipRgn && m_pClipRgn->GetType() == CFX_ClipRgn::MaskF)
-               {
-                       m_pClipMask = m_pClipRgn->GetMask();
-                       m_pClipScan = m_pClipMask->GetBuffer();
-               }
-               if (m_pDevice->m_pAlphaMask)
-                       m_pDestExtraAlphaScan = m_pDevice->m_pAlphaMask->GetBuffer();
-               if (m_pOriDevice)
-                       m_pOriScan = m_pOriDevice->GetBuffer();
-               m_pDestScan = m_pDevice->GetBuffer();
+    //--------------------------------------------------------------------
+    FX_BOOL CFX_SkiaRenderer::Init(CFX_DIBitmap* pDevice, CFX_DIBitmap* pOriDevice, const CFX_ClipRgn* pClipRgn, FX_DWORD color, FX_BOOL bFullCover, FX_BOOL bRgbByteOrder,
+        int alpha_flag, void* pIccTransform) //The alpha flag must be fill_flag if exist.
+    {
+        m_pDevice = pDevice;
+        m_pClipRgn = pClipRgn;
+        m_bRgbByteOrder = bRgbByteOrder;
+        m_pOriDevice = pOriDevice;
+        m_pDestScan = NULL;
+        m_pDestExtraAlphaScan = NULL;
+        m_pOriScan = NULL;
+        m_pClipScan = NULL;
+        composite_span = NULL;
+        if (m_pClipRgn)
+            m_ClipBox = m_pClipRgn->GetBox();
+        else {
+            m_ClipBox.left = m_ClipBox.top = 0;
+            m_ClipBox.right = m_pDevice->GetWidth();
+            m_ClipBox.bottom = m_pDevice->GetHeight();
+        }
+        m_pClipMask = NULL;
+        if (m_pClipRgn && m_pClipRgn->GetType() == CFX_ClipRgn::MaskF)
+        {
+            m_pClipMask = m_pClipRgn->GetMask();
+            m_pClipScan = m_pClipMask->GetBuffer();
+        }
+        if (m_pDevice->m_pAlphaMask)
+            m_pDestExtraAlphaScan = m_pDevice->m_pAlphaMask->GetBuffer();
+        if (m_pOriDevice)
+            m_pOriScan = m_pOriDevice->GetBuffer();
+        m_pDestScan = m_pDevice->GetBuffer();
 
-               m_bFullCover = bFullCover;
+        m_bFullCover = bFullCover;
 
-               FX_BOOL bObjectCMYK = FXGETFLAG_COLORTYPE(alpha_flag);
-               FX_BOOL bDeviceCMYK = pDevice->IsCmykImage();
+        FX_BOOL bObjectCMYK = FXGETFLAG_COLORTYPE(alpha_flag);
+        FX_BOOL bDeviceCMYK = pDevice->IsCmykImage();
 
-               m_Alpha = bObjectCMYK ? FXGETFLAG_ALPHA_FILL(alpha_flag) : FXARGB_A(color);
+        m_Alpha = bObjectCMYK ? FXGETFLAG_ALPHA_FILL(alpha_flag) : FXARGB_A(color);
 
-               ICodec_IccModule* pIccModule = NULL;
-               // No lcms engine, we skip the transform
-               if (!CFX_GEModule::Get()->GetCodecModule() || !CFX_GEModule::Get()->GetCodecModule()->GetIccModule())
-                       pIccTransform = NULL;
-               else
-                       pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
+        ICodec_IccModule* pIccModule = NULL;
+        // No lcms engine, we skip the transform
+        if (!CFX_GEModule::Get()->GetCodecModule() || !CFX_GEModule::Get()->GetCodecModule()->GetIccModule())
+            pIccTransform = NULL;
+        else
+            pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetIccModule();
 
-               if (m_pDevice->GetBPP() == 8) { // Gray(a) device
-                       ASSERT(!m_bRgbByteOrder);
-                       if (m_pDevice->IsAlphaMask()) {
-                               //Alpha Mask
-                               m_Gray = 255;
-                       } else {
-                               //Gray(a) device
-                               if (pIccTransform) {
-                                       uint8_t gray;
-                                       color = bObjectCMYK ? FXCMYK_TODIB(color) : FXARGB_TODIB(color);
-                                       pIccModule->TranslateScanline(pIccTransform, &gray, (const uint8_t*)&color, 1);
-                                       m_Gray = gray;
-                               } else {
-                                       if (bObjectCMYK) {
-                                               uint8_t r, g, b;
-                                               AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color), FXSYS_GetYValue(color), FXSYS_GetKValue(color),
-                                                       r, g, b);
-                                               m_Gray = FXRGB2GRAY(r, g, b);
-                                       } else {
-                                               m_Gray = FXRGB2GRAY(FXARGB_R(color), FXARGB_G(color), FXARGB_B(color));
-                                       }
-                               }
-                       }
-               } else {
-                       if (bDeviceCMYK) { // Cmyk(a) Device
-                               ASSERT(!m_bRgbByteOrder);
-                               //TODO... opt for cmyk
-                               composite_span = &CFX_SkiaRenderer::CompositeSpanCMYK;
-                               if (bObjectCMYK) {
-                                       m_Color = FXCMYK_TODIB(color);
-                                       if (pIccTransform)
-                                               pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&m_Color, 1);
-                               } else { // Object RGB
-                                       if (!pIccTransform)
-                                               return FALSE;
-                                       color = FXARGB_TODIB(color);
-                                       pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&color, 1);
-                               }
-                               m_Red   = ((uint8_t*)&m_Color)[0];
-                               m_Green = ((uint8_t*)&m_Color)[1];
-                               m_Blue  = ((uint8_t*)&m_Color)[2];
-                               m_Gray  = ((uint8_t*)&m_Color)[3];
-                               return TRUE;
-                       } else {
-                               if (pIccTransform) {
-                                       color = bObjectCMYK ? FXCMYK_TODIB(color) : FXARGB_TODIB(color);
-                                       pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&color, 1);
-                                       ((uint8_t*)&m_Color)[3] = m_Alpha;
-                                       m_Red = ((uint8_t*)&m_Color)[2];
-                                       m_Green = ((uint8_t*)&m_Color)[1];
-                                       m_Blue = ((uint8_t*)&m_Color)[0];
-                                       // Need Johnson to improvement it.
-                                       if (m_bRgbByteOrder) {
-                                               // swap
-                                               m_Red = ((uint8_t*)&m_Color)[0];
-                                               m_Blue = ((uint8_t*)&m_Color)[2];
-                                               m_Color = FXARGB_TODIB(m_Color);
-                                               m_Color = FXARGB_TOBGRORDERDIB(m_Color);
-                                       }
-                               } else {
-                                       if (bObjectCMYK) {
-                                               uint8_t r, g, b;
-                                               AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color), FXSYS_GetYValue(color), FXSYS_GetKValue(color),
-                                                       r, g, b);
-                                               m_Color = FXARGB_MAKE(m_Alpha, r, g, b);
-                                               if (m_bRgbByteOrder){
-                                                       m_Color = FXARGB_TOBGRORDERDIB(m_Color);
-                                                       m_Red = b; m_Green = g; m_Blue = r;//
-                                               }else {
-                                                       m_Color = FXARGB_TODIB(m_Color);
-                                                       m_Red = r; m_Green = g; m_Blue = b;//
-                                               }
-                                       } else {
-                                               if (m_bRgbByteOrder){
-                                                       m_Color = FXARGB_TOBGRORDERDIB(color);
-                                                       ArgbDecode(color, m_Alpha, m_Blue, m_Green, m_Red); //
-                                               }else {
-                                                       m_Color = FXARGB_TODIB(color);
-                                                       ArgbDecode(color, m_Alpha, m_Red, m_Green, m_Blue);
-                                               }
-                                       }
-                               }
-                       }
-               }
-               // Get palette transparency selector
-               m_ProcessFilter = (m_pOriDevice? 1 : 0) /* has Ori Device flag */
-                                               + (m_pDevice->GetBPP() >= 8 ? 2 : 0)    /* bpp flag */
-                                               + (m_pClipMask? 4 : 0)                                  /* has clip region flag */
-                                               + (m_pDevice->m_pAlphaMask? 8 : 0);             /* has Alpha Mask chanel flag */
-               switch(m_ProcessFilter) {
-                       case 0:
-                               composite_span = &CFX_SkiaRenderer::CompositeSpan1bpp_0;
-                               break;
-                       case 2:
-                               {
-                                       if (m_pDevice->GetBPP() == 8)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanGray_2;
-                                       else if (m_pDevice->GetBPP() == 24)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_2;
-                                       else
-                                               composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_2 : &CFX_SkiaRenderer::CompositeSpanRGB32_2;
-                               }
-                               break;
-                       case 3:
-                               {
-                                       if (m_pDevice->GetBPP() == 8)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanGray_3;
-                                       else if (m_pDevice->GetBPP() == 24)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_3;
-                                       else
-                                               composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_3 : &CFX_SkiaRenderer::CompositeSpanRGB32_3;
-                               }
-                               break;
-                       case 4:
-                               composite_span = &CFX_SkiaRenderer::CompositeSpan1bpp_4;
-                               break;
-                       case 6:
-                               {
-                                       if (m_pDevice->GetBPP() == 8)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanGray_6;
-                                       else if (m_pDevice->GetBPP() == 24)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_6;
-                                       else
-                                               composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_6 : &CFX_SkiaRenderer::CompositeSpanRGB32_6;
-                               }
-                               break;
-                       case 7:
-                               {
-                                       if (m_pDevice->GetBPP() == 8)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanGray_7;
-                                       else if (m_pDevice->GetBPP() == 24)
-                                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_7;
-                                       else
-                                               composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_7 : &CFX_SkiaRenderer::CompositeSpanRGB32_7;
-                               }
-                               break;
-                       case 1:
-                       case 5:
-                       case 8:
-                       case 9:
-                       case 11:
-                       case 12:
-                       case 13:
-                       case 15:
-                               //TODO...
-                               break;
-                       case 10:
-                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_10;
-                               break;
-                       case 14:
-                               composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_14;
-                               break;
-               }
-               if (composite_span == NULL)
-                       return FALSE;
-               return TRUE;
-       }
+        if (m_pDevice->GetBPP() == 8) { // Gray(a) device
+            ASSERT(!m_bRgbByteOrder);
+            if (m_pDevice->IsAlphaMask()) {
+                //Alpha Mask
+                m_Gray = 255;
+            } else {
+                //Gray(a) device
+                if (pIccTransform) {
+                    uint8_t gray;
+                    color = bObjectCMYK ? FXCMYK_TODIB(color) : FXARGB_TODIB(color);
+                    pIccModule->TranslateScanline(pIccTransform, &gray, (const uint8_t*)&color, 1);
+                    m_Gray = gray;
+                } else {
+                    if (bObjectCMYK) {
+                        uint8_t r, g, b;
+                        AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color), FXSYS_GetYValue(color), FXSYS_GetKValue(color),
+                            r, g, b);
+                        m_Gray = FXRGB2GRAY(r, g, b);
+                    } else {
+                        m_Gray = FXRGB2GRAY(FXARGB_R(color), FXARGB_G(color), FXARGB_B(color));
+                    }
+                }
+            }
+        } else {
+            if (bDeviceCMYK) { // Cmyk(a) Device
+                ASSERT(!m_bRgbByteOrder);
+                //TODO... opt for cmyk
+                composite_span = &CFX_SkiaRenderer::CompositeSpanCMYK;
+                if (bObjectCMYK) {
+                    m_Color = FXCMYK_TODIB(color);
+                    if (pIccTransform)
+                        pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&m_Color, 1);
+                } else { // Object RGB
+                    if (!pIccTransform)
+                        return FALSE;
+                    color = FXARGB_TODIB(color);
+                    pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&color, 1);
+                }
+                m_Red   = ((uint8_t*)&m_Color)[0];
+                m_Green = ((uint8_t*)&m_Color)[1];
+                m_Blue  = ((uint8_t*)&m_Color)[2];
+                m_Gray  = ((uint8_t*)&m_Color)[3];
+                return TRUE;
+            }
+            if (pIccTransform) {
+                color = bObjectCMYK ? FXCMYK_TODIB(color) : FXARGB_TODIB(color);
+                pIccModule->TranslateScanline(pIccTransform, (uint8_t*)&m_Color, (const uint8_t*)&color, 1);
+                ((uint8_t*)&m_Color)[3] = m_Alpha;
+                m_Red = ((uint8_t*)&m_Color)[2];
+                m_Green = ((uint8_t*)&m_Color)[1];
+                m_Blue = ((uint8_t*)&m_Color)[0];
+                // Need Johnson to improvement it.
+                if (m_bRgbByteOrder) {
+                    // swap
+                    m_Red = ((uint8_t*)&m_Color)[0];
+                    m_Blue = ((uint8_t*)&m_Color)[2];
+                    m_Color = FXARGB_TODIB(m_Color);
+                    m_Color = FXARGB_TOBGRORDERDIB(m_Color);
+                }
+            } else {
+                if (bObjectCMYK) {
+                    uint8_t r, g, b;
+                    AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color), FXSYS_GetYValue(color), FXSYS_GetKValue(color),
+                                       r, g, b);
+                    m_Color = FXARGB_MAKE(m_Alpha, r, g, b);
+                    if (m_bRgbByteOrder){
+                        m_Color = FXARGB_TOBGRORDERDIB(m_Color);
+                        m_Red = b; m_Green = g; m_Blue = r;//
+                    }else {
+                        m_Color = FXARGB_TODIB(m_Color);
+                        m_Red = r; m_Green = g; m_Blue = b;//
+                    }
+                } else {
+                    if (m_bRgbByteOrder){
+                        m_Color = FXARGB_TOBGRORDERDIB(color);
+                        ArgbDecode(color, m_Alpha, m_Blue, m_Green, m_Red); //
+                    }else {
+                        m_Color = FXARGB_TODIB(color);
+                        ArgbDecode(color, m_Alpha, m_Red, m_Green, m_Blue);
+                    }
+                }
+            }
+        }
+        // Get palette transparency selector
+        m_ProcessFilter = (m_pOriDevice? 1 : 0) /* has Ori Device flag */
+                        + (m_pDevice->GetBPP() >= 8 ? 2 : 0)    /* bpp flag */
+                        + (m_pClipMask? 4 : 0)                  /* has clip region flag */
+                        + (m_pDevice->m_pAlphaMask? 8 : 0);     /* has Alpha Mask chanel flag */
+        switch(m_ProcessFilter) {
+            case 0:
+                composite_span = &CFX_SkiaRenderer::CompositeSpan1bpp_0;
+                break;
+            case 2:
+                {
+                    if (m_pDevice->GetBPP() == 8)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanGray_2;
+                    else if (m_pDevice->GetBPP() == 24)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_2;
+                    else
+                        composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_2 : &CFX_SkiaRenderer::CompositeSpanRGB32_2;
+                }
+                break;
+            case 3:
+                {
+                    if (m_pDevice->GetBPP() == 8)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanGray_3;
+                    else if (m_pDevice->GetBPP() == 24)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_3;
+                    else
+                        composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_3 : &CFX_SkiaRenderer::CompositeSpanRGB32_3;
+                }
+                break;
+            case 4:
+                composite_span = &CFX_SkiaRenderer::CompositeSpan1bpp_4;
+                break;
+            case 6:
+                {
+                    if (m_pDevice->GetBPP() == 8)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanGray_6;
+                    else if (m_pDevice->GetBPP() == 24)
+                        composite_span = &CFX_SkiaRenderer::CompositeSpanRGB24_6;
+                    else
+                        composite_span = m_pDevice->HasAlpha()?&CFX_SkiaRenderer::CompositeSpanARGB_6 : &CFX_SkiaRenderer::CompositeSpanRGB32_6;
+                }
+                break;
+            case 7:
+                {
+                    if (m_pDevice->GetBPP() == 8)
+          &nb