Blob Blame History Raw
From dc520be195e8cd866da90e0edbf560c38ee7094e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Thu, 5 Jul 2018 12:50:00 +0200
Subject: [PATCH] line_numbers: fix off-by-one in offset indexing

len(offset) is one past the end of array. I assume this code was supposed
to always force a valid index, so len(offset)-1 should be used.
---
 asttokens/line_numbers.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/asttokens/line_numbers.py b/asttokens/line_numbers.py
index b91b00fd6c..64ee81e1c1 100644
--- a/asttokens/line_numbers.py
+++ b/asttokens/line_numbers.py
@@ -45,7 +45,7 @@ class LineNumbers(object):
       offsets.append(len(line_text))
       self._utf8_offset_cache[line] = offsets
 
-    return offsets[max(0, min(len(offsets), utf8_column))]
+    return offsets[max(0, min(len(offsets)-1, utf8_column))]
 
   def line_to_offset(self, line, column):
     """