[Libreoffice-commits] core.git: include/tools sw/source tools/qa tools/source
Michael Stahl
mstahl at redhat.com
Fri Sep 26 07:44:19 PDT 2014
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 <mstahl at 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 )
{
More information about the Libreoffice-commits
mailing list