improve loplugin:makeshared

to find places where we are converting stuff to unique_ptr
instead of using std::make_shared.

As a bonus, this tends to find places where we are using shared_ptr
where we can instead be using unique_ptr avoiding the locking overhead.

Change-Id: I1b57bbc4a6c766b48bba8e25a55161800e149f62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93207
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin 2020-04-21 07:51:25 +02:00
parent 6cb9b06432
commit ed8152b1ed
26 changed files with 244 additions and 126 deletions

View File

@ -101,7 +101,7 @@ VLCFrameGrabber::VLCFrameGrabber( wrapper::EventHandler& eh, const OUString& url
OUString url;
osl::FileBase::getFileURLFromSystemPath( fileName, url );
std::shared_ptr<SvStream> stream( utl::UcbStreamHelper::CreateStream( url,
std::unique_ptr<SvStream> stream( utl::UcbStreamHelper::CreateStream( url,
StreamMode::STD_READ ) );
vcl::PNGReader reader( *stream );

View File

@ -351,7 +351,7 @@ xmlDocPtr Chart2ExportTest::parseExport(const OUString& rDir, const OUString& rF
uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), pTempFile->GetURL());
uno::Reference<io::XInputStream> xInputStream(xNameAccess->getByName(findChartFile(rDir, xNameAccess)), uno::UNO_QUERY);
CPPUNIT_ASSERT(xInputStream.is());
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
return parseXmlStream(pStream.get());
}

View File

@ -27,13 +27,13 @@ namespace chart
using namespace ::com::sun::star;
using namespace ::com::sun::star::chart2;
VPolarAxis* VPolarAxis::createAxis( const AxisProperties& rAxisProperties
std::shared_ptr<VPolarAxis> VPolarAxis::createAxis( const AxisProperties& rAxisProperties
, const uno::Reference< util::XNumberFormatsSupplier >& xNumberFormatsSupplier
, sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount )
{
if( nDimensionIndex==0 )
return new VPolarAngleAxis( rAxisProperties, xNumberFormatsSupplier, nDimensionCount );
return new VPolarRadiusAxis( rAxisProperties, xNumberFormatsSupplier, nDimensionCount );
return std::make_shared<VPolarAngleAxis>( rAxisProperties, xNumberFormatsSupplier, nDimensionCount );
return std::make_shared<VPolarRadiusAxis>( rAxisProperties, xNumberFormatsSupplier, nDimensionCount );
}
VPolarAxis::VPolarAxis( const AxisProperties& rAxisProperties

View File

@ -30,7 +30,7 @@ class PolarPlottingPositionHelper;
class VPolarAxis : public VAxisBase
{
public:
static VPolarAxis* createAxis( const AxisProperties& rAxisProperties
static std::shared_ptr<VPolarAxis> createAxis( const AxisProperties& rAxisProperties
, const css::uno::Reference< css::util::XNumberFormatsSupplier >& xNumberFormatsSupplier
, sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount );

View File

@ -47,6 +47,43 @@ public:
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/excel/xecontent.cxx"))
return false;
// no idea what is going on here
if (loplugin::isSamePathname(fn, SRCDIR "/svx/source/sidebar/nbdtmg.cxx"))
return false;
// legitimate use of moving std::unique_ptr to std::shared_ptr
if (loplugin::isSamePathname(fn, SRCDIR "/comphelper/source/container/enumerablemap.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/svl/source/items/style.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/vcl/source/app/weldutils.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sfx2/source/appl/appopen.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/svx/source/table/tablertfimporter.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/ui/docshell/externalrefmgr.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/core/attr/swatrset.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/ui/condformat/condformatdlg.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/core/layout/frmtool.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/excel/xihelper.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/excel/xeformula.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/excel/xichart.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/html/htmlpars.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/ui/view/cellsh1.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/filter/html/htmltab.cxx"))
return false;
if (loplugin::isSamePathname(fn, SRCDIR "/sw/source/filter/ww8/docxattributeoutput.cxx"))
return false;
return true;
}
@ -60,6 +97,8 @@ public:
bool VisitCXXConstructExpr(CXXConstructExpr const*);
bool VisitCXXMemberCallExpr(CXXMemberCallExpr const*);
bool VisitCXXOperatorCallExpr(CXXOperatorCallExpr const*);
bool VisitVarDecl(VarDecl const*);
};
bool MakeShared::VisitCXXConstructExpr(CXXConstructExpr const* constructExpr)
@ -71,25 +110,39 @@ bool MakeShared::VisitCXXConstructExpr(CXXConstructExpr const* constructExpr)
if (!(constructExpr->getNumArgs() == 1
|| (constructExpr->getNumArgs() > 1 && isa<CXXDefaultArgExpr>(constructExpr->getArg(1)))))
return true;
auto cxxNewExpr = dyn_cast<CXXNewExpr>(constructExpr->getArg(0)->IgnoreParenImpCasts());
if (!cxxNewExpr)
return true;
auto construct2 = cxxNewExpr->getConstructExpr();
if (construct2)
auto arg0 = constructExpr->getArg(0)->IgnoreParenImpCasts();
auto cxxNewExpr = dyn_cast<CXXNewExpr>(arg0);
if (cxxNewExpr)
{
if (construct2->getConstructor()->getAccess() != AS_public)
return true;
if (construct2->getNumArgs() == 1 && isa<CXXStdInitializerListExpr>(construct2->getArg(0)))
return true;
auto construct2 = cxxNewExpr->getConstructExpr();
if (construct2)
{
if (construct2->getConstructor()->getAccess() != AS_public)
return true;
if (construct2->getNumArgs() == 1
&& isa<CXXStdInitializerListExpr>(construct2->getArg(0)))
return true;
}
}
else if (loplugin::TypeCheck(arg0->getType()).ClassOrStruct("shared_ptr").StdNamespace())
return true;
else if (loplugin::TypeCheck(arg0->getType()).ClassOrStruct("weak_ptr").StdNamespace())
return true;
else if (arg0->getType()->isDependentType())
return true;
else if (isa<CXXNullPtrLiteralExpr>(arg0))
return true;
StringRef fn = getFilenameOfLocation(
compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(constructExpr)));
if (loplugin::isSamePathname(fn, SRCDIR "/include/o3tl/make_shared.hxx"))
return true;
if (loplugin::isSamePathname(fn, SRCDIR "/svl/source/items/stylepool.cxx"))
return true;
report(DiagnosticsEngine::Warning, "rather use make_shared", compat::getBeginLoc(cxxNewExpr))
<< cxxNewExpr->getSourceRange();
report(DiagnosticsEngine::Warning, "rather use make_shared than constructing from %0",
compat::getBeginLoc(constructExpr))
<< arg0->getType() << constructExpr->getSourceRange();
return true;
}
@ -97,6 +150,7 @@ bool MakeShared::VisitCXXMemberCallExpr(CXXMemberCallExpr const* cxxMemberCallEx
{
if (ignoreLocation(cxxMemberCallExpr))
return true;
if (cxxMemberCallExpr->getNumArgs() != 1)
return true;
@ -132,6 +186,54 @@ bool MakeShared::VisitCXXMemberCallExpr(CXXMemberCallExpr const* cxxMemberCallEx
return true;
}
bool MakeShared::VisitCXXOperatorCallExpr(CXXOperatorCallExpr const* operCallExpr)
{
if (ignoreLocation(operCallExpr))
return true;
if (!operCallExpr->isAssignmentOp())
return true;
if (!loplugin::TypeCheck(operCallExpr->getType()).ClassOrStruct("shared_ptr").StdNamespace())
return true;
if (loplugin::TypeCheck(operCallExpr->getArg(1)->getType())
.ClassOrStruct("shared_ptr")
.StdNamespace())
return true;
report(DiagnosticsEngine::Warning, "rather use make_shared than constructing from %0",
compat::getBeginLoc(operCallExpr))
<< operCallExpr->getArg(1)->getType() << operCallExpr->getSourceRange();
return true;
}
bool MakeShared::VisitVarDecl(VarDecl const* varDecl)
{
if (ignoreLocation(varDecl))
return true;
if (!varDecl->hasInit())
return true;
if (!loplugin::TypeCheck(varDecl->getType()).ClassOrStruct("shared_ptr").StdNamespace())
return true;
if (varDecl->getInit()->getType().isNull())
return true;
if (varDecl->getInit()->getType()->isDependentType())
return true;
if (loplugin::TypeCheck(varDecl->getInit()->IgnoreParenImpCasts()->getType())
.ClassOrStruct("shared_ptr")
.StdNamespace())
return true;
report(DiagnosticsEngine::Warning, "rather use make_shared than constructing from %0",
compat::getBeginLoc(varDecl))
<< varDecl->getInit()->getType() << varDecl->getSourceRange();
return true;
}
loplugin::Plugin::Registration<MakeShared> makeshared("makeshared");
} // namespace

View File

@ -23,11 +23,12 @@ private:
void test1()
{
std::shared_ptr<int> x(
new int); // expected-error {{rather use make_shared [loplugin:makeshared]}}
x.reset(new int); // expected-error {{rather use make_shared [loplugin:makeshared]}}
x = std::shared_ptr<int>(
new int); // expected-error {{rather use make_shared [loplugin:makeshared]}}
// expected-error@+1 {{rather use make_shared than constructing from 'int *' [loplugin:makeshared]}}
std::shared_ptr<int> x(new int);
// expected-error@+1 {{rather use make_shared [loplugin:makeshared]}}
x.reset(new int);
// expected-error@+1 {{rather use make_shared than constructing from 'int *' [loplugin:makeshared]}}
x = std::shared_ptr<int>(new int);
// no warning expected
std::shared_ptr<int> y(new int, o3tl::default_delete<int>());
@ -40,4 +41,23 @@ void test1()
auto a = std::shared_ptr<o3tl::sorted_vector<int>>(new o3tl::sorted_vector<int>({ 1, 2 }));
};
void test2()
{
// expected-error-re@+1 {{rather use make_shared than constructing from {{.+}} (aka 'unique_ptr<int>') [loplugin:makeshared]}}
std::shared_ptr<int> x = std::make_unique<int>(1);
// expected-error-re@+1 {{rather use make_shared than constructing from {{.+}} (aka 'unique_ptr<int>') [loplugin:makeshared]}}
x = std::make_unique<int>(1);
(void)x;
// expected-error-re@+1 {{rather use make_shared than constructing from {{.+}} (aka 'unique_ptr<int>') [loplugin:makeshared]}}
std::shared_ptr<int> y(std::make_unique<int>(1));
(void)y;
std::unique_ptr<int> u1;
// expected-error-re@+1 {{rather use make_shared than constructing from {{.+}} (aka 'std::unique_ptr<int, std::default_delete<int> >') [loplugin:makeshared]}}
std::shared_ptr<int> z = std::move(u1);
// expected-error-re@+1 {{rather use make_shared than constructing from {{.+}} (aka 'std::unique_ptr<int, std::default_delete<int> >') [loplugin:makeshared]}}
z = std::move(u1);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */

View File

@ -126,7 +126,7 @@ OUString LwpBulletStyleMgr::RegisterBulletStyle(LwpPara* pPara, const LwpBulletO
}
LwpObjectID aBulletID = pBullOver->GetSilverBullet();
std::shared_ptr<LwpBulletOverride> pBulletOver(pBullOver->clone());
std::unique_ptr<LwpBulletOverride> pBulletOver(pBullOver->clone());
sal_uInt16 nNameIndex = 0;
for (auto const& vIDsPair : m_vIDsPairList)
@ -142,7 +142,7 @@ OUString LwpBulletStyleMgr::RegisterBulletStyle(LwpPara* pPara, const LwpBulletO
}
}
m_vIDsPairList.emplace_back(pBulletOver, aIndentID);
m_vIDsPairList.emplace_back(std::move(pBulletOver), aIndentID);
OUString aStyleName;
LwpFribPtr& rBulletParaFribs = pBulletPara->GetFribs();

View File

@ -88,7 +88,7 @@ public:
inline void SetCurrentSilverBullet(const LwpObjectID& rNewID);
private:
typedef std::pair<std::shared_ptr<LwpBulletOverride>, LwpObjectID> OverridePair;
typedef std::pair<std::unique_ptr<LwpBulletOverride>, LwpObjectID> OverridePair;
std::vector <OUString> m_vStyleNameList;
std::vector <OverridePair> m_vIDsPairList;
LwpFoundry* m_pFoundry;

View File

@ -882,7 +882,7 @@ void SdOOXMLExportTest1::testCustomXml()
assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship", 1);
assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship[@Id='rId1']", "Target", "itemProps1.xml");
std::shared_ptr<SvStream> pStream = parseExportStream(tempFile, "ddp/ddpfile.xen");
std::unique_ptr<SvStream> pStream = parseExportStream(tempFile, "ddp/ddpfile.xen");
CPPUNIT_ASSERT(pStream);
}

View File

@ -2318,10 +2318,10 @@ void SdOOXMLExportTest2::testTdf44223()
= loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf44223.pptx"), PPTX);
xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
std::shared_ptr<SvStream> const pStream1(parseExportStream(tempFile, "ppt/media/audio1.wav"));
std::unique_ptr<SvStream> const pStream1(parseExportStream(tempFile, "ppt/media/audio1.wav"));
CPPUNIT_ASSERT_EQUAL(sal_uInt64(11140), pStream1->remainingSize());
std::shared_ptr<SvStream> const pStream2(parseExportStream(tempFile, "ppt/media/audio2.wav"));
std::unique_ptr<SvStream> const pStream2(parseExportStream(tempFile, "ppt/media/audio2.wav"));
CPPUNIT_ASSERT_EQUAL(sal_uInt64(28074), pStream2->remainingSize());
xmlDocPtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");

View File

@ -133,7 +133,7 @@ public:
protected:
/// Load the document.
sd::DrawDocShellRef loadURL( const OUString &rURL, sal_Int32 nFormat, std::unique_ptr<SfxAllItemSet> pParams = nullptr )
sd::DrawDocShellRef loadURL( const OUString &rURL, sal_Int32 nFormat, std::shared_ptr<SfxAllItemSet> pParams = nullptr )
{
FileFormat *pFmt = getFormat(nFormat);
CPPUNIT_ASSERT_MESSAGE( "missing filter info", pFmt->pName != nullptr );
@ -142,7 +142,7 @@ protected:
SotClipboardFormatId nOptions = SotClipboardFormatId::NONE;
if (pFmt->nFormatType != SfxFilterFlags::NONE)
nOptions = SotClipboardFormatId::STARDRAW_8;
SfxFilter* pFilter = new SfxFilter(
auto pFilter = std::make_shared<SfxFilter>(
OUString::createFromAscii( pFmt->pFilterName ),
OUString(), pFmt->nFormatType, nOptions,
OUString::createFromAscii( pFmt->pTypeName ),
@ -150,10 +150,9 @@ protected:
OUString::createFromAscii( pFmt->pUserData ),
"private:factory/sdraw*" );
pFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
std::shared_ptr<const SfxFilter> pFilt(pFilter);
::sd::DrawDocShellRef xDocShRef = new ::sd::GraphicDocShell(SfxObjectCreateMode::EMBEDDED);
SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilt, std::move(pParams));
SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilter, std::move(pParams));
if ( !xDocShRef->DoLoad(pSrcMed) || !xDocShRef.is() )
{
if (xDocShRef.is())
@ -168,7 +167,7 @@ protected:
SotClipboardFormatId nOptions = SotClipboardFormatId::NONE;
if (pFmt->nFormatType != SfxFilterFlags::NONE)
nOptions = SotClipboardFormatId::STARIMPRESS_8;
SfxFilter* pFilter = new SfxFilter(
auto pFilter = std::make_shared<SfxFilter>(
OUString::createFromAscii( pFmt->pFilterName ),
OUString(), pFmt->nFormatType, nOptions,
OUString::createFromAscii( pFmt->pTypeName ),
@ -176,10 +175,9 @@ protected:
OUString::createFromAscii( pFmt->pUserData ),
"private:factory/simpress*" );
pFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
std::shared_ptr<const SfxFilter> pFilt(pFilter);
::sd::DrawDocShellRef xDocShRef = new ::sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Impress);
SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilt, std::move(pParams));
SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ, pFilter, std::move(pParams));
if ( !xDocShRef->DoLoad(pSrcMed) || !xDocShRef.is() )
{
if (xDocShRef.is())
@ -445,20 +443,20 @@ class SdModelTestBaseXML
{
public:
std::shared_ptr<SvStream> parseExportStream(utl::TempFile const & rTempFile, const OUString& rStreamName)
std::unique_ptr<SvStream> parseExportStream(utl::TempFile const & rTempFile, const OUString& rStreamName)
{
// Read the stream we're interested in.
OUString const url(rTempFile.GetURL());
uno::Reference<packages::zip::XZipFileAccess2> const xZipNames(packages::zip::ZipFileAccess::createWithURL(
comphelper::getComponentContext(m_xSFactory), url));
uno::Reference<io::XInputStream> const xInputStream(xZipNames->getByName(rStreamName), uno::UNO_QUERY);
std::shared_ptr<SvStream> const pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
return pStream;
}
xmlDocPtr parseExport(utl::TempFile const & rTempFile, OUString const& rStreamName)
{
std::shared_ptr<SvStream> const pStream(parseExportStream(rTempFile, rStreamName));
std::unique_ptr<SvStream> const pStream(parseExportStream(rTempFile, rStreamName));
xmlDocPtr const pXmlDoc = parseXmlStream(pStream.get());
OUString const url(rTempFile.GetURL());
pXmlDoc->name = reinterpret_cast<char *>(xmlStrdup(

View File

@ -638,12 +638,12 @@ VclPtr<AbstractSdCustomShowDlg> SdAbstractDialogFactory_Impl::CreateSdCustomShow
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabCharDialog(weld::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell)
{
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_unique<SdCharDlg>(pParent, pAttr, pDocShell));
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_shared<SdCharDlg>(pParent, pAttr, pDocShell));
}
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabPageDialog(weld::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage, bool bIsImpressDoc )
{
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_unique<SdPageDlg>(pDocShell, pParent, pAttr, bAreaPage, bIsImpressDoc));
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_shared<SdPageDlg>(pDocShell, pParent, pAttr, bAreaPage, bIsImpressDoc));
}
VclPtr<AbstractSdModifyFieldDlg> SdAbstractDialogFactory_Impl::CreateSdModifyFieldDlg(weld::Window* pParent, const SvxFieldData* pInField, const SfxItemSet& rSet)
@ -673,12 +673,12 @@ VclPtr<AbstractMorphDlg> SdAbstractDialogFactory_Impl::CreateMorphDlg(weld::Wind
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdOutlineBulletTabDlg(weld::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView)
{
return VclPtr<AbstractBulletDialog_Impl>::Create(std::make_unique<::sd::OutlineBulletDlg>(pParent, pAttr, pView));
return VclPtr<AbstractBulletDialog_Impl>::Create(std::make_shared<::sd::OutlineBulletDlg>(pParent, pAttr, pView));
}
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdParagraphTabDlg(weld::Window* pParent, const SfxItemSet* pAttr )
{
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_unique<SdParagraphDlg>(pParent, pAttr));
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_shared<SdParagraphDlg>(pParent, pAttr));
}
VclPtr<AbstractSdStartPresDlg> SdAbstractDialogFactory_Impl::CreateSdStartPresentationDlg(weld::Window* pParent,
@ -694,7 +694,7 @@ VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateRemoteDialog(weld:
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdPresLayoutTemplateDlg(SfxObjectShell* pDocSh, weld::Window* pParent, bool bBackgroundDlg, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool)
{
return VclPtr<SdPresLayoutTemplateDlg_Impl>::Create(std::make_unique<SdPresLayoutTemplateDlg>(pDocSh, pParent, bBackgroundDlg, rStyleBase, ePO, pSSPool));
return VclPtr<SdPresLayoutTemplateDlg_Impl>::Create(std::make_shared<SdPresLayoutTemplateDlg>(pDocSh, pParent, bBackgroundDlg, rStyleBase, ePO, pSSPool));
}
VclPtr<AbstractSdPresLayoutDlg> SdAbstractDialogFactory_Impl::CreateSdPresLayoutDlg(weld::Window* pParent, ::sd::DrawDocShell* pDocShell, const SfxItemSet& rInAttrs)
@ -704,7 +704,7 @@ VclPtr<AbstractSdPresLayoutDlg> SdAbstractDialogFactory_Impl::CreateSdPresLayout
VclPtr<SfxAbstractTabDialog> SdAbstractDialogFactory_Impl::CreateSdTabTemplateDlg(weld::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView)
{
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_unique<SdTabTemplateDlg>(pParent, pDocShell, rStyleBase, pModel, pView));
return VclPtr<SdAbstractTabController_Impl>::Create(std::make_shared<SdTabTemplateDlg>(pParent, pDocShell, rStyleBase, pModel, pView));
}
VclPtr<SfxAbstractDialog> SdAbstractDialogFactory_Impl::CreatSdActionDialog(weld::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView )
@ -751,7 +751,7 @@ VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateMasterLayoutDialog
VclPtr<AbstractHeaderFooterDialog> SdAbstractDialogFactory_Impl::CreateHeaderFooterDialog(sd::ViewShell* pViewShell,
weld::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage)
{
return VclPtr<AbstractHeaderFooterDialog_Impl>::Create(std::make_unique<::sd::HeaderFooterDialog>(pViewShell, pParent, pDoc, pCurrentPage));
return VclPtr<AbstractHeaderFooterDialog_Impl>::Create(std::make_shared<::sd::HeaderFooterDialog>(pViewShell, pParent, pDoc, pCurrentPage));
}
VclPtr<VclAbstractDialog> SdAbstractDialogFactory_Impl::CreateSdPhotoAlbumDialog(weld::Window* pParent, SdDrawDocument* pDoc)

View File

@ -146,7 +146,7 @@ class SdAbstractTabController_Impl : public SfxAbstractTabDialog
{
std::shared_ptr<SfxTabDialogController> m_xDlg;
public:
explicit SdAbstractTabController_Impl(std::unique_ptr<SfxTabDialogController> p)
explicit SdAbstractTabController_Impl(std::shared_ptr<SfxTabDialogController> p)
: m_xDlg(std::move(p))
{
}
@ -167,7 +167,7 @@ class AbstractBulletDialog_Impl : public SfxAbstractTabDialog
{
std::shared_ptr<SfxTabDialogController> m_xDlg;
public:
explicit AbstractBulletDialog_Impl(std::unique_ptr<SfxTabDialogController> p)
explicit AbstractBulletDialog_Impl(std::shared_ptr<SfxTabDialogController> p)
: m_xDlg(std::move(p))
{
}
@ -188,7 +188,7 @@ class SdPresLayoutTemplateDlg_Impl : public SfxAbstractTabDialog
{
std::shared_ptr<SdPresLayoutTemplateDlg> m_xDlg;
public:
explicit SdPresLayoutTemplateDlg_Impl(std::unique_ptr<SdPresLayoutTemplateDlg> p)
explicit SdPresLayoutTemplateDlg_Impl(std::shared_ptr<SdPresLayoutTemplateDlg> p)
: m_xDlg(std::move(p))
{
}
@ -388,7 +388,7 @@ class AbstractHeaderFooterDialog_Impl :public AbstractHeaderFooterDialog
private:
std::shared_ptr<::sd::HeaderFooterDialog> m_xDlg;
public:
AbstractHeaderFooterDialog_Impl(std::unique_ptr<::sd::HeaderFooterDialog> pDlg)
AbstractHeaderFooterDialog_Impl(std::shared_ptr<::sd::HeaderFooterDialog> pDlg)
: m_xDlg(std::move(pDlg))
{
}

View File

@ -102,7 +102,7 @@ sal_Int32 ResolutionReduction::ResolutionReducedReplacement::GetMemorySize() con
std::shared_ptr<BitmapReplacement> ResolutionReduction::Compress (
const BitmapEx& rBitmap) const
{
ResolutionReducedReplacement* pResult = new ResolutionReducedReplacement;
auto pResult = std::make_shared<ResolutionReducedReplacement>();
pResult->maPreview = rBitmap;
Size aSize (rBitmap.GetSizePixel());
pResult->maOriginalSize = aSize;
@ -112,7 +112,7 @@ std::shared_ptr<BitmapReplacement> ResolutionReduction::Compress (
pResult->maPreview.Scale(Size(mnWidth,nHeight));
}
return std::shared_ptr<BitmapReplacement>(pResult);
return pResult;
}
BitmapEx ResolutionReduction::Decompress (const BitmapReplacement& rBitmapData) const
@ -164,12 +164,12 @@ std::shared_ptr<BitmapReplacement> PngCompression::Compress (const BitmapEx& rBi
SvMemoryStream aStream (32768, 32768);
aWriter.Write(aStream);
PngReplacement* pResult = new PngReplacement();
auto pResult = std::make_shared<PngReplacement>();
pResult->mnDataSize = aStream.Tell();
pResult->mpData = new char[pResult->mnDataSize];
memcpy(pResult->mpData, aStream.GetData(), pResult->mnDataSize);
return std::shared_ptr<BitmapReplacement>(pResult);
return pResult;
}
BitmapEx PngCompression::Decompress (

View File

@ -87,7 +87,7 @@ CPPUNIT_TEST_FIXTURE(MiscTest, testODFCustomMetadata)
uno::Reference<packages::zip::XZipFileAccess2> const xZip(
packages::zip::ZipFileAccess::createWithURL(m_xContext, aTempFile.GetURL()));
uno::Reference<io::XInputStream> const xInputStream(xZip->getByName("meta.xml"), uno::UNO_QUERY);
std::shared_ptr<SvStream> const pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> const pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
xmlDocPtr pXmlDoc = parseXmlStream(pStream.get());
assertXPathContent(pXmlDoc, "/office:document-meta/office:meta/bork", "bork");
assertXPath(pXmlDoc, "/office:document-meta/office:meta/foo:bar", 1);

View File

@ -2481,7 +2481,7 @@ bool SfxObjectShell::DoSave_Impl( const SfxItemSet* pArgs )
// copy the original itemset, but remove the "version" item, because pMediumTmp
// is a new medium "from scratch", so no version should be stored into it
std::unique_ptr<SfxItemSet> pSet(new SfxAllItemSet(*pRetrMedium->GetItemSet()));
std::shared_ptr<SfxItemSet> pSet = std::make_shared<SfxAllItemSet>(*pRetrMedium->GetItemSet());
pSet->ClearItem( SID_VERSION );
pSet->ClearItem( SID_DOC_BASEURL );
@ -2745,52 +2745,51 @@ bool SfxObjectShell::PreDoSaveAs_Impl(const OUString& rFileName, const OUString&
const uno::Sequence<beans::PropertyValue>& rArgs)
{
// copy all items stored in the itemset of the current medium
std::unique_ptr<SfxAllItemSet> pMergedParams(new SfxAllItemSet( *pMedium->GetItemSet() ));
std::shared_ptr<SfxAllItemSet> xMergedParams = std::make_shared<SfxAllItemSet>( *pMedium->GetItemSet() );
// in "SaveAs" title and password will be cleared ( maybe the new itemset contains new values, otherwise they will be empty )
// #i119366# - As the SID_ENCRYPTIONDATA and SID_PASSWORD are using for setting password together, we need to clear them both.
// Also, ( maybe the new itemset contains new values, otherwise they will be empty )
if (pMergedParams->HasItem( SID_PASSWORD ))
if (xMergedParams->HasItem( SID_PASSWORD ))
{
pMergedParams->ClearItem( SID_PASSWORD );
pMergedParams->ClearItem( SID_ENCRYPTIONDATA );
xMergedParams->ClearItem( SID_PASSWORD );
xMergedParams->ClearItem( SID_ENCRYPTIONDATA );
}
pMergedParams->ClearItem( SID_DOCINFO_TITLE );
xMergedParams->ClearItem( SID_DOCINFO_TITLE );
pMergedParams->ClearItem( SID_INPUTSTREAM );
pMergedParams->ClearItem( SID_STREAM );
pMergedParams->ClearItem( SID_CONTENT );
pMergedParams->ClearItem( SID_DOC_READONLY );
pMergedParams->ClearItem( SID_DOC_BASEURL );
xMergedParams->ClearItem( SID_INPUTSTREAM );
xMergedParams->ClearItem( SID_STREAM );
xMergedParams->ClearItem( SID_CONTENT );
xMergedParams->ClearItem( SID_DOC_READONLY );
xMergedParams->ClearItem( SID_DOC_BASEURL );
pMergedParams->ClearItem( SID_REPAIRPACKAGE );
xMergedParams->ClearItem( SID_REPAIRPACKAGE );
// "SaveAs" will never store any version information - it's a complete new file !
pMergedParams->ClearItem( SID_VERSION );
xMergedParams->ClearItem( SID_VERSION );
// merge the new parameters into the copy
// all values present in both itemsets will be overwritten by the new parameters
pMergedParams->Put(rItemSet);
xMergedParams->Put(rItemSet);
SAL_WARN_IF( pMergedParams->GetItemState( SID_DOC_SALVAGE) >= SfxItemState::SET,
SAL_WARN_IF( xMergedParams->GetItemState( SID_DOC_SALVAGE) >= SfxItemState::SET,
"sfx.doc","Salvage item present in Itemset, check the parameters!");
// should be unnecessary - too hot to handle!
pMergedParams->ClearItem( SID_DOC_SALVAGE );
xMergedParams->ClearItem( SID_DOC_SALVAGE );
// create a medium for the target URL
auto pMergedParamsTmp = pMergedParams.get();
SfxMedium *pNewFile = new SfxMedium( rFileName, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE | StreamMode::TRUNC, nullptr, std::move(pMergedParams) );
SfxMedium *pNewFile = new SfxMedium( rFileName, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE | StreamMode::TRUNC, nullptr, xMergedParams );
pNewFile->SetArgs(rArgs);
const SfxBoolItem* pNoFileSync = pMergedParamsTmp->GetItem<SfxBoolItem>(SID_NO_FILE_SYNC, false);
const SfxBoolItem* pNoFileSync = xMergedParams->GetItem<SfxBoolItem>(SID_NO_FILE_SYNC, false);
if (pNoFileSync && pNoFileSync->GetValue())
pNewFile->DisableFileSync(true);
bool bUseThumbnailSave = IsUseThumbnailSave();
comphelper::ScopeGuard aThumbnailGuard(
[this, bUseThumbnailSave] { this->SetUseThumbnailSave(bUseThumbnailSave); });
const SfxBoolItem* pNoThumbnail = pMergedParamsTmp->GetItem<SfxBoolItem>(SID_NO_THUMBNAIL, false);
const SfxBoolItem* pNoThumbnail = xMergedParams->GetItem<SfxBoolItem>(SID_NO_THUMBNAIL, false);
if (pNoThumbnail)
// Thumbnail generation should be avoided just for this save.
SetUseThumbnailSave(!pNoThumbnail->GetValue());
@ -2818,7 +2817,7 @@ bool SfxObjectShell::PreDoSaveAs_Impl(const OUString& rFileName, const OUString&
}
// check if a "SaveTo" is wanted, no "SaveAs"
const SfxBoolItem* pSaveToItem = pMergedParamsTmp->GetItem<SfxBoolItem>(SID_SAVETO, false);
const SfxBoolItem* pSaveToItem = xMergedParams->GetItem<SfxBoolItem>(SID_SAVETO, false);
bool bCopyTo = GetCreateMode() == SfxObjectCreateMode::EMBEDDED || (pSaveToItem && pSaveToItem->GetValue());
// distinguish between "Save" and "SaveAs"

View File

@ -845,20 +845,17 @@ void SfxOleSection::SetDateValue( sal_Int32 nPropId, const util::Date& rValue )
void SfxOleSection::SetThumbnailValue( sal_Int32 nPropId,
const uno::Sequence<sal_Int8> & i_rData)
{
SfxOleThumbnailProperty* pThumbnail = new SfxOleThumbnailProperty( nPropId, i_rData );
SfxOlePropertyRef xProp( pThumbnail ); // take ownership
auto pThumbnail = std::make_shared<SfxOleThumbnailProperty>( nPropId, i_rData );
if( pThumbnail->IsValid() )
SetProperty( xProp );
SetProperty( pThumbnail );
}
void SfxOleSection::SetBlobValue( sal_Int32 nPropId,
const uno::Sequence<sal_Int8> & i_rData)
{
SfxOleBlobProperty* pBlob( new SfxOleBlobProperty( nPropId, i_rData ) );
SfxOlePropertyRef xProp( pBlob );
if( pBlob->IsValid() ) {
SetProperty( xProp );
}
auto pBlob = std::make_shared<SfxOleBlobProperty>( nPropId, i_rData );
if( pBlob->IsValid() )
SetProperty( pBlob );
}
Any SfxOleSection::GetAnyValue( sal_Int32 nPropId ) const

View File

@ -306,9 +306,9 @@ void IMapWindow::SdrObjCreated( const SdrObject& rObj )
case OBJ_RECT:
{
SdrRectObj* pRectObj = const_cast<SdrRectObj*>(static_cast<const SdrRectObj*>(&rObj));
IMapRectangleObject* pObj = new IMapRectangleObject( pRectObj->GetLogicRect(), "", "", "", "", "", true, false );
auto pObj = std::make_shared<IMapRectangleObject>( pRectObj->GetLogicRect(), "", "", "", "", "", true, false );
pRectObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( IMapObjectPtr(pObj) )) );
pRectObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( pObj )) );
}
break;
@ -322,9 +322,9 @@ void IMapWindow::SdrObjCreated( const SdrObject& rObj )
SdrObject* pTemp(pPathObj);
SdrObject::Free(pTemp);
IMapPolygonObject* pObj = new IMapPolygonObject( aPoly, "", "", "", "", "", true, false );
auto pObj = std::make_shared<IMapPolygonObject>( aPoly, "", "", "", "", "", true, false );
pObj->SetExtraEllipse( aPoly.GetBoundRect() );
pCircObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( IMapObjectPtr(pObj) )) );
pCircObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( pObj )) );
}
break;
@ -339,8 +339,8 @@ void IMapWindow::SdrObjCreated( const SdrObject& rObj )
if ( rXPolyPoly.count() )
{
tools::Polygon aPoly(rXPolyPoly.getB2DPolygon(0));
IMapPolygonObject* pObj = new IMapPolygonObject( aPoly, "", "", "", "", "", true, false );
pPathObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( IMapObjectPtr(pObj) )) );
auto pObj = std::make_shared<IMapPolygonObject>( aPoly, "", "", "", "", "", true, false );
pPathObj->AppendUserData( std::unique_ptr<SdrObjUserData>(new IMapUserData( pObj )) );
}
}
break;
@ -387,7 +387,7 @@ void IMapWindow::SdrObjChanged( const SdrObject& rObj )
SdrPathObj* pPathObj = static_cast<SdrPathObj*>( rCircObj.ConvertToPolyObj( false, false ).release() );
tools::Polygon aPoly(pPathObj->GetPathPoly().getB2DPolygon(0));
IMapPolygonObject* pObj = new IMapPolygonObject( aPoly, aURL, aAltText, aDesc, aTarget, "", bActive, false );
auto pObj = std::make_shared<IMapPolygonObject>( aPoly, aURL, aAltText, aDesc, aTarget, "", bActive, false );
pObj->SetExtraEllipse( aPoly.GetBoundRect() );
// was only created by us temporarily
@ -395,7 +395,7 @@ void IMapWindow::SdrObjChanged( const SdrObject& rObj )
SdrObject* pTemp(pPathObj);
SdrObject::Free(pTemp);
pUserData->ReplaceObject( IMapObjectPtr(pObj) );
pUserData->ReplaceObject( pObj );
}
break;
@ -410,8 +410,8 @@ void IMapWindow::SdrObjChanged( const SdrObject& rObj )
if ( rXPolyPoly.count() )
{
tools::Polygon aPoly(rPathObj.GetPathPoly().getB2DPolygon(0));
IMapPolygonObject* pObj = new IMapPolygonObject( aPoly, aURL, aAltText, aDesc, aTarget, "", bActive, false );
pUserData->ReplaceObject( IMapObjectPtr(pObj) );
auto pObj = std::make_shared<IMapPolygonObject>( aPoly, aURL, aAltText, aDesc, aTarget, "", bActive, false );
pUserData->ReplaceObject( pObj );
}
}
break;

View File

@ -797,7 +797,7 @@ void FormController::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) cons
OUString sFilterValue( condition->second );
OUString sErrorMsg, sCriteria;
const std::shared_ptr< OSQLParseNode > pParseNode =
const std::unique_ptr< OSQLParseNode > pParseNode =
predicateTree( sErrorMsg, sFilterValue, xFormatter, xField );
OSL_ENSURE( pParseNode != nullptr, "FormController::getFastPropertyValue: could not parse the field value predicate!" );
if ( pParseNode != nullptr )
@ -3112,7 +3112,7 @@ void FormController::setFilter(::std::vector<FmFieldInfo>& rFieldInfos)
{
OUString sPredicate,sErrorMsg;
rRefValue.Value >>= sPredicate;
std::shared_ptr< OSQLParseNode > pParseNode = predicateTree(sErrorMsg, sPredicate, xFormatter, xField);
std::unique_ptr< OSQLParseNode > pParseNode = predicateTree(sErrorMsg, sPredicate, xFormatter, xField);
if ( pParseNode != nullptr )
{
OUString sCriteria;

View File

@ -425,11 +425,11 @@ void NumberingTypeMgr::Init()
for(sal_Int32 i = 0; i < nLength; i++)
{
NumSettings_Impl* pNew = lcl_CreateNumberingSettingsPtr(pValuesArr[i]);
NumberSettings_Impl* pNumEntry = new NumberSettings_Impl;
std::shared_ptr<NumberSettings_Impl> pNumEntry = std::make_shared<NumberSettings_Impl>();
pNumEntry->pNumSetting = pNew;
if ( i < 8 )
pNumEntry->sDescription = SvxResId(RID_SVXSTR_SINGLENUM_DESCRIPTIONS[i]);
maNumberSettingsArr.push_back(std::shared_ptr<NumberSettings_Impl>(pNumEntry));
maNumberSettingsArr.push_back(pNumEntry);
}
}
catch(Exception&)

View File

@ -809,7 +809,7 @@ private:
css::uno::Reference<css::task::XStatusIndicator> const& m_xStatusIndicator;
css::uno::Reference<css::lang::XMultiServiceFactory> m_xModelFactory;
css::uno::Reference<css::document::XDocumentProperties> m_xDocumentProperties;
std::shared_ptr<SvStream> m_pInStream;
std::unique_ptr<SvStream> m_pInStream;
Stream* m_pMapperStream;
tools::SvRef<RTFSdrImport> m_pSdrImport;
tools::SvRef<RTFTokenizer> m_pTokenizer;

View File

@ -111,7 +111,7 @@ void EPUBExportTest::createDoc(const OUString& rFile,
xmlDocPtr EPUBExportTest::parseExport(const OUString& rName)
{
uno::Reference<io::XInputStream> xInputStream(mxZipFile->getByName(rName), uno::UNO_QUERY);
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
return parseXmlStream(pStream.get());
}
@ -120,7 +120,7 @@ std::map<OUString, std::vector<OUString>> EPUBExportTest::parseCss(const OUStrin
std::map<OUString, std::vector<OUString>> aRet;
uno::Reference<io::XInputStream> xInputStream(mxZipFile->getByName(rName), uno::UNO_QUERY);
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
// Minimal CSS handler till orcus is up to our needs.
OString aLine;
@ -797,7 +797,7 @@ CPPUNIT_TEST_FIXTURE(EPUBExportTest, testSVG)
CPPUNIT_ASSERT(mxZipFile->hasByName("OEBPS/images/image0001.svg"));
uno::Reference<io::XInputStream> xInputStream(
mxZipFile->getByName("OEBPS/images/image0001.svg"), uno::UNO_QUERY);
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
SvMemoryStream aMemoryStream;
aMemoryStream.WriteStream(*pStream);

View File

@ -31,6 +31,7 @@ namespace ucb = com::sun::star::ucb;
namespace uno = com::sun::star::uno;
using std::shared_ptr;
using std::unique_ptr;
using librevenge::RVNGInputStream;
using librevenge::RVNG_SEEK_CUR;
@ -303,7 +304,7 @@ void WPXSvStreamTest::testStructured()
// check for existing substream
CPPUNIT_ASSERT(pInput->existsSubStream("WordDocument"));
shared_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("WordDocument"));
unique_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("WordDocument"));
CPPUNIT_ASSERT(bool(pSubStream));
CPPUNIT_ASSERT(!pSubStream->isEnd());
@ -325,7 +326,7 @@ void WPXSvStreamTest::testStructured()
// check for existing substream
CPPUNIT_ASSERT(pInput->existsSubStream("content.xml"));
shared_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("content.xml"));
unique_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("content.xml"));
CPPUNIT_ASSERT(bool(pSubStream));
CPPUNIT_ASSERT(!pSubStream->isEnd());

View File

@ -97,8 +97,8 @@ KeynoteImportFilter::detect(css::uno::Sequence<css::beans::PropertyValue>& Descr
if (!xInputStream.is())
return OUString();
std::shared_ptr<librevenge::RVNGInputStream> input
= std::make_shared<WPXSvInputStream>(xInputStream);
std::unique_ptr<librevenge::RVNGInputStream> input
= std::make_unique<WPXSvInputStream>(xInputStream);
/* Apple Keynote documents come in two variants:
* * actual files (zip), only produced by Keynote 5 (at least with
@ -121,7 +121,7 @@ KeynoteImportFilter::detect(css::uno::Sequence<css::beans::PropertyValue>& Descr
{
if (aContent.isFolder())
{
input = std::make_shared<writerperfect::DirectoryStream>(xContent);
input = std::make_unique<writerperfect::DirectoryStream>(xContent);
bIsPackage = true;
}
}
@ -143,9 +143,10 @@ KeynoteImportFilter::detect(css::uno::Sequence<css::beans::PropertyValue>& Descr
if (bIsPackage) // we passed a directory stream, but the filter claims it's APXL file?
return OUString();
const std::shared_ptr<writerperfect::DirectoryStream> pDir
std::unique_ptr<writerperfect::DirectoryStream> xDir
= writerperfect::DirectoryStream::createForParent(xContent);
input = pDir;
auto pDir = xDir.get();
input = std::move(xDir);
if (bool(input))
{
if (libetonyek::EtonyekDocument::CONFIDENCE_EXCELLENT

View File

@ -224,19 +224,19 @@ struct ImpSdXMLExpTransObj2DMatrix : public ImpSdXMLExpTransObj2DBase
void SdXMLImExTransform2D::AddRotate(double fNew)
{
if(fNew != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DRotate>(fNew));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DRotate>(fNew));
}
void SdXMLImExTransform2D::AddTranslate(const ::basegfx::B2DTuple& rNew)
{
if(!rNew.equalZero())
maList.push_back(make_unique<ImpSdXMLExpTransObj2DTranslate>(rNew));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DTranslate>(rNew));
}
void SdXMLImExTransform2D::AddSkewX(double fNew)
{
if(fNew != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewX>(fNew));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DSkewX>(fNew));
}
// gen string for export
@ -376,7 +376,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DRotate>(fValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DRotate>(fValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -390,7 +390,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
aValue.setY(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getY()));
if(aValue.getX() != 1.0 || aValue.getY() != 1.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DScale>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DScale>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -404,7 +404,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
aValue.setY(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getY(), true));
if(!aValue.equalZero())
maList.push_back(make_unique<ImpSdXMLExpTransObj2DTranslate>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DTranslate>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -415,7 +415,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewX>(fValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DSkewX>(fValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -426,7 +426,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj2DSkewY>(fValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DSkewY>(fValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -462,7 +462,7 @@ void SdXMLImExTransform2D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndCommas(aStr, nPos, nLen);
if(!aValue.isIdentity())
maList.push_back(make_unique<ImpSdXMLExpTransObj2DMatrix>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj2DMatrix>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -604,7 +604,7 @@ struct ImpSdXMLExpTransObj3DMatrix : public ImpSdXMLExpTransObj3DBase
void SdXMLImExTransform3D::AddMatrix(const ::basegfx::B3DHomMatrix& rNew)
{
if(!rNew.isIdentity())
maList.push_back(make_unique<ImpSdXMLExpTransObj3DMatrix>(rNew));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DMatrix>(rNew));
}
void SdXMLImExTransform3D::AddHomogenMatrix(const drawing::HomogenMatrix& xHomMat)
@ -784,7 +784,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateX>(basegfx::deg2rad(fValue)));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DRotateX>(basegfx::deg2rad(fValue)));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -796,7 +796,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateY>(basegfx::deg2rad(fValue)));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DRotateY>(basegfx::deg2rad(fValue)));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -808,7 +808,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndOpeningBraces(aStr, nPos, nLen);
fValue = Imp_GetDoubleChar(aStr, nPos, nLen, rConv, fValue);
if(fValue != 0.0)
maList.push_back(make_unique<ImpSdXMLExpTransObj3DRotateZ>(basegfx::deg2rad(fValue)));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DRotateZ>(basegfx::deg2rad(fValue)));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -825,7 +825,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
aValue.setZ(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getZ()));
if(1.0 != aValue.getX() || 1.0 != aValue.getY() || 1.0 != aValue.getZ())
maList.push_back(make_unique<ImpSdXMLExpTransObj3DScale>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DScale>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -842,7 +842,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
aValue.setZ(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, aValue.getZ(), true));
if(!aValue.equalZero())
maList.push_back(make_unique<ImpSdXMLExpTransObj3DTranslate>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DTranslate>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}
@ -902,7 +902,7 @@ void SdXMLImExTransform3D::SetString(const OUString& rNew, const SvXMLUnitConver
Imp_SkipSpacesAndCommas(aStr, nPos, nLen);
if(!aValue.isIdentity())
maList.push_back(make_unique<ImpSdXMLExpTransObj3DMatrix>(aValue));
maList.push_back(std::make_shared<ImpSdXMLExpTransObj3DMatrix>(aValue));
Imp_SkipSpacesAndClosingBraces(aStr, nPos, nLen);
}

View File

@ -745,7 +745,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testXAdESNotype)
uno::Reference<io::XInputStream> xInputStream(
xMetaInf->openStreamElement("documentsignatures.xml", embed::ElementModes::READ),
uno::UNO_QUERY);
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
xmlDocPtr pXmlDoc = parseXmlStream(pStream.get());
// Without the accompanying fix in place, this test would have failed with "unexpected 'Type'
@ -805,7 +805,7 @@ CPPUNIT_TEST_FIXTURE(SigningTest, testXAdES)
uno::Reference<io::XInputStream> xInputStream(
xMetaInf->openStreamElement("documentsignatures.xml", embed::ElementModes::READ),
uno::UNO_QUERY);
std::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
std::unique_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
xmlDocPtr pXmlDoc = parseXmlStream(pStream.get());
// Assert that the digest algorithm is SHA-256 in the bAdESCompliant case, not SHA-1.