Skip to content

Avoid 'cast from type [...] to type [...] casts away qualifiers' situations and other cases

Toni Asensi Esteve requested to merge work/avoid_warnings into master

Avoid all the 'cast from type [...] to type [...] casts away qualifiers' situations. They were seen in DiskUsage, KrQuery, Splitter and Panel files when using the '-Wcast-qual' warning option. The warning messages were:

/home/user/krusader/krusader/DiskUsage/diskusage.cpp:378:69: warning: cast from type ‘const Directory*’ to type ‘Directory*’ casts away qualifiers [-Wcast-qual]
378 |             changeDirectory((Directory *)(currentDirectory->parent()));
    |                                                                     ^

/home/user/krusader/krusader/DiskUsage/diskusage.cpp:627:34: warning: cast from type ‘const Directory*’ to type ‘Directory*’ casts away qualifiers [-Wcast-qual]
627 |     ((Directory *)(file->parent()))->remove(file);
    |                                  ^

/home/user/krusader/krusader/DiskUsage/dulistview.cpp:202:75: warning: cast from type ‘const Directory*’ to type ‘Directory*’ casts away qualifiers [-Wcast-qual]
202 |             auto *upDir = (Directory *)diskUsage->getCurrentDir()->parent();
    |                                                                           ^

/home/user/krusader/krusader/DiskUsage/dulines.cpp:103:52: warning: cast from type ‘const QAbstractItemModel*’ to type ‘QAbstractItemModel*’ casts away qualifiers [-Wcast-qual]
103 |                 ((QAbstractItemModel *)index.model())->setData(index, QVariant(display + "  " + text), Qt::ToolTipRole);
    |                                                    ^

/home/user/krusader/krusader/DiskUsage/dulines.cpp:105:52: warning: cast from type ‘const QAbstractItemModel*’ to type ‘QAbstractItemModel*’ casts away qualifiers [-Wcast-qual]
105 |                 ((QAbstractItemModel *)index.model())->setData(index, QVariant(), Qt::ToolTipRole);
    |                                                    ^
    
/home/user/krusader/krusader/DiskUsage/dulines.cpp:392:75: warning: cast from type ‘const Directory*’ to type ‘Directory*’ casts away qualifiers [-Wcast-qual]
392 |             auto *upDir = (Directory *)diskUsage->getCurrentDir()->parent();
    |                                                                           ^
    
/home/user/krusader/krusader/DiskUsage/dufilelight.cpp:63:32: warning: cast from type ‘const File*’ to type ‘File*’ casts away qualifiers [-Wcast-qual]
63 |     return (File *)focus->file();
   |                                ^
    
/home/user/krusader/krusader/DiskUsage/dufilelight.cpp:74:40: warning: cast from type ‘const File*’ to type ‘File*’ casts away qualifiers [-Wcast-qual]
74 |             file = (File *)focus->file();
   |                                        ^
    
/home/user/krusader/krusader/DiskUsage/dufilelight.cpp:115:65: warning: cast from type ‘const File*’ to type ‘Directory*’ casts away qualifiers [-Wcast-qual]
115 |             diskUsage->changeDirectory((Directory *)focus->file());
    |                                                                 ^
    
/home/user/krusader/krusader/FileSystem/krquery.cpp:493:29: warning: cast from type ‘const KrQuery*’ to type ‘KrQuery*’ casts away qualifiers [-Wcast-qual]
493 |             emit((KrQuery *)this)->processEvents(stopped);
    |                             ^~~~
    
/home/user/krusader/krusader/FileSystem/krquery.cpp:517:25: warning: cast from type ‘const KrQuery*’ to type ‘KrQuery*’ casts away qualifiers [-Wcast-qual]
517 |         emit((KrQuery *)this)->processEvents(stopped);
    |                         ^~~~
    
/home/user/krusader/krusader/FileSystem/krquery.cpp:549:25: warning: cast from type ‘const KrQuery*’ to type ‘KrQuery*’ casts away qualifiers [-Wcast-qual]
549 |         emit((KrQuery *)this)->status(message);
    |                         ^~~~
    
/home/user/krusader/krusader/Splitter/splitter.cpp:97:56: warning: cast from type ‘const char*’ to type ‘unsigned char*’ casts away qualifiers [-Wcast-qual]
97 |     crcContext->update((unsigned char *)byteArray.data(), byteArray.size());
   |                                                        ^

/home/user/krusader/krusader/Splitter/combiner.cpp:236:56: warning: cast from type ‘const char*’ to type ‘unsigned char*’ casts away qualifiers [-Wcast-qual]
236 |     crcContext->update((unsigned char *)byteArray.data(), byteArray.size());
    |                                                        ^

/home/user/krusader/krusader/Panel/krpreviews.cpp:99:46: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
99 |         active = KrView::getIcon((FileItem *)file, true, _view->fileIconSize());
   |                                              ^~~~
    
/home/user/krusader/krusader/Panel/krpreviews.cpp:101:52: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
101 |             inactive = KrView::getIcon((FileItem *)file, false, _view->fileIconSize());
    |                                                    ^~~~
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:52:47: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
52 |     auto* file1 = (FileItem *)i1->getFileItem();
   |                                               ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:54:47: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
54 |     auto* file2 = (FileItem *)i2->getFileItem();
   |                                               ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:151:55: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
151 |     auto* fileItem = (FileItem *)current->getFileItem();
    |                                                       ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:160:55: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
160 |     auto* fileItem = (FileItem *)current->getFileItem();
    |                                                       ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:207:52: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
207 |     auto* fileitem = (FileItem *)item->getFileItem();
    |                                                    ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:246:52: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
246 |     auto* fileitem = (FileItem *)item->getFileItem();
    |                                                    ^
    
/home/user/krusader/krusader/Panel/PanelView/krinterview.cpp:304:52: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
304 |     auto file_item = (FileItem *)item->getFileItem();
    |                                                    ^
    
/home/user/krusader/krusader/Panel/PanelView/listmodel.cpp:400:39: warning: cast from type ‘const FileItem*’ to type ‘FileItem*’ casts away qualifiers [-Wcast-qual]
400 |     return _fileItemNdx[ (FileItem *) fileitem ];
    |                                       ^~~~~~~~

Avoid all the 'warning: extra ‘;’' cases that were seen when using the '-Wpedantic' warning option, like:

/home/user/krusader/krusader/Splitter/splittergui.cpp:62:2: warning: extra ‘;’ [-Wpedantic]
62 | };
   |  ^

Avoid a 'named variadic macro' case that was seen when using the '-Wpedantic' warning option (which includes '-Wvariadic-macros'):

/home/user/krusader/krArc/../krusader/krdebuglogger.h:44:18: warning: ISO C++ does not permit named variadic macros [-Wvariadic-macros]
44 | #define KRDEBUG(X...) do{   \
   |                  ^~~

Avoid a 'does not throw' case that was seen when using the '-Wnoexcept' warning option:

/home/user/krusader/krusader/icon.cpp:222:6: warning: but ‘uint qHash(const IconCacheKey&)’ does not throw; perhaps it should be declared ‘noexcept’ [-Wnoexcept]
222 | uint qHash(const IconCacheKey &key)
    |      ^~~~~        

Avoid 'zero as null pointer constant' cases that were seen when using the '-Wzero-as-null-pointer-constant' warning option. For example, the last three were:

/home/user/krusader/krusader/Synchronizer/synchronizerfileitem.h:90:24: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
90 |             m_userData(0), m_overWrite(false), m_destination(QString()),
   |                        ^

/home/user/krusader/krusader/DiskUsage/filelightParts/fileTree.h:98:22: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
98 |         link->data = 0;
   |                      ^

/home/user/krusader/krusader/DiskUsage/filelightParts/fileTree.h:32:43: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
32 |     Link() : prev(this), next(this), data(0) {}
   |                                           ^

Merge request reports