On 10/7/20 10:31 AM, Yuriy Skalko wrote:
> And the last patch based on the static analyzers output.

diff --git a/src/Author.cpp b/src/Author.cpp
index 9a2dc1ea43..b4cf9fd97b 100644
--- a/src/Author.cpp
+++ b/src/Author.cpp
@@ -31,8 +31,8 @@ static int computeHash(docstring const & name,
        string const full_author_string = to_utf8(name + email);
        // Bernstein's hash function
        unsigned int hash = 5381;
-       for (unsigned int i = 0; i < full_author_string.length(); ++i)
-               hash = ((hash << 5) + hash) + (unsigned 
int)(full_author_string[i]);
+       for (char c : full_author_string)

It shouldn't matter much here, but this can presumably be const &.
There are other cases where it does matter, though, and I think
we will see other warnings about this. So I'd fix them all while
we're at it. I won't mark the other char and char_type ones.



diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp
index 3d67128f58..f9261fd4a3 100644
--- a/src/LaTeXFeatures.cpp
+++ b/src/LaTeXFeatures.cpp
@@ -1258,9 +1258,9 @@ string const LaTeXFeatures::getPackages() const
 
        //  These are all the 'simple' includes.  i.e
        //  packages which we just \usepackage{package}
-       for (int i = 0; i < nb_simplefeatures; ++i) {
-               if (mustProvide(simplefeatures[i]))
-                       packages << "\\usepackage{" << simplefeatures[i] << 
"}\n";
+       for (auto & feature : simplefeatures) {

This is a case where it definitely should be const &.

+       for (auto & feature : bibliofeatures) {

Same.

+               for (auto & change : changes) {

Another.

I think you can just search for "auto &" to find the rest.

diff --git a/src/frontends/qt/Dialog.cpp b/src/frontends/qt/Dialog.cpp
index a646a898f5..b09163b25a 100644
--- a/src/frontends/qt/Dialog.cpp
+++ b/src/frontends/qt/Dialog.cpp
@@ -49,10 +49,6 @@ Dialog::Dialog(GuiView & lv, QString const & name, QString 
const & title)
 {}
 
diff --git a/src/frontends/qt/GuiCitation.cpp b/src/frontends/qt/GuiCitation.cpp
index 16b958b4be..a4853ff9e8 100644
--- a/src/frontends/qt/GuiCitation.cpp
+++ b/src/frontends/qt/GuiCitation.cpp
@@ -706,8 +706,7 @@ void GuiCitation::setPreTexts(vector<docstring> const & m)
                        selected_model_.match(selected_model_.index(0, 1),
                                             Qt::DisplayRole, toqstr(key), -1,
                                             Qt::MatchFlags(Qt::MatchExactly | 
Qt::MatchWrap));
-               for (int i = 0; i < qmil.size(); ++i){
-                       QModelIndex idx = qmil[i];
+               for (auto idx : qmil) {

Probably const & again.


@@ -745,8 +744,7 @@ void GuiCitation::setPostTexts(vector<docstring> const & m)
                        selected_model_.match(selected_model_.index(0, 1),
                                             Qt::DisplayRole, toqstr(key), -1,
                                             Qt::MatchFlags(Qt::MatchExactly | 
Qt::MatchWrap));
-               for (int i = 0; i < qmil.size(); ++i){
-                       QModelIndex idx = qmil[i];
+               for (auto idx : qmil) {

Here too.

diff --git a/src/frontends/qt/GuiLyXFiles.cpp b/src/frontends/qt/GuiLyXFiles.cpp
index 8269c4d218..f723158141 100644
--- a/src/frontends/qt/GuiLyXFiles.cpp
+++ b/src/frontends/qt/GuiLyXFiles.cpp
@@ -463,10 +463,10 @@ void GuiLyXFiles::updateContents()
                        QTreeWidgetItem * subcatItem = nullptr;
                        if (cats.contains(catsave)) {
                                QList<QTreeWidgetItem *> pcats = 
filesLW->findItems(cat, Qt::MatchExactly);
-                               for (int iit = 0; iit < pcats.size(); ++iit) {
-                                       for (int cit = 0; cit < 
pcats.at(iit)->childCount(); ++cit) {
-                                               if 
(pcats.at(iit)->child(cit)->text(0) == subcat) {
-                                                       subcatItem = 
pcats.at(iit)->child(cit);
+                               for (auto pcat : pcats) {

Again const &.


@@ -3039,9 +3039,9 @@ QTreeWidgetItem * 
PrefShortcuts::insertShortcutItem(FuncRequest const & lfun,
        if (tag == KeyMap::UserUnbind) {
                QList<QTreeWidgetItem*> const items = 
shortcutsTW->findItems(lfun_name,
                        Qt::MatchFlags(Qt::MatchExactly | Qt::MatchRecursive), 
0);
-               for (int i = 0; i < items.size(); ++i) {
-                       if (items[i]->text(1) == shortcut) {
-                               newItem = items[i];
+               for (auto item : items) {

Another.


@@ -3128,8 +3128,7 @@ void PrefShortcuts::unhideEmpty(QString const & lfun, 
bool select)
        // list of items that match lfun
        QList<QTreeWidgetItem*> items = shortcutsTW->findItems(lfun,
             Qt::MatchFlags(Qt::MatchExactly | Qt::MatchRecursive), 0);
-       for (int i = 0; i < items.size(); ++i) {
-               QTreeWidgetItem * item = items[i];
+       for (auto item : items) {

Another.

@@ -3145,24 +3144,24 @@ void PrefShortcuts::removeShortcut()
        // it seems that only one item can be selected, but I am
        // removing all selected items anyway.
        QList<QTreeWidgetItem*> items = shortcutsTW->selectedItems();
-       for (int i = 0; i < items.size(); ++i) {
-               string shortcut = fromqstr(items[i]->data(1, 
Qt::UserRole).toString());
-               string lfun = fromqstr(items[i]->text(0));
+       for (auto & item : items) {

Not this one! Few more like that follow.


diff --git a/src/frontends/qt/GuiToolbar.cpp b/src/frontends/qt/GuiToolbar.cpp
index 5c8c603daf..cb6c057c47 100644
--- a/src/frontends/qt/GuiToolbar.cpp
+++ b/src/frontends/qt/GuiToolbar.cpp
@@ -276,8 +276,8 @@ void StaticMenuButton::updateTriggered()
 
        bool enabled = false;
        QList<QAction *> acts = menu()->actions();
-       for (int i = 0; i < acts.size(); ++i)
-               if (acts[i]->isEnabled()) {
+       for (auto & act : acts)

const &.


@@ -561,8 +561,8 @@ void GuiToolbar::update(int context)
 
        // This is a speed bottleneck because this is called on every keypress
        // and update calls getStatus, which copies the cursor at least two 
times
-       for (int i = 0; i < actions_.size(); ++i)
-               actions_[i]->update();
+       for (auto & action : actions_)

Probably also.


diff --git a/src/frontends/qt/InsetParamsDialog.cpp 
b/src/frontends/qt/InsetParamsDialog.cpp
index 1abed922f9..7899ceee8f 100644
--- a/src/frontends/qt/InsetParamsDialog.cpp
+++ b/src/frontends/qt/InsetParamsDialog.cpp
@@ -204,9 +204,9 @@ docstring InsetParamsDialog::checkWidgets(bool immediate)
        immediateApplyCB->setEnabled(ins && !read_only);
        // This seems to be the only way to access custom buttons
        QList<QAbstractButton*> buttons = buttonBox->buttons();
-       for (int i = 0; i < buttons.size(); ++i) {
-               if (buttonBox->buttonRole(buttons.at(i)) == 
QDialogButtonBox::ActionRole)
-                       buttons.at(i)->setEnabled(widget_ok && !read_only
+       for (auto button : buttons) {

Can't hurt to be &, though since it's a pointer...


@@ -995,8 +995,8 @@ bool InsetMathHull::ams() const
        case hullEqnArray:
                break;
        }
-       for (size_t row = 0; row < numbered_.size(); ++row)
-               if (numbered_[row] == NOTAG)
+       for (auto row : numbered_)

const &.


index 8c47b7a441..2f9bb15832 100644
--- a/src/support/qstring_helpers.cpp
+++ b/src/support/qstring_helpers.cpp
@@ -72,8 +72,7 @@ std::string fromqstr(QString const & str)
 QString charFilterRegExp(QString const & filter)
 {
        QString re = ".*";
-       for (int i = 0; i < filter.length(); ++i) {
-               QChar c = filter[i];
+       for (QChar c : filter) {

const &, I think.


@@ -85,8 +84,7 @@ QString charFilterRegExp(QString const & filter)
 QString charFilterRegExpC(QString const & filter)
 {
        QString re = "(";
-       for (int i = 0; i < filter.length(); ++i) {
-               QChar c = filter[i];
+       for (QChar c : filter) {

And here.


diff --git a/src/tex2lyx/table.cpp b/src/tex2lyx/table.cpp
index bd7225db0f..a790582066 100644
--- a/src/tex2lyx/table.cpp
+++ b/src/tex2lyx/table.cpp
@@ -589,8 +589,8 @@ void fix_colalign(vector<ColInfo> & colinfo)
        }
        // Move the lines and alignment settings to the special field if
        // necessary
-       for (size_t col = 0; col < colinfo.size(); ++col)
-               fix_colalign(colinfo[col]);
+       for (auto & col : colinfo)

This one is fine.

 
@@ -921,16 +921,16 @@ void parse_table(Parser & p, ostream & os, bool 
is_long_tabular,
 void handle_hline_above(RowInfo & ri, vector<CellInfo> & ci)
 {
        ri.topline = true;
-       for (size_t col = 0; col < ci.size(); ++col)
-               ci[col].topline = true;
+       for (auto & col : ci)

Here too.


 void handle_hline_below(RowInfo & ri, vector<CellInfo> & ci)
 {
        ri.bottomline = true;
-       for (size_t col = 0; col < ci.size(); ++col)
-               ci[col].bottomline = true;
+       for (auto & col : ci)

And here.
 
 
@@ -1516,8 +1516,8 @@ void handle_tabular(Parser & p, ostream & os, string 
const & name,
        //cerr << "// output what we have\n";
        // output what we have
        size_type cols = colinfo.size();
-       for (size_t col = 0; col < colinfo.size(); ++col) {
-               if (colinfo[col].decimal_point != '\0' && colinfo[col].align != 
'd')
+       for (auto & col : colinfo) {

And here.


@@ -1545,18 +1545,18 @@ void handle_tabular(Parser & p, ostream & os, string 
const & name,
        os << write_attribute("tabularwidth", tabularwidth) << ">\n";
 
        //cerr << "// after header\n";
-       for (size_t col = 0; col < colinfo.size(); ++col) {
-               if (colinfo[col].decimal_point != '\0' && colinfo[col].align != 
'd')
+       for (auto & col : colinfo) {

I think this one can be const.



-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to