Fix Segfault when reaching output image informations before calling Execute()

Summary

Testing if the Execute() function has been called before accessing output image information. If not, raise an exception.

Rationale

Fix #2288 (closed)

Implementation Details

Classes and files

The class attribute Application::m_ExecuteDone allows to know if the function Application::Execute has been called. In this MR, we add a test to check this attribute in Application::GetParameterImageBase before returning the output image. If not, an exception is raised, with an explicit message.

Tests

Add a new unit test to check that the following functions raise an exception if called before Execute():

  • Application::GetImageOrigin
  • Application::GetImageSpacing
  • Application::GetImageSize
  • Application::GetImageNbBands
  • Application::PropagateRequestedRegion
  • Application::GetImageRequestedRegion
  • Application::SetImageMetadata
  • Application::GetMetadataDictionary
  • Application::GetImageBasePixelType

Copyright

The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.


Check before merging:

  • All discussions are resolved
  • At least 2 👍 votes from core developers, no 👎 vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
  • Optionally, run git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i on latest changes and commit
Edited by Julien Osman

Merge request reports

Loading