CPDF_Form* CPDF_Annot::GetAPForm(const CPDF_Page* pPage, AppearanceMode mode) { CPDF_Stream* pStream = FPDFDOC_GetAnnotAP(m_pAnnotDict, mode); if (pStream == NULL) { return NULL; } CPDF_Form* pForm; if (m_APMap.Lookup(pStream, (void*&)pForm)) { return pForm; } pForm = new CPDF_Form(m_pList->m_pDocument, pPage->m_pResources, pStream); pForm->ParseContent(NULL, NULL, NULL, NULL); m_APMap.SetAt(pStream, pForm); return pForm; }
CPDF_Form* CPDF_Annot::GetAPForm(const CPDF_Page* pPage, AppearanceMode mode) { CPDF_Stream* pStream = FPDFDOC_GetAnnotAP(m_pAnnotDict, mode); if (!pStream) return nullptr; auto it = m_APMap.find(pStream); if (it != m_APMap.end()) return it->second.get(); CPDF_Form* pNewForm = new CPDF_Form(m_pDocument, pPage->m_pResources, pStream); pNewForm->ParseContent(nullptr, nullptr, nullptr); m_APMap[pStream] = WrapUnique(pNewForm); return pNewForm; }