include/tools/urlobj.hxx | 4 +++- sw/source/filter/html/htmlgrin.cxx | 3 +-- tools/qa/cppunit/test_urlobj.cxx | 14 +++++++------- tools/source/fsys/urlobj.cxx | 8 +++++--- 4 files changed, 16 insertions(+), 13 deletions(-)
New commits: commit ea2d767d4475ac3399fdfa59a4d0e2fbc38d1aa9 Author: Michael Stahl <mst...@redhat.com> Date: Fri Sep 26 15:35:09 2014 +0200 tools: change INetURLObject::getData to return std::unique_ptr Life-cycle becomes a lot more obvious this way. Change-Id: I1ca99607f609a2223011c40447ad1cd9ca5ccaa5 diff --git a/include/tools/urlobj.hxx b/include/tools/urlobj.hxx index aee3aea..9610aab 100644 --- a/include/tools/urlobj.hxx +++ b/include/tools/urlobj.hxx @@ -26,6 +26,8 @@ #include <rtl/textenc.h> #include <sal/types.h> +#include <memory> + class SvMemoryStream; namespace com { namespace sun { namespace star { namespace util { @@ -854,7 +856,7 @@ public: const; // Data URLs: - SvMemoryStream* getData(); + std::unique_ptr<SvMemoryStream> getData(); // POP3 and URLs: diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx index 0d834fe..83db824 100644 --- a/sw/source/filter/html/htmlgrin.cxx +++ b/sw/source/filter/html/htmlgrin.cxx @@ -698,12 +698,11 @@ IMAGE_SETEVENT: INetURLObject aGraphicURL( sGrfNm ); if( aGraphicURL.GetProtocol() == INET_PROT_DATA ) { - SvMemoryStream* pStream = aGraphicURL.getData(); + std::unique_ptr<SvMemoryStream> const pStream(aGraphicURL.getData()); if (pStream) { if (GRFILTER_OK == GraphicFilter::GetGraphicFilter().ImportGraphic(aGraphic, "", *pStream)) sGrfNm = ""; - delete pStream; } } // sBaseURL is empty if the source is clipboard diff --git a/tools/qa/cppunit/test_urlobj.cxx b/tools/qa/cppunit/test_urlobj.cxx index 6cfca96..df866bc 100644 --- a/tools/qa/cppunit/test_urlobj.cxx +++ b/tools/qa/cppunit/test_urlobj.cxx @@ -246,7 +246,7 @@ namespace tools_urlobj void urlobjTest_data() { INetURLObject url; - SvMemoryStream * strm; + std::unique_ptr<SvMemoryStream> strm; unsigned char const * buf; url = INetURLObject("data:"); @@ -259,7 +259,7 @@ namespace tools_urlobj strm = url.getData(); CPPUNIT_ASSERT(strm != 0); CPPUNIT_ASSERT_EQUAL(sal_uIntPtr(0), strm->GetSize()); - delete strm; + strm.reset(); url = INetURLObject("data:,,%C3%A4%90"); CPPUNIT_ASSERT(!url.HasError()); @@ -271,7 +271,7 @@ namespace tools_urlobj CPPUNIT_ASSERT_EQUAL(0xC3, int(buf[1])); CPPUNIT_ASSERT_EQUAL(0xA4, int(buf[2])); CPPUNIT_ASSERT_EQUAL(0x90, int(buf[3])); - delete strm; + strm.reset(); url = INetURLObject("data:base64,"); //TODO: CPPUNIT_ASSERT(url.HasError()); @@ -283,14 +283,14 @@ namespace tools_urlobj strm = url.getData(); CPPUNIT_ASSERT(strm != 0); CPPUNIT_ASSERT_EQUAL(sal_uIntPtr(0), strm->GetSize()); - delete strm; + strm.reset(); url = INetURLObject("data:;bAsE64,"); CPPUNIT_ASSERT(!url.HasError()); strm = url.getData(); CPPUNIT_ASSERT(strm != 0); CPPUNIT_ASSERT_EQUAL(sal_uIntPtr(0), strm->GetSize()); - delete strm; + strm.reset(); url = INetURLObject("data:;base64,YWJjCg=="); CPPUNIT_ASSERT(!url.HasError()); @@ -302,7 +302,7 @@ namespace tools_urlobj CPPUNIT_ASSERT_EQUAL(0x62, int(buf[1])); CPPUNIT_ASSERT_EQUAL(0x63, int(buf[2])); CPPUNIT_ASSERT_EQUAL(0x0A, int(buf[3])); - delete strm; + strm.reset(); url = INetURLObject("data:;base64,YWJjCg="); CPPUNIT_ASSERT(!url.HasError()); @@ -324,7 +324,7 @@ namespace tools_urlobj CPPUNIT_ASSERT_EQUAL(0x51, int(buf[1])); CPPUNIT_ASSERT_EQUAL(0x3D, int(buf[2])); CPPUNIT_ASSERT_EQUAL(0x3D, int(buf[3])); - delete strm; + strm.reset(); url = INetURLObject("http://example.com"); CPPUNIT_ASSERT(!url.HasError()); diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx index 7e248a2..e8331e8 100644 --- a/tools/source/fsys/urlobj.cxx +++ b/tools/source/fsys/urlobj.cxx @@ -585,7 +585,9 @@ void INetURLObject::setInvalid() namespace { -SvMemoryStream * memoryStream(void const * data, sal_Int32 length) { +std::unique_ptr<SvMemoryStream> memoryStream( + void const * data, sal_Int32 length) +{ std::unique_ptr<char, boost::checked_array_deleter<char> > b( new char[length]); memcpy(b.get(), data, length); @@ -593,12 +595,12 @@ SvMemoryStream * memoryStream(void const * data, sal_Int32 length) { new SvMemoryStream(b.get(), length, STREAM_READ)); s->ObjectOwnsMemory(true); b.release(); - return s.release(); + return s; } } -SvMemoryStream* INetURLObject::getData() +std::unique_ptr<SvMemoryStream> INetURLObject::getData() { if( GetProtocol() != INET_PROT_DATA ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits