diff options
author | David Tardon <dtardon@redhat.com> | 2018-03-25 16:39:03 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2018-03-25 16:39:10 +0200 |
commit | 8a3b290280fe07a990d7a84b21a0cdc5f28d1c2f (patch) | |
tree | b120b9bd9b825dcb733b7c7adb4eb393c4a0f753 | |
parent | 160825ec6e25b3de6086479f856d14a6dcaaa60a (diff) |
use unique_ptr to hold foreign data
Change-Id: I605e3fc76a7f909566450ccff33649745f16f200
-rw-r--r-- | src/lib/VDXParser.cpp | 10 | ||||
-rw-r--r-- | src/lib/VSD5Parser.cpp | 2 | ||||
-rw-r--r-- | src/lib/VSDParser.cpp | 10 | ||||
-rw-r--r-- | src/lib/VSDStencils.cpp | 8 | ||||
-rw-r--r-- | src/lib/VSDStencils.h | 2 | ||||
-rw-r--r-- | src/lib/VSDXMLParserBase.cpp | 4 | ||||
-rw-r--r-- | src/lib/VSDXParser.cpp | 10 |
7 files changed, 21 insertions, 25 deletions
diff --git a/src/lib/VDXParser.cpp b/src/lib/VDXParser.cpp index 72f78b9..a81e5bc 100644 --- a/src/lib/VDXParser.cpp +++ b/src/lib/VDXParser.cpp @@ -940,7 +940,7 @@ void libvisio::VDXParser::getBinaryData(xmlTextReaderPtr reader) if (data) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); m_shape.m_foreign->data.clear(); m_shape.m_foreign->data.appendBase64Data(librevenge::RVNGString((const char *)data)); } @@ -967,7 +967,7 @@ void libvisio::VDXParser::readForeignInfo(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->offsetX, reader); } break; @@ -975,7 +975,7 @@ void libvisio::VDXParser::readForeignInfo(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->offsetY, reader); } break; @@ -983,7 +983,7 @@ void libvisio::VDXParser::readForeignInfo(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->width, reader); } break; @@ -991,7 +991,7 @@ void libvisio::VDXParser::readForeignInfo(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->height, reader); } break; diff --git a/src/lib/VSD5Parser.cpp b/src/lib/VSD5Parser.cpp index 50b3324..fe841cc 100644 --- a/src/lib/VSD5Parser.cpp +++ b/src/lib/VSD5Parser.cpp @@ -406,7 +406,7 @@ void libvisio::VSD5Parser::readShape(librevenge::RVNGInputStream *input) if (tmpShape) { if (tmpShape->m_foreign) - m_shape.m_foreign = new ForeignData(*(tmpShape->m_foreign)); + m_shape.m_foreign = make_unique<ForeignData>(*(tmpShape->m_foreign)); m_shape.m_text = tmpShape->m_text; m_shape.m_textFormat = tmpShape->m_textFormat; } diff --git a/src/lib/VSDParser.cpp b/src/lib/VSDParser.cpp index 61e5f38..fabb9a3 100644 --- a/src/lib/VSDParser.cpp +++ b/src/lib/VSDParser.cpp @@ -343,7 +343,7 @@ void libvisio::VSDParser::handleStream(const Pointer &ptr, unsigned idx, unsigne break; case VSD_OLE_LIST: if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); m_shape.m_foreign->dataId = idx; break; default: @@ -770,7 +770,7 @@ void libvisio::VSDParser::readForeignData(librevenge::RVNGInputStream *input) librevenge::RVNGBinaryData binaryData(buffer, tmpBytesRead); if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); m_shape.m_foreign->dataId = m_header.id; m_shape.m_foreign->data = binaryData; } @@ -788,7 +788,7 @@ void libvisio::VSDParser::readOLEData(librevenge::RVNGInputStream *input) librevenge::RVNGBinaryData oleData(buffer, tmpBytesRead); if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); // Append data instead of setting it - allows multi-stream OLE objects m_shape.m_foreign->data.append(oleData); @@ -1236,7 +1236,7 @@ void libvisio::VSDParser::readForeignDataType(librevenge::RVNGInputStream *input unsigned foreignFormat = readU32(input); if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); m_shape.m_foreign->typeId = m_header.id; m_shape.m_foreign->type = foreignType; m_shape.m_foreign->format = foreignFormat; @@ -1314,7 +1314,7 @@ void libvisio::VSDParser::readShape(librevenge::RVNGInputStream *input) if (tmpShape) { if (tmpShape->m_foreign) - m_shape.m_foreign = new ForeignData(*(tmpShape->m_foreign)); + m_shape.m_foreign = make_unique<ForeignData>(*(tmpShape->m_foreign)); m_shape.m_xform = tmpShape->m_xform; if (tmpShape->m_txtxform) m_shape.m_txtxform = new XForm(*(tmpShape->m_txtxform)); diff --git a/src/lib/VSDStencils.cpp b/src/lib/VSDStencils.cpp index 2243c53..ba7f9be 100644 --- a/src/lib/VSDStencils.cpp +++ b/src/lib/VSDStencils.cpp @@ -11,7 +11,7 @@ #include "libvisio_utils.h" libvisio::VSDShape::VSDShape() - : m_geometries(), m_shapeList(), m_fields(), m_foreign(nullptr), m_parent(0), m_masterPage(MINUS_ONE), + : m_geometries(), m_shapeList(), m_fields(), m_foreign(), m_parent(0), m_masterPage(MINUS_ONE), m_masterShape(MINUS_ONE), m_shapeId(MINUS_ONE), m_lineStyleId(MINUS_ONE), m_fillStyleId(MINUS_ONE), m_textStyleId(MINUS_ONE), m_lineStyle(), m_fillStyle(), m_textBlockStyle(), m_charStyle(), m_charList(), m_paraStyle(), m_paraList(), m_tabSets(), m_text(), m_names(), @@ -47,9 +47,7 @@ libvisio::VSDShape &libvisio::VSDShape::operator=(const libvisio::VSDShape &shap m_geometries = shape.m_geometries; m_shapeList = shape.m_shapeList; m_fields = shape.m_fields; - if (m_foreign) - delete m_foreign; - m_foreign = shape.m_foreign ? new ForeignData(*(shape.m_foreign)) : nullptr; + m_foreign.reset(shape.m_foreign ? new ForeignData(*(shape.m_foreign)) : nullptr); m_parent = shape.m_parent; m_masterPage = shape.m_masterPage; m_masterShape = shape.m_masterShape; @@ -83,8 +81,6 @@ libvisio::VSDShape &libvisio::VSDShape::operator=(const libvisio::VSDShape &shap void libvisio::VSDShape::clear() { - if (m_foreign) - delete m_foreign; m_foreign = nullptr; if (m_txtxform) delete m_txtxform; diff --git a/src/lib/VSDStencils.h b/src/lib/VSDStencils.h index 5beedf9..7be7063 100644 --- a/src/lib/VSDStencils.h +++ b/src/lib/VSDStencils.h @@ -36,7 +36,7 @@ public: std::map<unsigned, VSDGeometryList> m_geometries; VSDShapeList m_shapeList; VSDFieldList m_fields; - ForeignData *m_foreign; + std::unique_ptr<ForeignData> m_foreign; unsigned m_parent, m_masterPage, m_masterShape, m_shapeId; unsigned m_lineStyleId, m_fillStyleId, m_textStyleId; VSDOptionalLineStyle m_lineStyle; diff --git a/src/lib/VSDXMLParserBase.cpp b/src/lib/VSDXMLParserBase.cpp index e1d9d0d..48d2741 100644 --- a/src/lib/VSDXMLParserBase.cpp +++ b/src/lib/VSDXMLParserBase.cpp @@ -966,7 +966,7 @@ void libvisio::VSDXMLParserBase::readShape(xmlTextReaderPtr reader) if (tmpShape) { if (tmpShape->m_foreign) - m_shape.m_foreign = new ForeignData(*(tmpShape->m_foreign)); + m_shape.m_foreign = make_unique<ForeignData>(*(tmpShape->m_foreign)); m_shape.m_xform = tmpShape->m_xform; if (tmpShape->m_txtxform) m_shape.m_txtxform = new XForm(*(tmpShape->m_txtxform)); @@ -1707,7 +1707,7 @@ void libvisio::VSDXMLParserBase::readForeignData(xmlTextReaderPtr reader) { VSD_DEBUG_MSG(("VSDXMLParser::readForeignData\n")); if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); const shared_ptr<xmlChar> foreignTypeString(xmlTextReaderGetAttribute(reader, BAD_CAST("ForeignType")), xmlFree); if (foreignTypeString) diff --git a/src/lib/VSDXParser.cpp b/src/lib/VSDXParser.cpp index e6385d8..e2c8087 100644 --- a/src/lib/VSDXParser.cpp +++ b/src/lib/VSDXParser.cpp @@ -1098,7 +1098,7 @@ void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->offsetX, reader); } break; @@ -1106,7 +1106,7 @@ void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->offsetY, reader); } break; @@ -1114,7 +1114,7 @@ void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->width, reader); } break; @@ -1122,7 +1122,7 @@ void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader) if (XML_READER_TYPE_ELEMENT == tokenType) { if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); ret = readDoubleData(m_shape.m_foreign->height, reader); } break; @@ -1469,7 +1469,7 @@ void libvisio::VSDXParser::getBinaryData(xmlTextReaderPtr reader) } } if (!m_shape.m_foreign) - m_shape.m_foreign = new ForeignData(); + m_shape.m_foreign = make_unique<ForeignData>(); m_shape.m_foreign->data = m_currentBinaryData; } |