summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-09-30 09:40:16 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-09-30 13:35:43 +0100
commit78c83032b266fbb6fc20ddca86df80affaff7c24 (patch)
tree4f4d8891d2a5df71b5a7f8126a539cc464eb41cc
parent00d2eeebc8b1842c4ab7a544552f259208ee0e25 (diff)
maSvgDataArray only populates a uno::Sequence, so use that instead
Change-Id: I335d5ee70e95e1a3b204d34f6df4cb62f3fb3cad
-rw-r--r--include/vcl/svgdata.hxx8
-rw-r--r--vcl/source/filter/graphicfilter.cxx16
-rw-r--r--vcl/source/gdi/impgraph.cxx16
-rw-r--r--vcl/source/gdi/svgdata.cxx20
4 files changed, 26 insertions, 34 deletions
diff --git a/include/vcl/svgdata.hxx b/include/vcl/svgdata.hxx
index c8ee1864eb1d..b234c1083de0 100644
--- a/include/vcl/svgdata.hxx
+++ b/include/vcl/svgdata.hxx
@@ -21,13 +21,12 @@
#define INCLUDED_VCL_SVGDATA_HXX
#include <basegfx/range/b2drange.hxx>
-#include <boost/shared_array.hpp>
#include <com/sun/star/graphic/XPrimitive2D.hpp>
#include <vcl/bitmapex.hxx>
#include <rtl/ustring.hxx>
-typedef boost::shared_array< sal_uInt8 > SvgDataArray;
+typedef css::uno::Sequence<sal_Int8> SvgDataArray;
// helper to convert any Primitive2DSequence to a good quality BitmapEx,
@@ -44,7 +43,6 @@ class VCL_DLLPUBLIC SvgData
private:
// the file and length
SvgDataArray maSvgDataArray;
- sal_uInt32 mnSvgDataArrayLength;
// The absolute Path if available
OUString maPath;
@@ -63,12 +61,12 @@ private:
SvgData& operator=(const SvgData&) SAL_DELETED_FUNCTION;
public:
- SvgData(const SvgDataArray& rSvgDataArray, sal_uInt32 nSvgDataArrayLength, const OUString& rPath);
+ SvgData(const SvgDataArray& rSvgDataArray, const OUString& rPath);
SvgData(const OUString& rPath);
/// data read
const SvgDataArray& getSvgDataArray() const { return maSvgDataArray; }
- sal_uInt32 getSvgDataArrayLength() const { return mnSvgDataArrayLength; }
+ sal_uInt32 getSvgDataArrayLength() const { return maSvgDataArray.getLength(); }
const OUString& getPath() const { return maPath; }
/// data read and evtl. on demand creation
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index 7d79078450ca..49f3b65eeaae 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -1533,18 +1533,18 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat
if (!rIStream.GetError() && nMemoryLength >= 0)
{
- SvgDataArray aNewData(new sal_uInt8[nMemoryLength]);
+ SvgDataArray aNewData(nMemoryLength);
aMemStream.Seek(STREAM_SEEK_TO_BEGIN);
- aMemStream.Read(aNewData.get(), nMemoryLength);
+ aMemStream.Read(aNewData.begin(), nMemoryLength);
// Make a uncompressed copy for GfxLink
nGraphicContentSize = nMemoryLength;
pGraphicContent = new sal_uInt8[nGraphicContentSize];
- std::copy(aNewData.get(), aNewData.get() + nMemoryLength, pGraphicContent);
+ std::copy(aNewData.begin(), aNewData.end(), pGraphicContent);
if(!aMemStream.GetError() )
{
- SvgDataPtr aSvgDataPtr(new SvgData(aNewData, nMemoryLength, rPath));
+ SvgDataPtr aSvgDataPtr(new SvgData(aNewData, rPath));
rGraphic = Graphic(aSvgDataPtr);
bOkay = true;
}
@@ -1552,20 +1552,20 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat
}
else
{
- SvgDataArray aNewData(new sal_uInt8[nStreamLength]);
+ SvgDataArray aNewData(nStreamLength);
rIStream.Seek(nStreamPosition);
- rIStream.Read(aNewData.get(), nStreamLength);
+ rIStream.Read(aNewData.begin(), nStreamLength);
if(!rIStream.GetError())
{
- SvgDataPtr aSvgDataPtr(new SvgData(aNewData, nStreamLength, rPath));
+ SvgDataPtr aSvgDataPtr(new SvgData(aNewData, rPath));
rGraphic = Graphic(aSvgDataPtr);
bOkay = true;
}
}
}
- if(bOkay)
+ if (bOkay)
{
eLinkType = GFX_LINK_TYPE_NATIVE_SVG;
}
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 4050efe38fc0..735eab157792 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1542,23 +1542,21 @@ SvStream& ReadImpGraphic( SvStream& rIStm, ImpGraphic& rImpGraphic )
}
else
{
- sal_uInt32 mnSvgDataArrayLength(0);
- rIStm.ReadUInt32( mnSvgDataArrayLength );
+ sal_uInt32 nSvgDataArrayLength(0);
+ rIStm.ReadUInt32(nSvgDataArrayLength);
- if(mnSvgDataArrayLength)
+ if (nSvgDataArrayLength)
{
- SvgDataArray aNewData(new sal_uInt8[mnSvgDataArrayLength]);
- OUString aPath;
+ SvgDataArray aNewData(nSvgDataArrayLength);
- rIStm.Read(aNewData.get(), mnSvgDataArrayLength);
- aPath = rIStm.ReadUniOrByteString(rIStm.GetStreamCharSet());
+ rIStm.Read(aNewData.begin(), nSvgDataArrayLength);
+ OUString aPath = rIStm.ReadUniOrByteString(rIStm.GetStreamCharSet());
- if(!rIStm.GetError())
+ if (!rIStm.GetError())
{
SvgDataPtr aSvgDataPtr(
new SvgData(
aNewData,
- mnSvgDataArrayLength,
OUString(aPath)));
rImpGraphic = aSvgDataPtr;
diff --git a/vcl/source/gdi/svgdata.cxx b/vcl/source/gdi/svgdata.cxx
index d86fc8dbcef5..cd1614e6328c 100644
--- a/vcl/source/gdi/svgdata.cxx
+++ b/vcl/source/gdi/svgdata.cxx
@@ -99,14 +99,13 @@ void SvgData::ensureReplacement()
void SvgData::ensureSequenceAndRange()
{
- if(!maSequence.hasElements() && mnSvgDataArrayLength)
+ if(!maSequence.hasElements() && maSvgDataArray.hasElements())
{
// import SVG to maSequence, also set maRange
maRange.reset();
// create stream
- const uno::Sequence< sal_Int8 > aPostData(reinterpret_cast<sal_Int8*>(maSvgDataArray.get()), mnSvgDataArrayLength);
- const uno::Reference< io::XInputStream > myInputStream(new comphelper::SequenceInputStream(aPostData));
+ const uno::Reference< io::XInputStream > myInputStream(new comphelper::SequenceInputStream(maSvgDataArray));
if(myInputStream.is())
{
@@ -152,9 +151,8 @@ void SvgData::ensureSequenceAndRange()
}
}
-SvgData::SvgData(const SvgDataArray& rSvgDataArray, sal_uInt32 nSvgDataArrayLength, const OUString& rPath)
+SvgData::SvgData(const SvgDataArray& rSvgDataArray, const OUString& rPath)
: maSvgDataArray(rSvgDataArray),
- mnSvgDataArrayLength(nSvgDataArrayLength),
maPath(rPath),
maRange(),
maSequence(),
@@ -164,7 +162,6 @@ SvgData::SvgData(const SvgDataArray& rSvgDataArray, sal_uInt32 nSvgDataArrayLeng
SvgData::SvgData(const OUString& rPath):
maSvgDataArray(),
- mnSvgDataArrayLength(0),
maPath(rPath),
maRange(),
maSequence(),
@@ -174,15 +171,14 @@ SvgData::SvgData(const OUString& rPath):
if(rIStm.GetError())
return;
const sal_uInt32 nStmLen(rIStm.remainingSize());
- if(nStmLen)
+ if (nStmLen)
{
- SvgDataArray aNewData(new sal_uInt8[nStmLen]);
- rIStm.Read(aNewData.get(), nStmLen);
+ maSvgDataArray.realloc(nStmLen);
+ rIStm.Read(maSvgDataArray.begin(), nStmLen);
- if(!rIStm.GetError())
+ if (rIStm.GetError())
{
- maSvgDataArray = aNewData;
- mnSvgDataArrayLength = nStmLen;
+ maSvgDataArray = SvgDataArray();
}
}
}