diff --git a/ippl/src/Field/LField.hpp b/ippl/src/Field/LField.hpp index ba8d22ca35a687e1234f717f43eed1f36adbfdaf..bf8b8a4dbdfdeea62d05d30e8f1bcd23a9c7e570 100644 --- a/ippl/src/Field/LField.hpp +++ b/ippl/src/Field/LField.hpp @@ -714,7 +714,7 @@ LField<T,Dim>::allocateStorage(int newsize) // Allocate the storage, creating some extra to account for offset, and // then add in the offset. - P = new T[newsize + extra]; + P = new T[newsize + extra](); P += extra; ADDIPPLSTAT(incLFieldBytes, (newsize+extra)*sizeof(T)); diff --git a/ippl/src/SubField/SubFieldIter.h b/ippl/src/SubField/SubFieldIter.h index 2e6457fdeee6035fb50eee6567c0b8781ddb833c..34e3a74e181ab675b1c0a42799b28f44d32eb58c 100644 --- a/ippl/src/SubField/SubFieldIter.h +++ b/ippl/src/SubField/SubFieldIter.h @@ -127,7 +127,11 @@ public: MyDomain(&(const_cast<S&>(s))), CurrentLField(ldf), MyBrackets(B) { - LFPtr = (*CurrentLField).second.get(); + if (CurrentLField != getBareField().end_if()) { + LFPtr = (*CurrentLField).second.get(); + } else { + LFPtr = nullptr; + } } // Default constructor @@ -156,9 +160,15 @@ public: // Go to the next LField. typename BareField<T,Dim>::iterator_if nextLField() { - ++CurrentLField; - LFPtr = (*CurrentLField).second.get(); - return CurrentLField; + if (CurrentLField != getBareField().end_if()) { + ++CurrentLField; + } + if (CurrentLField != getBareField().end_if()) { + LFPtr = (*CurrentLField).second.get(); + } else { + LFPtr = nullptr; + } + return CurrentLField; } // Return the LField pointed to by LFPtr diff --git a/tests/classic_src/Fields/Interpolation/NDGridTest.cpp b/tests/classic_src/Fields/Interpolation/NDGridTest.cpp index f7791fa797476bd442d5ed1ba9cf3266ff37418d..6753c036f5bd43b14a664bfc24ad96ed93981097 100644 --- a/tests/classic_src/Fields/Interpolation/NDGridTest.cpp +++ b/tests/classic_src/Fields/Interpolation/NDGridTest.cpp @@ -148,7 +148,7 @@ TEST_F(NDGridTest, CoordVectorTest) { // and newCoordArray EXPECT_NEAR(coords_v[j], gridCoordinates[i][j], 1e-12); EXPECT_NEAR(coords_a[j], gridCoordinates[i][j], 1e-12); } - delete coords_a; + delete[] coords_a; } }