diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-08-08 13:23:24 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-08 17:37:54 +0000 |
commit | 9f0e85ac36826e39a242f8039c2b2c333ee99f4f (patch) | |
tree | c93f2a9322968f7723a4b3da5ea5e4cb7b79b075 /core/fxcrt/css/cfx_csstextbuf.cpp | |
parent | 78fc9aa402409f3fcd8dc1f458e67798cb3b483e (diff) | |
download | pdfium-9f0e85ac36826e39a242f8039c2b2c333ee99f4f.tar.xz |
Move CSS code to core
The xfa/fde/css code has no other links into xfa/. This CL moves the css
code to core/fxcrt/css and sets to only build when pdf_enable_xfa is
enabled.
Change-Id: Iefd208e1f83a28b80b567c574e841e87bce310be
Reviewed-on: https://pdfium-review.googlesource.com/9251
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fxcrt/css/cfx_csstextbuf.cpp')
-rw-r--r-- | core/fxcrt/css/cfx_csstextbuf.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/core/fxcrt/css/cfx_csstextbuf.cpp b/core/fxcrt/css/cfx_csstextbuf.cpp new file mode 100644 index 0000000000..f2f3b94419 --- /dev/null +++ b/core/fxcrt/css/cfx_csstextbuf.cpp @@ -0,0 +1,49 @@ +// Copyright 2017 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 + +#include "core/fxcrt/css/cfx_csstextbuf.h" + +#include "core/fxcrt/fx_memory.h" + +CFX_CSSTextBuf::CFX_CSSTextBuf() + : m_pBuffer(nullptr), m_iBufLen(0), m_iDatLen(0) {} + +CFX_CSSTextBuf::~CFX_CSSTextBuf() { + FX_Free(m_pBuffer); + m_pBuffer = nullptr; + m_iDatLen = m_iBufLen; +} + +void CFX_CSSTextBuf::InitWithSize(int32_t iAllocSize) { + ExpandBuf(iAllocSize); +} + +void CFX_CSSTextBuf::AppendChar(wchar_t wch) { + if (m_iDatLen >= m_iBufLen) + ExpandBuf(m_iBufLen * 2); + + m_pBuffer[m_iDatLen++] = wch; +} + +int32_t CFX_CSSTextBuf::TrimEnd() { + while (m_iDatLen > 0 && m_pBuffer[m_iDatLen - 1] <= ' ') + --m_iDatLen; + AppendChar(0); + return --m_iDatLen; +} + +void CFX_CSSTextBuf::ExpandBuf(int32_t iDesiredSize) { + ASSERT(iDesiredSize > 0); + if (m_pBuffer && m_iBufLen == iDesiredSize) + return; + + if (m_pBuffer) + m_pBuffer = FX_Realloc(wchar_t, m_pBuffer, iDesiredSize); + else + m_pBuffer = FX_Alloc(wchar_t, iDesiredSize); + + m_iBufLen = iDesiredSize; +} |