diff --git a/OOXML/Common/ComplexTypes.h b/OOXML/Common/ComplexTypes.h index ca63a3bffb..bfb9c6011b 100644 --- a/OOXML/Common/ComplexTypes.h +++ b/OOXML/Common/ComplexTypes.h @@ -41,14 +41,6 @@ namespace ComplexTypes { #define ComplexTypes_AdditionConstructors(Class) \ - Class(XmlUtils::CXmlNode& oNode)\ - {\ - FromXML( oNode );\ - }\ - Class(XmlUtils::CXmlLiteReader& oReader)\ - {\ - FromXML( oReader );\ - }\ const Class& operator =(const XmlUtils::CXmlNode &oNode)\ {\ FromXML( (XmlUtils::CXmlNode &)oNode );\ diff --git a/OOXML/DocxFormat/Drawing/Drawing.cpp b/OOXML/DocxFormat/Drawing/Drawing.cpp index 5b3bd49a56..cd19d1e762 100644 --- a/OOXML/DocxFormat/Drawing/Drawing.cpp +++ b/OOXML/DocxFormat/Drawing/Drawing.cpp @@ -611,7 +611,9 @@ namespace OOX } else if ( bStart && _T("lineTo") == sName ) { - ComplexTypes::Drawing::CPoint2D *oPoint = new ComplexTypes::Drawing::CPoint2D(oNode); + ComplexTypes::Drawing::CPoint2D *oPoint = new ComplexTypes::Drawing::CPoint2D(); + *oPoint = oNode; + if (oPoint) m_arrLineTo.push_back( oPoint ); } } @@ -637,7 +639,9 @@ namespace OOX } else if ( bStart && _T("wp:lineTo") == sName ) { - ComplexTypes::Drawing::CPoint2D *oPoint = new ComplexTypes::Drawing::CPoint2D(oReader); + ComplexTypes::Drawing::CPoint2D *oPoint = new ComplexTypes::Drawing::CPoint2D(); + *oPoint = oReader; + if (oPoint) m_arrLineTo.push_back( oPoint ); } } diff --git a/OOXML/DocxFormat/Logic/DocParts.cpp b/OOXML/DocxFormat/Logic/DocParts.cpp index a5b101d643..590442cafb 100644 --- a/OOXML/DocxFormat/Logic/DocParts.cpp +++ b/OOXML/DocxFormat/Logic/DocParts.cpp @@ -418,7 +418,7 @@ namespace OOX if (L"w:behavior" == sName) { - m_arrItems.push_back(new ComplexTypes::Word::CDocPartBehavior(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } } @@ -463,7 +463,7 @@ namespace OOX if (L"w:type" == sName) { - m_arrItems.push_back(new ComplexTypes::Word::String(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } } diff --git a/OOXML/DocxFormat/Logic/FldChar.cpp b/OOXML/DocxFormat/Logic/FldChar.cpp index bc87ec2753..20057f5379 100644 --- a/OOXML/DocxFormat/Logic/FldChar.cpp +++ b/OOXML/DocxFormat/Logic/FldChar.cpp @@ -378,7 +378,9 @@ namespace OOX { if ( oListEntryNodes.GetAt( nIndex, oListEntryNode ) ) { - ComplexTypes::Word::String *oListEntry = new ComplexTypes::Word::String(oListEntryNode); + ComplexTypes::Word::String *oListEntry = new ComplexTypes::Word::String(); + *oListEntry = oListEntryNode; + if (oListEntry) m_arrListEntry.push_back( oListEntry ); } } @@ -399,7 +401,9 @@ namespace OOX m_oResult = oReader; else if ( L"w:listEntry" == sName ) { - ComplexTypes::Word::String *oListEntry = new ComplexTypes::Word::String(oReader); + ComplexTypes::Word::String *oListEntry = new ComplexTypes::Word::String(); + *oListEntry = oReader; + if (oListEntry) m_arrListEntry.push_back( oListEntry ); } } diff --git a/OOXML/DocxFormat/Logic/Hyperlink.cpp b/OOXML/DocxFormat/Logic/Hyperlink.cpp index 922cc726c8..a42c524421 100644 --- a/OOXML/DocxFormat/Logic/Hyperlink.cpp +++ b/OOXML/DocxFormat/Logic/Hyperlink.cpp @@ -375,7 +375,7 @@ namespace OOX WritingElement *pItem = NULL; if ( L"w:matchSrc" == sName ) - m_oMatchSrc = new ComplexTypes::Word::CMatchSrc( oItem ); + m_oMatchSrc = PPTX::CreatePtrXmlContent(oItem); } } } diff --git a/OOXML/DocxFormat/Logic/ParagraphProperty.cpp b/OOXML/DocxFormat/Logic/ParagraphProperty.cpp index f5d34ed501..ff06e685c5 100644 --- a/OOXML/DocxFormat/Logic/ParagraphProperty.cpp +++ b/OOXML/DocxFormat/Logic/ParagraphProperty.cpp @@ -400,7 +400,9 @@ namespace OOX { if ( oTabs.GetAt( nIndex, oTab ) ) { - ComplexTypes::Word::CTabStop *oTabStop = new ComplexTypes::Word::CTabStop(oTab); + ComplexTypes::Word::CTabStop *oTabStop = new ComplexTypes::Word::CTabStop(); + *oTabStop = oTab; + if (oTabStop) m_arrTabs.push_back( oTabStop ); } } @@ -417,7 +419,9 @@ namespace OOX std::wstring sName = oReader.GetName(); if ( L"w:tab" == sName ) { - ComplexTypes::Word::CTabStop *oTabStop = new ComplexTypes::Word::CTabStop(oReader); + ComplexTypes::Word::CTabStop *oTabStop = new ComplexTypes::Word::CTabStop(); + *oTabStop = oReader; + if (oTabStop) m_arrTabs.push_back( oTabStop ); } } diff --git a/OOXML/DocxFormat/Logic/RunProperty.cpp b/OOXML/DocxFormat/Logic/RunProperty.cpp index a7ade195fc..ce37404963 100644 --- a/OOXML/DocxFormat/Logic/RunProperty.cpp +++ b/OOXML/DocxFormat/Logic/RunProperty.cpp @@ -71,7 +71,7 @@ namespace OOX if (L"stylisticSet" == sName) { - m_arrItems.push_back(new ComplexTypes::Word::CStylisticSet(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } } diff --git a/OOXML/DocxFormat/Logic/Sdt.cpp b/OOXML/DocxFormat/Logic/Sdt.cpp index 8ff530beb9..bdbde747f4 100644 --- a/OOXML/DocxFormat/Logic/Sdt.cpp +++ b/OOXML/DocxFormat/Logic/Sdt.cpp @@ -851,7 +851,9 @@ namespace OOX { if ( oChilds.GetAt( nIndex, oItemNode ) ) { - ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(oItemNode); + ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(); + *oListItem = oItemNode; + if (oListItem) m_arrListItem.push_back( oListItem ); } } @@ -875,7 +877,9 @@ namespace OOX std::wstring sName = oReader.GetName(); if ( L"w:listItem" == sName ) { - ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(oReader); + ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(); + *oListItem = oReader; + m_arrListItem.push_back( oListItem ); } else if (L"w:format" == sName) @@ -1076,7 +1080,9 @@ namespace OOX { if ( oChilds.GetAt( nIndex, oItemNode ) ) { - ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(oItemNode); + ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(); + *oListItem = oItemNode; + if (oListItem) m_arrListItem.push_back( oListItem ); } } @@ -1095,7 +1101,9 @@ namespace OOX std::wstring sName = oReader.GetName(); if ( L"w:listItem" == sName ) { - ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(oReader); + ComplexTypes::Word::CSdtListItem *oListItem = new ComplexTypes::Word::CSdtListItem(); + *oListItem = oReader; + if (oListItem)m_arrListItem.push_back( oListItem ); } } diff --git a/OOXML/DocxFormat/Logic/SectionProperty.cpp b/OOXML/DocxFormat/Logic/SectionProperty.cpp index 1fcf75d176..5023cab3a4 100644 --- a/OOXML/DocxFormat/Logic/SectionProperty.cpp +++ b/OOXML/DocxFormat/Logic/SectionProperty.cpp @@ -1009,7 +1009,9 @@ namespace OOX XmlUtils::CXmlNode oCol; if ( oCols.GetAt( nIndex, oCol ) ) { - ComplexTypes::Word::CColumn *oColumn = new ComplexTypes::Word::CColumn(oCol); + ComplexTypes::Word::CColumn *oColumn = new ComplexTypes::Word::CColumn(); + *oColumn = oCol; + if (oColumn) m_arrColumns.push_back( oColumn ); } } @@ -1028,7 +1030,9 @@ namespace OOX std::wstring sName = oReader.GetName(); if ( L"w:col" == sName ) { - ComplexTypes::Word::CColumn *oColumn = new ComplexTypes::Word::CColumn(oReader); + ComplexTypes::Word::CColumn *oColumn = new ComplexTypes::Word::CColumn(); + *oColumn = oReader; + if (oColumn) m_arrColumns.push_back( oColumn ); } } @@ -1558,7 +1562,9 @@ namespace OOX { if ( oNodes.GetAt( nIndex, oFooterNode ) ) { - ComplexTypes::Word::CHdrFtrRef *oFooter = new ComplexTypes::Word::CHdrFtrRef(oFooterNode); + ComplexTypes::Word::CHdrFtrRef *oFooter = new ComplexTypes::Word::CHdrFtrRef(); + *oFooter = oFooterNode; + if (oFooter) m_arrFooterReference.push_back( oFooter ); } } @@ -1581,7 +1587,9 @@ namespace OOX { if ( oNodes.GetAt( nIndex, oHeaderNode ) ) { - ComplexTypes::Word::CHdrFtrRef *oHeader = new ComplexTypes::Word::CHdrFtrRef(oHeaderNode); + ComplexTypes::Word::CHdrFtrRef *oHeader = new ComplexTypes::Word::CHdrFtrRef(); + *oHeader = oHeaderNode; + if (oHeader) m_arrHeaderReference.push_back( oHeader ); } } @@ -1653,7 +1661,9 @@ namespace OOX m_oEndnotePr = oReader; else if ( !m_bSectPrChange && L"w:footerReference" == sName ) { - ComplexTypes::Word::CHdrFtrRef *oFooter = new ComplexTypes::Word::CHdrFtrRef(oReader); + ComplexTypes::Word::CHdrFtrRef *oFooter = new ComplexTypes::Word::CHdrFtrRef(); + *oFooter = oReader; + if (oFooter) m_arrFooterReference.push_back( oFooter ); } else if ( L"w:footnotePr" == sName ) @@ -1662,7 +1672,9 @@ namespace OOX m_oFormProt = oReader; else if ( !m_bSectPrChange && L"w:headerReference" == sName ) { - ComplexTypes::Word::CHdrFtrRef *oHeader = new ComplexTypes::Word::CHdrFtrRef( oReader); + ComplexTypes::Word::CHdrFtrRef *oHeader = new ComplexTypes::Word::CHdrFtrRef(); + *oHeader = oReader; + if (oHeader) m_arrHeaderReference.push_back( oHeader ); } else if ( L"w:lnNumType" == sName ) diff --git a/OOXML/DocxFormat/Logic/Table.h b/OOXML/DocxFormat/Logic/Table.h index 054f34e9dd..1888c91948 100644 --- a/OOXML/DocxFormat/Logic/Table.h +++ b/OOXML/DocxFormat/Logic/Table.h @@ -150,7 +150,8 @@ namespace OOX { if ( oGridColNodes.GetAt( nIndex, oGridColNode ) ) { - ComplexTypes::Word::CTblGridCol *oGridCol = new ComplexTypes::Word::CTblGridCol(oGridColNode); + ComplexTypes::Word::CTblGridCol *oGridCol = new ComplexTypes::Word::CTblGridCol(); + *oGridCol = oGridColNode; if (oGridCol) m_arrGridCol.push_back( oGridCol ); } } @@ -169,7 +170,9 @@ namespace OOX m_oTblGridChange = oReader; else if ( L"w:gridCol" == sName ) { - ComplexTypes::Word::CTblGridCol *oGridCol = new ComplexTypes::Word::CTblGridCol(oReader); + ComplexTypes::Word::CTblGridCol *oGridCol = new ComplexTypes::Word::CTblGridCol(); + *oGridCol = oReader; + if (oGridCol) m_arrGridCol.push_back( oGridCol ); } } diff --git a/OOXML/DocxFormat/Logic/TableProperty.cpp b/OOXML/DocxFormat/Logic/TableProperty.cpp index 4c9913e41c..e22fe72c45 100644 --- a/OOXML/DocxFormat/Logic/TableProperty.cpp +++ b/OOXML/DocxFormat/Logic/TableProperty.cpp @@ -1474,7 +1474,9 @@ namespace OOX { if ( oHeaders.GetAt( nIndex, oHeader ) ) { - ComplexTypes::Word::String *oHead = new ComplexTypes::Word::String(oHeader); + ComplexTypes::Word::String *oHead = new ComplexTypes::Word::String(); + *oHead = oHeader; + if (oHead) m_arrHeaders.push_back( oHead ); } } @@ -1492,7 +1494,9 @@ namespace OOX if ( L"w:header" == sName ) { - ComplexTypes::Word::String *oHead = new ComplexTypes::Word::String(oReader); + ComplexTypes::Word::String *oHead = new ComplexTypes::Word::String(); + *oHead = oReader; + if (oHead) m_arrHeaders.push_back( oHead ); } } diff --git a/OOXML/DocxFormat/Settings/Settings.cpp b/OOXML/DocxFormat/Settings/Settings.cpp index eeedd15fbb..16de24190f 100644 --- a/OOXML/DocxFormat/Settings/Settings.cpp +++ b/OOXML/DocxFormat/Settings/Settings.cpp @@ -1459,7 +1459,9 @@ namespace Settings if ( L"w:rsid" == sName ) { - ComplexTypes::Word::CLongHexNumber *oRsid = new ComplexTypes::Word::CLongHexNumber(oReader); + ComplexTypes::Word::CLongHexNumber *oRsid = new ComplexTypes::Word::CLongHexNumber(); + *oRsid = oReader; + if (oRsid) m_arrRsid.push_back( oRsid ); } else if ( L"w:rsidRoot" == sName ) diff --git a/OOXML/DocxFormat/Styles.cpp b/OOXML/DocxFormat/Styles.cpp index 7e66a49e26..aa188172d7 100644 --- a/OOXML/DocxFormat/Styles.cpp +++ b/OOXML/DocxFormat/Styles.cpp @@ -345,7 +345,9 @@ namespace OOX { if ( oList.GetAt( nIndex, oLsdNode ) ) { - ComplexTypes::Word::CLsdException *oLsdException = new ComplexTypes::Word::CLsdException(oLsdNode); + ComplexTypes::Word::CLsdException *oLsdException = new ComplexTypes::Word::CLsdException(); + *oLsdException = oLsdNode; + if (oLsdException ) m_arrLsdException.push_back( oLsdException ); } } @@ -364,7 +366,9 @@ namespace OOX std::wstring sName = oReader.GetName(); if ( L"w:lsdException" == sName ) { - ComplexTypes::Word::CLsdException *oLsdException = new ComplexTypes::Word::CLsdException (oReader); + ComplexTypes::Word::CLsdException *oLsdException = new ComplexTypes::Word::CLsdException(); + *oLsdException = oReader; + if (oLsdException) m_arrLsdException.push_back( oLsdException ); } } diff --git a/OOXML/XlsxFormat/ExternalLinks/ExternalLinks.cpp b/OOXML/XlsxFormat/ExternalLinks/ExternalLinks.cpp index e85026d749..0e3b12885d 100644 --- a/OOXML/XlsxFormat/ExternalLinks/ExternalLinks.cpp +++ b/OOXML/XlsxFormat/ExternalLinks/ExternalLinks.cpp @@ -74,7 +74,7 @@ namespace Spreadsheet std::wstring sName = oReader.GetName(); if (L"sheetName" == sName) { - m_arrItems.push_back(new ComplexTypes::Spreadsheet::String(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } } diff --git a/OOXML/XlsxFormat/Pivot/Pivots.cpp b/OOXML/XlsxFormat/Pivot/Pivots.cpp index 156c9a3c1c..fd95281264 100644 --- a/OOXML/XlsxFormat/Pivot/Pivots.cpp +++ b/OOXML/XlsxFormat/Pivot/Pivots.cpp @@ -847,7 +847,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if (L"x" == sName) - m_arrItems.push_back(new CSharedItemsIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CColumnRowItem::fromBin(XLS::BaseObjectPtr& obj) @@ -3086,7 +3086,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if (L"x" == sName) - m_arrItems.push_back(new CSharedItemsIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CDiscreteGroupingProperties::fromBin(XLS::BaseObjectPtr& obj) @@ -3417,7 +3417,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotCharacterValue::fromBin(XLS::BaseObjectPtr& obj) @@ -3537,7 +3537,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotErrorValue::fromBin(XLS::BaseObjectPtr& obj) @@ -3677,7 +3677,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotNumericValue::fromBin(XLS::BaseObjectPtr& obj) @@ -3790,7 +3790,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotDateTimeValue::fromBin(XLS::BaseObjectPtr& obj) @@ -3878,7 +3878,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotBooleanValue::fromBin(XLS::BaseObjectPtr& obj) @@ -3973,7 +3973,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName()); if ( L"x" == sName ) - m_arrItems.push_back(new CMemberPropertyIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotNoValue::fromBin(XLS::BaseObjectPtr& obj) @@ -4822,7 +4822,7 @@ xmlns:xr16=\"http://schemas.microsoft.com/office/spreadsheetml/2017/revision16\" m_arrItems.push_back(pPivotCharacterValue); } else if ( L"x" == sName ) - m_arrItems.push_back(new CSharedItemsIndex(oReader)); + m_arrItems.push_back(PPTX::CreatePtrXmlContent(oReader)); } } void CPivotCacheRecord::fromBin(XLS::BaseObjectPtr& obj)