jinja : fix negative step slice with start/stop values (#24580)

This commit is contained in:
Sigbjørn Skjæret
2026-06-13 18:28:40 +02:00
committed by GitHub
parent e8067a8b36
commit f05cf4676a
3 changed files with 23 additions and 5 deletions
+3 -3
View File
@@ -90,14 +90,14 @@ static T slice(const T & array, int64_t start, int64_t stop, int64_t step = 1) {
stop_val = std::min(stop_val, len);
}
} else {
start_val = len - 1;
start_val = start;
if (start_val < 0) {
start_val = std::max(len + start_val, (int64_t)-1);
start_val = std::max(len + start_val, (int64_t)0);
} else {
start_val = std::min(start_val, len - 1);
}
stop_val = -1;
stop_val = stop;
if (stop_val < -1) {
stop_val = std::max(len + stop_val, (int64_t)-1);
} else {