From fdc00a7042d912aafaabddae4d9c84199921ef23 Mon Sep 17 00:00:00 2001 From: Bo Xu Date: Tue, 28 Oct 2014 23:03:33 -0700 Subject: Merge XFA to PDFium master at 4dc95e7 on 10/28/2014 --- xfa/src/fgas/include/fx_alg.h | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 xfa/src/fgas/include/fx_alg.h (limited to 'xfa/src/fgas/include/fx_alg.h') diff --git a/xfa/src/fgas/include/fx_alg.h b/xfa/src/fgas/include/fx_alg.h new file mode 100644 index 0000000000..ed946641f2 --- /dev/null +++ b/xfa/src/fgas/include/fx_alg.h @@ -0,0 +1,46 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef _FX_ALGORITHM +#define _FX_ALGORITHM +#define FX_IsOdd(a) ((a) & 1) +#ifdef __cplusplus +extern "C" { +#endif +FX_INT32 FX_Base64EncodeA(FX_LPCBYTE pSrc, FX_INT32 iSrcLen, FX_LPSTR pDst); +FX_INT32 FX_Base64DecodeA(FX_LPCSTR pSrc, FX_INT32 iSrcLen, FX_LPBYTE pDst); +FX_INT32 FX_Base64DecodeW(FX_LPCWSTR pSrc, FX_INT32 iSrcLen, FX_LPBYTE pDst); +FX_BYTE FX_Hex2Dec(FX_BYTE hexHigh, FX_BYTE hexLow); +FX_INT32 FX_SeparateStringW(FX_LPCWSTR pStr, FX_INT32 iStrLen, FX_WCHAR delimiter, CFX_WideStringArray &pieces); +#ifdef __cplusplus +}; +#endif +template +class CFX_DSPATemplate +{ +public: + FX_INT32 Lookup(const baseType &find, const baseType *pArray, FX_INT32 iCount) + { + FXSYS_assert(pArray != NULL); + if (iCount < 1) { + return -1; + } + FX_INT32 iStart = 0, iEnd = iCount - 1, iMid; + do { + iMid = (iStart + iEnd) / 2; + const baseType &v = pArray[iMid]; + if (find == v) { + return iMid; + } else if (find < v) { + iEnd = iMid - 1; + } else { + iStart = iMid + 1; + } + } while (iStart <= iEnd); + return -1; + } +}; +#endif -- cgit v1.2.3