diff --git a/uppsrc/Core/Vcont.hpp b/uppsrc/Core/Vcont.hpp index 3e4fee8ed..cd951d16a 100644 --- a/uppsrc/Core/Vcont.hpp +++ b/uppsrc/Core/Vcont.hpp @@ -272,7 +272,15 @@ template void Vector::RemoveIf(Condition c) { int ti = 0; - for(int i = 0; i < items; i++) + int i = 0; + for(; i < items; i++) { // run to the first element without moving + if(c(i)) { + (vector + i++)->~T(); + break; + } + ti++; + } + for(; i < items; i++) if(c(i)) (vector + i)->~T(); else