Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warnings under unices #8

Open
plzombie opened this issue Oct 16, 2023 · 24 comments
Open

Warnings under unices #8

plzombie opened this issue Oct 16, 2023 · 24 comments
Assignees
Labels
dispute Debate progress Some progress has been made.

Comments

@plzombie
Copy link
Contributor

@zvezdochiot решил отдельно завести для варнингов под юниксы тикет, чтобы не загромождать под винду
Вот debian12 x64 с -D CMAKE_BUILD_TYPE=Release, boost я в список не включал. Завтра попробую эту войну и мир разгрести. Начну с -Wreorder, потому что это самое тривиальное, и там их куча, больше половины наверное

[ 10%] Building CXX object src/CMakeFiles/stcore.dir/CommandLine.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.cpp:32:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 14%] Building CXX object src/CMakeFiles/stcore.dir/DebugImagesImpl.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/DebugImagesImpl.cpp:23:
/home/misha/Projects/scantailor-experimental/src/foundation/ObjectSwapperImplGrid.h: In instantiation of ‘boost::shared_ptr<Grid<Node> > ObjectSwapperImpl<Grid<Node> >::swapIn() [with Node = VecNT<2, float>]’:
/home/misha/Projects/scantailor-experimental/src/foundation/ObjectSwapper.h:67:58:   required from ‘void ObjectSwapper<Obj>::swapIn() [with Obj = Grid<VecNT<2, float> >]’
/home/misha/Projects/scantailor-experimental/src/DebugImagesImpl.cpp:123:72:   required from here
/home/misha/Projects/scantailor-experimental/src/foundation/ObjectSwapperImplGrid.h:77:21: warning: comparison of integer expressions of different signedness: ‘qint64’ {aka ‘long long int’} and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]
   77 |     if (file.size() != bytes)
      |         ~~~~~~~~~~~~^~~~~~~~
[ 18%] Building CXX object src/CMakeFiles/stcore.dir/ProjectReader.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/ProjectPages.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/ProjectReader.cpp:20:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘ProjectReader::~ProjectReader()’ at /home/misha/Projects/scantailor-experimental/src/ProjectReader.cpp:85:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[29].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘void IntrusivePtr<T>::reset(T*) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:175:5,
    inlined from ‘void ProjectReader::processImages(const QDomElement&, Qt::LayoutDirection)’ at /home/misha/Projects/scantailor-experimental/src/ProjectReader.cpp:256:25:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[29].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
[ 22%] Building CXX object src/filters/output/CMakeFiles/output.dir/output_autogen/mocs_compilation.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/OnDemandPictureZoneEditor.h:24,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/moc_OnDemandPictureZoneEditor.cpp:10,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/mocs_compilation.cpp:5:
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/build/src/filters/output/output_autogen/EWIEGA46WW/../../../../../../src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 23%] Building CXX object src/filters/output/CMakeFiles/output.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OptionsWidget.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Filter.cpp:21:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Filter.cpp:24:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 23%] Building CXX object src/filters/output/CMakeFiles/output.dir/OptionsWidget.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OptionsWidget.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OptionsWidget.cpp:30:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OptionsWidget.cpp:32:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 23%] Building CXX object src/filters/output/CMakeFiles/output.dir/Task.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OptionsWidget.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Task.cpp:33:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/Task.cpp:34:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 24%] Building CXX object src/filters/output/CMakeFiles/output.dir/CacheDrivenTask.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputGenerator.h:35,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/CacheDrivenTask.cpp:20:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 24%] Building CXX object src/filters/output/CMakeFiles/output.dir/OutputGenerator.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputGenerator.h:35,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputGenerator.cpp:43:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 24%] Building CXX object src/filters/output/CMakeFiles/output.dir/Settings.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.cpp:23:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 25%] Building CXX object src/filters/output/CMakeFiles/output.dir/Params.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Params.cpp:23:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 25%] Building CXX object src/filters/output/CMakeFiles/output.dir/ColorGrayscaleOptions.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.cpp:19:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 25%] Building CXX object src/filters/output/CMakeFiles/output.dir/RenderParams.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/RenderParams.cpp:20:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 26%] Building CXX object src/filters/output/CMakeFiles/output.dir/ColorParams.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.cpp:19:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 26%] Building CXX object src/filters/output/CMakeFiles/output.dir/OutputImageParams.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.cpp:24:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 28%] Building CXX object src/filters/output/CMakeFiles/output.dir/PictureZoneEditor.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/PictureZoneEditor.cpp:27:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 28%] Building CXX object src/filters/output/CMakeFiles/output.dir/OnDemandPictureZoneEditor.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OnDemandPictureZoneEditor.h:24,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OnDemandPictureZoneEditor.cpp:19:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 29%] Building CXX object src/filters/output/CMakeFiles/output.dir/FillZoneEditor.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/FillZoneEditor.cpp:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 30%] Building CXX object src/filters/output/CMakeFiles/output.dir/DespeckleLevel.cpp.o
/home/misha/Projects/scantailor-experimental/src/filters/output/DespeckleLevel.cpp: In function ‘double output::despeckleLevelToFactor(DespeckleLevel)’:
/home/misha/Projects/scantailor-experimental/src/filters/output/DespeckleLevel.cpp:27:12: warning: enumeration value ‘DESPECKLE_CUSTOM’ not handled in switch [-Wswitch]
   27 |     switch (level)
      |            ^
[ 52%] Building CXX object src/dewarping/CMakeFiles/dewarping.dir/TextLineTracer.cpp.o
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp: In static member function ‘static Grid<VecNT<2, float> > dewarping::TextLineTracer::calcGradient(const imageproc::GrayImage&, DebugImages*)’:
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp:309:21: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
  309 |     return std::move(grad);
      |            ~~~~~~~~~^~~~~~
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp:309:21: note: remove ‘std::move’ call
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp: In static member function ‘static Grid<float> dewarping::TextLineTracer::calcDirectionalDerivative(const Grid<VecNT<2, float> >&, const Grid<VecNT<2, float> >&)’:
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp:341:21: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
  341 |     return std::move(dir_deriv);
      |            ~~~~~~~~~^~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineTracer.cpp:341:21: note: remove ‘std::move’ call
[ 52%] Building CXX object src/dewarping/CMakeFiles/dewarping.dir/TextLineSegmenter.cpp.o
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp: In static member function ‘static dewarping::TextLineSegmenter::Result dewarping::TextLineSegmenter::process(const imageproc::AffineTransformedImage&, const std::shared_ptr<AcceleratableOperations>&, const TaskStatus&, DebugImages*)’:
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp:169:21: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
  169 |     return std::move(result);
      |            ~~~~~~~~~^~~~~~~~
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp:169:21: note: remove ‘std::move’ call
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp: In static member function ‘static dewarping::TextLineSegmenter::Result dewarping::TextLineSegmenter::processDownscaled(const imageproc::GrayImage&, const QPolygonF&, const std::shared_ptr<AcceleratableOperations>&, const TaskStatus&, DebugImages*)’:
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp:356:21: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
  356 |     return std::move(result);
      |            ~~~~~~~~~^~~~~~~~
/home/misha/Projects/scantailor-experimental/src/dewarping/TextLineSegmenter.cpp:356:21: note: remove ‘std::move’ call
[ 60%] Building CXX object src/zones/CMakeFiles/zones.dir/ZoneCreationInteraction.cpp.o
SIn file included from /home/misha/Projects/scantailor-experimental/src/zones/ZoneCreationInteraction.cpp:19:
/home/misha/Projects/scantailor-experimental/src/zones/ZoneCreationInteraction.h: In constructor ‘ZoneCreationInteraction::ZoneCreationInteraction(ZoneInteractionContext&, InteractionState&)’:
/home/misha/Projects/scantailor-experimental/src/zones/ZoneCreationInteraction.h:86:10: warning: ‘ZoneCreationInteraction::m_rectangularZoneType’ will be initialized after [-Wreorder]
   86 |     bool m_rectangularZoneType;
      |          ^~~~~~~~~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/zones/ZoneCreationInteraction.h:65:17: warning:   ‘DragHandler ZoneCreationInteraction::m_dragHandler’ [-Wreorder]
   65 |     DragHandler m_dragHandler;
      |                 ^~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/zones/ZoneCreationInteraction.cpp:34:1: warning:   when initialized here [-Wreorder]
   34 | ZoneCreationInteraction::ZoneCreationInteraction(
      | ^~~~~~~~~~~~~~~~~~~~~~~
[ 63%] Building CXX object src/filters/fix_orientation/CMakeFiles/fix_orientation.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/fix_orientation/Filter.cpp:39:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 65%] Building CXX object src/filters/page_split/CMakeFiles/page_split.dir/ImageView.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/interaction/InteractionHandler.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/ImageViewBase.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_split/ImageView.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_split/ImageView.cpp:19:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘page_split::ImageView::ImageView(const std::shared_ptr<AcceleratableOperations>&, const imageproc::AffineTransformedImage&, const ImagePixmapUnion&, const page_split::PageLayout&, const IntrusivePtr<ProjectPages>&, const ImageId&, bool, bool)’ at /home/misha/Projects/scantailor-experimental/src/filters/page_split/ImageView.cpp:81:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[151].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘page_split::ImageView::~ImageView()’ at /home/misha/Projects/scantailor-experimental/src/filters/page_split/ImageView.cpp:85:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[151].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
[ 67%] Building CXX object src/filters/page_split/CMakeFiles/page_split.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_split/Filter.cpp:39:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 67%] Building CXX object src/filters/page_split/CMakeFiles/page_split.dir/OptionsWidget.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/PageSelectionProvider.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/PageSelectionAccessor.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_split/OptionsWidget.h:31,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_split/OptionsWidget.cpp:19:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘page_split::OptionsWidget::~OptionsWidget()’ at /home/misha/Projects/scantailor-experimental/src/filters/page_split/OptionsWidget.cpp:77:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[29].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
[ 71%] Building CXX object src/filters/deskew/CMakeFiles/deskew.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/deskew/Filter.cpp:35:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 71%] Building CXX object src/filters/deskew/CMakeFiles/deskew.dir/Task.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/deskew/Task.cpp:70:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 75%] Building CXX object src/filters/select_content/CMakeFiles/select_content.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/select_content/Filter.cpp:36:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 75%] Building CXX object src/filters/select_content/CMakeFiles/select_content.dir/ContentBoxFinder.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/select_content/ContentBoxFinder.cpp:62:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 80%] Building CXX object src/filters/page_layout/CMakeFiles/page_layout.dir/Filter.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_layout/Filter.cpp:44:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 80%] Building CXX object src/filters/page_layout/CMakeFiles/page_layout.dir/Task.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/filters/page_layout/Task.cpp:41:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 84%] Building CXX object src/CMakeFiles/scantailor-experimental.dir/scantailor-experimental_autogen/mocs_compilation.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/EWIEGA46WW/../../../../src/AbstractCommand.h:22,
                 from /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/EWIEGA46WW/../../../../src/FilterUiInterface.h:23,
                 from /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/EWIEGA46WW/../../../../src/MainWindow.h:70,
                 from /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/EWIEGA46WW/moc_MainWindow.cpp:10,
                 from /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/mocs_compilation.cpp:3:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘OutOfMemoryDialog::~OutOfMemoryDialog()’ at /home/misha/Projects/scantailor-experimental/build/src/scantailor-experimental_autogen/EWIEGA46WW/../../../../src/OutOfMemoryDialog.h:31:7:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[49].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
[ 87%] Building CXX object src/CMakeFiles/scantailor-experimental.dir/OutOfMemoryDialog.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/FileNameDisambiguator.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/OutputFileNameGenerator.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/OutOfMemoryDialog.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/OutOfMemoryDialog.cpp:19:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘IntrusivePtr<T>& IntrusivePtr<T>::operator=(const IntrusivePtr<T>&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:158:5,
    inlined from ‘void OutOfMemoryDialog::setParams(const QString&, const IntrusivePtr<StageSequence>&, const IntrusivePtr<ProjectPages>&, const SelectedPage&, const OutputFileNameGenerator&)’ at /home/misha/Projects/scantailor-experimental/src/OutOfMemoryDialog.cpp:55:18:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this)[49].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
[ 89%] Building CXX object src/CMakeFiles/scantailor-experimental.dir/main.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/main.cpp:37:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
[ 90%] Building CXX object src/CMakeFiles/scantailor-experimental-cli.dir/ConsoleBatch.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/ConsoleBatch.cpp:65:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputImageParams.h:25,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/OutputParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/filters/output/Settings.h:29:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h: In member function ‘const output::ColorParams::ColorMode& output::Params::colorMode() const’:
/home/misha/Projects/scantailor-experimental/src/filters/output/Params.h:58:39: warning: returning reference to temporary [-Wreturn-local-addr]
   58 |         return m_colorParams.colorMode();
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~
[ 90%] Building CXX object src/CMakeFiles/scantailor-experimental-cli.dir/main-cli.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/filters/output/ColorParams.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/CommandLine.h:30,
                 from /home/misha/Projects/scantailor-experimental/src/main-cli.cpp:25:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h: In constructor ‘output::ColorGrayscaleOptions::ColorGrayscaleOptions()’:
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:169:10: warning: ‘output::ColorGrayscaleOptions::m_whiteMargins’ will be initialized after [-Wreorder]
  169 |     bool m_whiteMargins;
      |          ^~~~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:158:12: warning:   ‘double output::ColorGrayscaleOptions::m_wienerCoef’ [-Wreorder]
  158 |     double m_wienerCoef;
      |            ^~~~~~~~~~~~
/home/misha/Projects/scantailor-experimental/src/filters/output/ColorGrayscaleOptions.h:32:5: warning:   when initialized here [-Wreorder]
   32 |     ColorGrayscaleOptions()
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/misha/Projects/scantailor-experimental/src/AbstractCommand.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/BackgroundTask.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/ConsoleBatch.h:28,
                 from /home/misha/Projects/scantailor-experimental/src/main-cli.cpp:26:
In destructor ‘virtual RefCountable::~RefCountable()’,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from ‘void RefCountable::unref() const’ at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from ‘void intrusive_unref(T&) [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from ‘IntrusivePtr<T>::~IntrusivePtr() [with T = ProjectPages]’ at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from ‘ConsoleBatch::~ConsoleBatch()’ at /home/misha/Projects/scantailor-experimental/src/ConsoleBatch.h:44:7,
    inlined from ‘std::auto_ptr< <template-parameter-1-1> >::~auto_ptr() [with _Tp = ConsoleBatch]’ at /usr/include/c++/12/backward/auto_ptr.h:172:21:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: warning: ‘void operator delete(void*, std::size_t)’ called on pointer ‘((IntrusivePtr<ProjectPages>*)this_3(D)->_M_ptr)[3].IntrusivePtr<ProjectPages>::m_pObj’ with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^

@plzombie plzombie added the dispute Debate label Oct 16, 2023
@zvezdochiot
Copy link
Member

Hi @plzombie .

"Красивый" списочек. И частично к этому списку я руку приложил. Значительная часть сидит в src/filters/output.

@zvezdochiot zvezdochiot self-assigned this Oct 16, 2023
@plzombie
Copy link
Contributor Author

@zvezdochiot Ладно. В альт-линуксе там списочек, кстати, выглядит не таким ужасающим. Это в debian настройки по умолчанию какие-то уж слишком жёсткие.
изображение
Можно в росреестр подавать заявку на совместимость с отечественной ОС🤣

@zvezdochiot
Copy link
Member

zvezdochiot commented Oct 16, 2023

@plzombie , что то эта "отечественная ОС" попахивает чем то средним между яндексом и РосНаном. Т.е. даже ежели она "отечественная", то непонятно о каком отечестве идёт речь.

PS: У таких старпёров, как я, слово отечественная всегда асоциируется с народом русским. В данном же случае ассоциация обратная.

@noobie-iv
Copy link
Member

Начну с -Wreorder

Типовое вроде сообщение. В h-файле члены определены в одном порядке, а в cpp в списке инициализации конструктора - в другом. Visual Studio под виндой тоже на такое ругается. А если включить максимальный уровень предупреждений, там еще и не такая портяка вылазит.

У таких старпёров, как я, слово отечественная всегда асоциируется с народом русским.

Просто в русской традиции букву "ё" печатать как "е" для экономии чернил. На мониторе же для экономии энергии точки лучше, наоборот, включать, и писать полностью - "отёчественная". 🤣

@plzombie
Copy link
Contributor Author

@zvezdochiot @noobie-iv Да ладно вам. Это, наверное, действительно исконно русский, "НАШ", дистрибутив. Разрабатывает ООО "Базальт СПО", а не какой-то там кипрский офшор. Он от Red Hat откололся больше двадцати лет назад. Там уже и скрипты свои есть, и пакеты, и много чего модифицировано. Да и интерфейс мне честно нравится (не вот этот вот модный Gnome3/4), равно как и стабильная работа под виртуалкой

Я вас, кстати, поздравляю. Пакет с x86 версией Scantailor приняли в WinGet. Надо только доработать установщик, чтобы правильную версию и идентификатор отдавал
изображение

@plzombie
Copy link
Contributor Author

@zvezdochiot @noobie-iv можете мне подсказать, как вы сейчас в линуксе вообще авторизуетесь в git? Под виндой есть git credential manager, который поддерживает двухфакторную авторизацию. А тут - пароль приложения создавать?

@plzombie
Copy link
Contributor Author

Нашёл вот
изображение
Надо индивидуальный пароль создать. Главное вот этот Token(Classic) ещё ничего. Но в новом Fine Graned, на который нас пытаются пересадить, там около сотни прав доступа и все их надо руками проставлять😩

@zvezdochiot
Copy link
Member

zvezdochiot commented Oct 17, 2023

@plzombie , не знаю, как остальные, а у меня в настройках авторизации и SSH-ключ прописан, и GPG-ключ прописан. Правда вторым я не пользуюсь, ибо эксплуатация муторная. А вот по SSH данные туда-обратно совершенно спокойно гуляют. Создайте себе SSH-ключ, активируйте его в ssh-agent, а в конфигах git-ов поменяйте адреса реп с https-протокола на ssh-протокол.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

PS: Про web-морду я уже писал, добавил addon в лису и с его помощью как то зашёл. Как? Сам не понял.

@plzombie
Copy link
Contributor Author

@zvezdochiot да у меня есть приложение. Получается, просто генерируешь в Developer Settings->Personal access tokens->Tokens (classic) себе индивидуальный пароль и его вводишь вместо основного

@zvezdochiot
Copy link
Member

@plzombie , да я без понятия как это всё дерьмо работает. Для меня всё это просто конкретное МММ, то бишь разводилово. Я уж подумывал вообще валить с гитхаба, когда всё это увидел. Дураку же понятно, что никакую безопасность это дерьмо не делает, а лишь усложняет работу обычному пользователю.

@noobie-iv
Copy link
Member

Я под виндой сижу, вход через FF, плагин Authenticator. Когда вход выполнен - git тоже получает доступ. После этого работают и git-bash, и VSCode. Ничего больше не настраивал.

@plzombie
Copy link
Contributor Author

plzombie commented Oct 18, 2023

@noobie-iv у меня под виндой проще - Github app для телефона и git credentials manager (да, я прогнулся под корпорации и поставил приложение:)).
А под линуксом я просто руками создал "Personal access token". По сути все эти плагины Authenticator-ы тем и заниманются, что создают токен, а потом его подсовывают вместо пароля.

С ssh я когда-то игрался. Но проще token вместо пароля создать (и просто тупо вместо пароля его вводишь, как раньше)

UPD: Github app, кстати, криворукие люди писали. Нельзя комментировать коммиты. Ты видишь, что кто-то его прокоментировал, ты нажимаешь на уведомление, а в ответ - ничего

@plzombie
Copy link
Contributor Author

Я вроде основные варнинги убрал. Там остался -Wmaybe-uninitialized в файле DewarpingImageTransform.cpp, по котором я вообще не понимаю, что там происходит. И второй варнинг - это -Wpessimizing-move, который я не смогу пофиксить в силу своей квалификации, так как я больше сишник и ничего не знаю про все эти std::move. А из справки ничего не понятно. Предлагаю пока отложить это дело

@zvezdochiot
Copy link
Member

@plzombie say:

std::move

Это определённая когда то "модная" фитча работы с кучей. Полностью тебя поддерживаю. Я сам все std::min и std::max из цветных фильтров и порогов вынес. На кой мне они, есжели есть простой и понятный выбор ({})?{}:{};?

@noobie-iv
Copy link
Member

-Wpessimizing-move

Я простой инженер, и в плюсах не копенгаген. Но, насколько я знаю, move - это новый вид оптимизации, при передаче объектов, владеющих ресурами. В некоторых случаях, когда ресурс надо передать по цепочке, вызвается специальный конструктор перемещения, внутри которого просто переприсваивается указатель на ресурс, а не делаются лишние "выделим новую память, скопируем из старой, удалим старую". И вызов std::move - это подсказка компилятору, что этот объект - временный, и при копировании можно не копировать его ресурс, а забирать, потому что объект все равно удаляется.

А еще современные плюсы насобачились даже вообще пропускать вызовы конструкторов/деструкторов при возвращении переменной из функции (гуглить RVO-оптимизация). Видимо, в старых плюсах на возвращаемые значения надо было делать move, потому они по коду и раскиданы. А в современных компиляторах это наоборот, мешает оптимизации. Судя по типу предупреждения "pessimizing-move", тут оптимизация заблокировалась, и пошли лишние копирования с тормозами. В современных компиляторах достаточно просто возвращать результат, без move:

169: - return std::move(result);
169: +return result;

И потому же std::unique_ptr живет без конструктора копии - вместо него работает конструктор перемещения.

Кстати, студия на такое не ругается. Видимо, тут комплятор про себя матерится, и просто молча делает как надо.

@noobie-iv
Copy link
Member

-Wmaybe-uninitialized

Тут какая-то шаблонная магия, в которой я не разбираюсь. Но судя по сообщению, возможны баги с неинициализированной переменной. Деварпинг в этой версии - лучший из всех, но и он работает не идеально. Например, если его на эту книгу натравить: https://forum.dwg.ru/showpost.php?p=2046477&postcount=3713, то достаточно много страниц будут кривыми. Возможно, тут это предупреждение и вылазит - надо тестить. Может, это и не предупреждение даже, а реальная ошибка.

@plzombie
Copy link
Contributor Author

Я вообще, хоть и программист, но совершенно из другой обособленной области, и у нас тут абсолютно свой технологический стек. А c++ я учил ещё по книжкам pre-c++98. @noobie-iv спасибо, попробую разобраться хотя-бы с move

@noobie-iv
Copy link
Member

Я по книжке Страуструпа, по той, которой убить можно.
Из открытого лучшее что видел по современным плюсам - курсы Константина Владимирова, МФТИ, на ютубе:
Базовый курс C++
Магистерский курс C++

@zvezdochiot zvezdochiot added the progress Some progress has been made. label Jan 11, 2024
@plzombie
Copy link
Contributor Author

plzombie commented Jan 5, 2025

@zvezdochiot @noobie-iv возвращаясь к теме... В Fedora ругается на класс IntrusivePtr. Надо посмотреть, что это, и можно ли его на что-то заменить из стандарта.

@zvezdochiot
Copy link
Member

zvezdochiot commented Jan 5, 2025

@plzombie , а как именно ругается? Дай выхлоп посмотреть. (насколько я помню "это" связанно с сортировкой, а без сортировки ST - не ST).

Но за "сигнал" спасибо. Опять "умельцы" из GNU каких то грабель подбросили.

@plzombie
Copy link
Contributor Author

plzombie commented Jan 5, 2025

[ 63%] Building CXX object src/stages/page_split/CMakeFiles/page_split.dir/ImageView.cpp.o
In file included from /home/misha/Projects/scantailor-experimental/src/interaction/InteractionHandler.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/ImageViewBase.h:23,
                 from /home/misha/Projects/scantailor-experimental/src/stages/page_split/ImageView.h:22,
                 from /home/misha/Projects/scantailor-experimental/src/stages/page_split/ImageView.cpp:19:
In destructor «virtual RefCountable::~RefCountable()»,
    inlined from «void RefCountable::unref() const» at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from «void RefCountable::unref() const» at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from «void intrusive_unref(T&) [с T = ProjectPages]» at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from «IntrusivePtr<T>::~IntrusivePtr() [с T = ProjectPages]» at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from «page_split::ImageView::ImageView(const std::shared_ptr<AcceleratableOperations>&, const imageproc::AffineTransformedImage&, const ImagePixmapUnion&, const page_split::PageLayout&, const IntrusivePtr<ProjectPages>&, const ImageId&, bool, bool)» at /home/misha/Projects/scantailor-experimental/src/stages/page_split/ImageView.cpp:82:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: предупреждение: «void operator delete(void*, std::size_t)» called on pointer «((IntrusivePtr<ProjectPages>*)this)[151].IntrusivePtr<ProjectPages>::m_pObj» with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^
In destructor «virtual RefCountable::~RefCountable()»,
    inlined from «void RefCountable::unref() const» at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:51:20,
    inlined from «void RefCountable::unref() const» at /home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:47:10,
    inlined from «void intrusive_unref(T&) [с T = ProjectPages]» at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:114:14,
    inlined from «IntrusivePtr<T>::~IntrusivePtr() [с T = ProjectPages]» at /home/misha/Projects/scantailor-experimental/src/foundation/IntrusivePtr.h:151:24,
    inlined from «page_split::ImageView::~ImageView()» at /home/misha/Projects/scantailor-experimental/src/stages/page_split/ImageView.cpp:86:1:
/home/misha/Projects/scantailor-experimental/src/foundation/RefCountable.h:40:30: предупреждение: «void operator delete(void*, std::size_t)» called on pointer «((IntrusivePtr<ProjectPages>*)this)[151].IntrusivePtr<ProjectPages>::m_pObj» with nonzero offset 16 [-Wfree-nonheap-object]
   40 |     virtual ~RefCountable() {}
      |                              ^

Там несколько одинаковых записей, меняется только место использования класса

@zvezdochiot
Copy link
Member

@plzombie , фу, отлегло. Я думал ты ещё что то "нащупал". А на "это" да, ругается. И не зря ругается. Уж больно шальная на самом деле в STEX сортировка. На каких то этапах через костыли стабилизируется, а на каких то PageId завёрнут так, что нельзя его для стабилизации пользовать. Но ругается на всех этапах один чёрт.

@noobie-iv
Copy link
Member

@plzombie

IntrusivePtr
можно ли его на что-то заменить из стандарта

По-моему, нет. Такое в стандарт забыли положить, потому оно и самописное. Разве что аналог, вроде, есть в бусте. Но пересадить всю программу на буст долго будет, там эти указатели повсюду.

Хороших учебников по указателям не видел. Везде, как в учебниках математики, "мы придумали вот такую хрень, а вы придумайте, куда ее засунуть."

Насколько я понимаю, указатели применены так:

  • unique.
    Один объект - один указатель.
    Когда указатель удаляется - он удаляет и управляемый объект.

    • Для объектов, у которых гарантированно один владелец.
      • Идиома PIMPL, когда у класса не куча полей, а один указатель на реализацию, где эти поля спрятаны.
        Этот pimpl - unique, потому что владеет им только класс-хозяин. Половина классов в ST прячет реализацию в PIMPL.
    • Для объектов, к которым точно не будет обращений после уничтожения.
      • Например, ThumbSequence в главном окне.
        Пока есть главное окно, гарантированно есть и окно эскизов, поэтому из любой функции главного окна можно безопасно обращаться к указателю на окно эскизов.
  • intrusive.
    Один объект - много указателей.

    В объект встроен счетчик указателей на объект.
    При копировании указателя счетчик растет, при удалении падает.
    Когда не остается указателей - счетчик нулевой, и тут объект сам себя удаляет.
    А пока есть хоть одна копия указателя - объект еще жив и гарантированно доступен через него.

    Чтобы в каждом объекте, на который нужен указатель, не писать с нуля счетчики ссылок, увеличение/уменьшение и автоудаление, управление счетчиком вынесено в класс RefCountable, от которого надо наследоваться.

    • Для объектов, у которых владельцев несколько.
      • Например, ThumbnailCache в главном окне. В этот кеш лазают в фоновом потоке. А при смене фильтра старый кеш сносят, и создают новый, но в GUI-потоке. И бывает так, что фоновый поток обращается к кешу, который уже снесли в GUI. Если бы это был unique - фоновый поток вылетел бы из-за битого указателя. А с intrusive, пока хоть одна копия указателя болтается где-то в списках обработки фонового потока, старый кеш продолжит работать - например, генерировать запрошенные версии эскизов на будущее. А в GUI-потоке уже будет новый кеш, тоже рабочий.
  • shared/weak
    Один объект - много shared указателей.

    Shared-указатели совместно владеют объектом, и удаляют его, когда указателей не осталось.
    Счетчик shared-указателей хранится отдельно от объекта, в блоке, которым совместно управляют сами указатели.
    При копировании указателя shared-счетчик растет, при удалении падает.
    Когда удаляется последний из shared-указателей, счетчик нулевой, и указатель удаляет управляемый объект.

    А еще можно создавать weak-указатели.
    Weak-указатели не владеют объектом, но видят, жив он еще или уже удален.
    Счетчик weak-указателей сидит там же, в общем блоке.
    Когда оба счетчика нули - не осталось ни shared, ни weak-указателя, и контрольный блок тоже удаляется.
    Если объект еще жив, по weak-указателю можно создать shared, и начать пользоваться объектом.

    • Для объектов, у которых несколько хозяев, и которыми не нужно пользоваться, если хозяев больше нет.
      • Например, объекты обратного вызова CompletionHandler при запросе в кеш эскизов. Объект создается в GUI-потоке, и должен обновить эскиз. А загрузка эскизов идет в кеше в фоновом потоке. Бывает так, что кеш загрузил картинку для эскиза, а фильтр за это время поменяли, и эскиз уже удален.

        Был бы unique - был бы вылет по битому указателю.

        Был бы intrusive - ненужный эскиз все еще висел бы в памяти, и все равно не смог бы обновиться, потому что больше не виден в главном окне.

        Тут в GUI-потоке объект создают через shared, а в фоновый поток кеша отдают через weak. Пока в GU есть хоть один shared - CompletionHandler жив и эскиз будет обновляться, но если shared не осталось - эскиз был удален. А фоновый поток кеша после загрузки эскиза проверяет weak. Если weak скажет, что эскиз еще жив - кеш присылает эскизу оповещение на обновление. А если эскиз уже удален - просто завершает работу: картинка для эскиза записана в файл на будущее, а обновление уже не требуется.

Среди unique-intrusive-shared каждый следующий сложнее и тормознее предыдущего, поэтому использованы всегда минимально необходимые, а не везде просто shared.

@noobie-iv
Copy link
Member

@plzombie

-Wfree-nonheap-object

Судя по сообщению, где-то есть объект, который создан на стеке, а потом (возможно, по ошибке) завернут в IntrusivePtr. Указатель в своем деструкторе вызывает unref() объекта (унаследованный от RefCountable), который должен вызвать delete, потому что указатель должен создаваться из объектов, созданных через new.

Типа такого

{   // OK: heap object
    ProjectPages* pages = new ProjectPages(); // count = 1
    IntrusivePtr<ProjectPages> ptr(pages);
} // OK: ~ptr()   --->   pages->unref()   --->   count=0   --->   delete this   --->   ~pages();


{   // ERROR: stack object
    ProjectPages pages; // count = 1
    IntrusivePtr<ProjectPages> ptr(&pages);
} // OK: ~pages()
  // ERROR: ~ptr()   --->   pages->unref()   --->   count=0   --->   delete this   --->   ~pages();  

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dispute Debate progress Some progress has been made.
Projects
None yet
Development

No branches or pull requests

3 participants