From 4a4423967819406e2b6d950a7edf1986b6b7035b Mon Sep 17 00:00:00 2001 From: NAUD Maxence <maxence.naud@cea.fr> Date: Mon, 4 Mar 2024 13:47:41 +0000 Subject: [PATCH] Switch contiguous local variable comparison with 0 and array access to avoid seg fault --- src/operator/DivImpl.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/operator/DivImpl.cpp b/src/operator/DivImpl.cpp index 292a3b56..729aff24 100644 --- a/src/operator/DivImpl.cpp +++ b/src/operator/DivImpl.cpp @@ -91,16 +91,10 @@ void Aidge::DivImpl_cpu::forward() { std::size_t contiguousIdx = nbDims - 1; for (; contiguousIdx+1 > 0; --contiguousIdx) { if (dims0[contiguousIdx] != dims1[contiguousIdx]) { - if (contiguousIdx == (nbDims -1)) { - if (dims0[contiguousIdx] == 1) { - while ((dims0[contiguousIdx] == 1) && (contiguousIdx+1 > 0)) { - --contiguousIdx; - } - } - else { - while ((dims1[contiguousIdx] == 1) && (contiguousIdx+1 > 0)) { - --contiguousIdx; - } + if (contiguousIdx == (nbDims -1)) { // last dimensions of one of the input Tensor are of size 1 + const std::vector<std::size_t>& dims = (dims0[contiguousIdx] == 1) ? dims0 : dims1; + while ((contiguousIdx+1 > 0) && (dims[contiguousIdx] == 1)) { + --contiguousIdx; } } break; -- GitLab