From 681297e10b666e13cc463f6fbb16236f36c3266c Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Tue, 12 Jul 2005 22:28:02 +0000 Subject: Reference counting and smart pointers. --- src/plainTextPart.cpp | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/plainTextPart.cpp') diff --git a/src/plainTextPart.cpp b/src/plainTextPart.cpp index 8e065c76..86eb2f67 100644 --- a/src/plainTextPart.cpp +++ b/src/plainTextPart.cpp @@ -29,14 +29,13 @@ namespace vmime plainTextPart::plainTextPart() - : m_text(new emptyContentHandler) + : m_text(vmime::create ()) { } plainTextPart::~plainTextPart() { - delete (m_text); } @@ -55,24 +54,23 @@ const int plainTextPart::getPartCount() const void plainTextPart::generateIn(bodyPart& /* message */, bodyPart& parent) const { // Create a new part - bodyPart* part = new bodyPart(); + ref part = vmime::create (); parent.getBody()->appendPart(part); // Set header fields - part->getHeader()->ContentType().setValue(mediaType(mediaTypes::TEXT, mediaTypes::TEXT_PLAIN)); - part->getHeader()->ContentType().setCharset(m_charset); - part->getHeader()->ContentTransferEncoding().setValue(encoding(encodingTypes::QUOTED_PRINTABLE)); + part->getHeader()->ContentType()->setValue(mediaType(mediaTypes::TEXT, mediaTypes::TEXT_PLAIN)); + part->getHeader()->ContentType()->setCharset(m_charset); + part->getHeader()->ContentTransferEncoding()->setValue(encoding(encodingTypes::QUOTED_PRINTABLE)); // Set contents - part->getBody()->setContents(*m_text); + part->getBody()->setContents(m_text); } void plainTextPart::parse(const bodyPart& /* message */, const bodyPart& /* parent */, const bodyPart& textPart) { - delete (m_text); - m_text = textPart.getBody()->getContents().clone(); + m_text = textPart.getBody()->getContents()->clone().dynamicCast (); try { @@ -104,16 +102,15 @@ void plainTextPart::setCharset(const charset& ch) } -const contentHandler& plainTextPart::getText() const +const ref plainTextPart::getText() const { - return (*m_text); + return (m_text); } -void plainTextPart::setText(const contentHandler& text) +void plainTextPart::setText(ref text) { - delete (m_text); - m_text = text.clone(); + m_text = text->clone().dynamicCast (); } -- cgit v1.2.3