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:
parent
6cb9b06432
commit
ed8152b1ed
@ -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 );
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 );
|
||||
|
||||
|
@ -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
|
||||
|
@ -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: */
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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(
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
{
|
||||
}
|
||||
|
@ -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 (
|
||||
|
@ -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);
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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&)
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user