Pass DocumentClassConstPtr arguments by const reference

This arguments are shared_ptr objects, so they are not expensive to
copy. However, it makes sense to pass such pointers by const reference
when they are just intended for reading.

Some reading about this issue is here:
https://www.internalpointers.com/post/move-smart-pointers-and-out-functions-modern-c

Fixes some Coverity scan defects.
This commit is contained in:
Jean-Marc Lasgouttes 2024-09-13 14:16:21 +02:00
parent 3649cea9e5
commit 58ee4c9ec7
6 changed files with 13 additions and 13 deletions

View File

@ -2752,7 +2752,7 @@ DocumentClassConstPtr BufferParams::documentClassPtr() const
}
void BufferParams::setDocumentClass(DocumentClassConstPtr tc)
void BufferParams::setDocumentClass(DocumentClassConstPtr const & tc)
{
// evil, but this function is evil
doc_class_ = const_pointer_cast<DocumentClass>(tc);

View File

@ -165,7 +165,7 @@ public:
/// This bypasses the baseClass and sets the textClass directly.
/// Should be called with care and would be better not being here,
/// but it seems to be needed by CutAndPaste::putClipboard().
void setDocumentClass(DocumentClassConstPtr);
void setDocumentClass(DocumentClassConstPtr const &);
/// List of modules in use
LayoutModuleList const & getModules() const { return layout_modules_; }
/// List of default modules the user has removed

View File

@ -1162,7 +1162,7 @@ void BufferView::makeDocumentClass()
}
void BufferView::updateDocumentClass(DocumentClassConstPtr olddc)
void BufferView::updateDocumentClass(DocumentClassConstPtr const & olddc)
{
StableDocIterator backcur(d->cursor_);
ErrorList & el = buffer_.errorList("Class Switch");

View File

@ -456,7 +456,7 @@ private:
void updateHoveredInset() const;
///
void updateDocumentClass(DocumentClassConstPtr olddc);
void updateDocumentClass(DocumentClassConstPtr const & olddc);
///
int width_;
///

View File

@ -600,7 +600,7 @@ PitPosPair eraseSelectionHelper(BufferParams const & params,
}
Buffer * copyToTempBuffer(ParagraphList const & paragraphs, DocumentClassConstPtr docclass)
Buffer * copyToTempBuffer(ParagraphList const & paragraphs, DocumentClassConstPtr const & docclass)
{
// This used to need to be static to avoid a memory leak. It no longer needs
// to be so, but the alternative is to construct a new one of these (with a
@ -828,15 +828,15 @@ bool multipleCellsSelected(CursorData const & cur)
}
void switchBetweenClasses(DocumentClassConstPtr oldone,
DocumentClassConstPtr newone, InsetText & in) {
void switchBetweenClasses(DocumentClassConstPtr const & oldone,
DocumentClassConstPtr const & newone, InsetText & in) {
ErrorList el = {};
switchBetweenClasses(oldone, newone, in, el);
}
void switchBetweenClasses(DocumentClassConstPtr oldone,
DocumentClassConstPtr newone, InsetText & in, ErrorList & errorlist)
void switchBetweenClasses(DocumentClassConstPtr const & oldone,
DocumentClassConstPtr const & newone, InsetText & in, ErrorList & errorlist)
{
errorlist.clear();

View File

@ -138,11 +138,11 @@ void pasteParagraphList(Cursor & cur, ParagraphList const & parlist,
* It changes layouts and character styles. Errors are reported
* in the passed ErrorList.
*/
void switchBetweenClasses(DocumentClassConstPtr oldone,
DocumentClassConstPtr newone, InsetText & in, ErrorList & el);
void switchBetweenClasses(DocumentClassConstPtr const & oldone,
DocumentClassConstPtr const & newone, InsetText & in, ErrorList & el);
/// Same but without error reporting.
void switchBetweenClasses(DocumentClassConstPtr oldone,
DocumentClassConstPtr newone, InsetText & in);
void switchBetweenClasses(DocumentClassConstPtr const & oldone,
DocumentClassConstPtr const & newone, InsetText & in);
/// Get the current selection as a string. Does not change the selection.
/// Does only work if the whole selection is in mathed.