// 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 "xfa/fxfa/app/cxfa_textuserdata.h" #include "xfa/fde/css/cfde_csscomputedstyle.h" #include "xfa/fde/css/cfde_cssstyleselector.h" #include "xfa/fde/css/fde_css.h" #include "xfa/fxfa/app/cxfa_linkuserdata.h" CXFA_TextUserData::CXFA_TextUserData(CFDE_CSSComputedStyle* pStyle) : m_pStyle(pStyle), m_pLinkData(nullptr), m_dwRefCount(0) { if (m_pStyle) m_pStyle->Retain(); } CXFA_TextUserData::CXFA_TextUserData(CFDE_CSSComputedStyle* pStyle, CXFA_LinkUserData* pLinkData) : m_pStyle(pStyle), m_pLinkData(pLinkData), m_dwRefCount(0) { if (m_pStyle) m_pStyle->Retain(); } CXFA_TextUserData::~CXFA_TextUserData() { if (m_pStyle) m_pStyle->Release(); if (m_pLinkData) m_pLinkData->Release(); } uint32_t CXFA_TextUserData::Retain() { return ++m_dwRefCount; } uint32_t CXFA_TextUserData::Release() { uint32_t dwRefCount = --m_dwRefCount; if (dwRefCount == 0) delete this; return dwRefCount; }