From 57e5f81869b966425c4b1947664a330f5d20180e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Mon, 8 Mar 2021 20:53:15 -0500 Subject: [PATCH] COMP: Fix image pointer casting error Fix image pointer casting error. Fixes ``` In file included from ITK/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.h:194:0, from ITK/Modules/Filtering/AnisotropicSmoothing/include/itkAnisotropicDiffusionImageFilter.h:21, from ITK/Modules/Filtering/AnisotropicSmoothing/include/itkGradientAnisotropicDiffusionImageFilter.h:21, from src/Filtering/AnisotropicSmoothing/ComputePeronaMalikAnisotropicDiffusion/Code.cxx:22: /.../ITKExamples-build/ITK/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx: In instantiation of 'void itk::DenseFiniteDifferenceImageFilter::CopyInputToOutput() [with TInputImage = itk::Image; TOutputImage = itk::Image]': src/Filtering/AnisotropicSmoothing/ComputePeronaMalikAnisotropicDiffusion/Code.cxx:72:1: required from here ITK/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx:44:35: error: conversion from 'itk::SmartPointer >::ObjectType* {aka itk::Image*}' to non-scalar type 'itk::Image::Pointer {aka itk::SmartPointer >}' requested typename TInputImage::Pointer tempPtr = output.GetPointer(); ^~~~~~~ ``` raised at: https://open.cdash.org/viewBuildError.php?buildid=7083938 --- .../include/itkDenseFiniteDifferenceImageFilter.hxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx b/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx index 5fee42115eb..f4614b90250 100644 --- a/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx +++ b/Modules/Core/FiniteDifference/include/itkDenseFiniteDifferenceImageFilter.hxx @@ -41,8 +41,9 @@ DenseFiniteDifferenceImageFilter::CopyInputToOutput() // Check if we are doing in-place filtering if (this->GetInPlace() && this->CanRunInPlace()) { - typename TInputImage::Pointer tempPtr = output.GetPointer(); - if (tempPtr && tempPtr->GetPixelContainer() == input->GetPixelContainer()) + const void * const inputPixelContainer = input->GetPixelContainer(); + const auto * const tempPtr = output.GetPointer(); + if (tempPtr != nullptr && tempPtr->GetPixelContainer() == inputPixelContainer) { // the input and output container are the same - no need to copy return;