Small cleanup of CPDF_TextObject and other CPDF_PageObject subclasses.
[pdfium.git] / core / src / fxcodec / jbig2 / JBig2_SymbolDict.cpp
index 67e54c0..e9bb9c6 100644 (file)
@@ -13,6 +13,30 @@ CJBig2_SymbolDict::CJBig2_SymbolDict()
     m_gbContext = m_grContext = NULL;
 }
 
+CJBig2_SymbolDict *CJBig2_SymbolDict::DeepCopy()
+{
+    CJBig2_SymbolDict *dst = NULL;
+    CJBig2_SymbolDict *src = this;
+    if (src->m_bContextRetained ||
+        src->m_gbContext ||
+        src->m_grContext) {
+        return NULL;
+    }
+    JBIG2_ALLOC(dst, CJBig2_SymbolDict());
+    dst->SDNUMEXSYMS = src->SDNUMEXSYMS;
+    dst->SDEXSYMS = (CJBig2_Image**)m_pModule->JBig2_Malloc2(
+        sizeof(CJBig2_Image*), src->SDNUMEXSYMS);
+    for(FX_DWORD i = 0; i < src->SDNUMEXSYMS; i++) {
+        if (src->SDEXSYMS[i]) {
+            JBIG2_ALLOC(dst->SDEXSYMS[i],
+                        CJBig2_Image(*(src->SDEXSYMS[i])));
+        } else {
+            dst->SDEXSYMS[i] = NULL;
+        }
+    }
+    return dst;
+}
+
 CJBig2_SymbolDict::~CJBig2_SymbolDict()
 {
     if(SDEXSYMS) {