Avoid some unhelpful loplugin:makeshared
...like > canvas/source/directx/dx_impltools.cxx(137,31): error: rather use make_shared than constructing from 'Gdiplus::Graphics *' [loplugin:makeshared] > GraphicsSharedPtr pRet(Gdiplus::Graphics::FromImage(rBitmap.get())); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ on Windows, where those functions like FromImage are provided by Windows (so we can't help it that they are returning pointers) Change-Id: Iae5c4b20d64cc6b38ff66409519fbd25f6e509cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100095 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
@@ -132,6 +132,19 @@ bool MakeShared::VisitCXXConstructExpr(CXXConstructExpr const* constructExpr)
|
||||
return true;
|
||||
else if (isa<CXXNullPtrLiteralExpr>(arg0))
|
||||
return true;
|
||||
else if (auto const call = dyn_cast<CallExpr>(arg0))
|
||||
{
|
||||
if (auto const decl = call->getDirectCallee())
|
||||
{
|
||||
// Don't warn about cases where e.g. the Bitmap* result of calling Windows'
|
||||
// Bitmap::FromBITMAPINFO is wrapped in a shared_ptr:
|
||||
if (decl->getReturnType()->isPointerType()
|
||||
&& compiler.getSourceManager().isInSystemHeader(decl->getLocation()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringRef fn = getFilenameOfLocation(
|
||||
compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(constructExpr)));
|
||||
|
Reference in New Issue
Block a user