patch 8.1.0643: computing byte offset wrong

Problem:    Computing byte offset wrong. (Bjorn Linse)
Solution:   Use the right variable for array index.
diff --git a/src/memline.c b/src/memline.c
index d79e7ce..6b4a766 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -5380,7 +5380,7 @@
 	    // lengths.
 	    len = 0;
 	    for (i = start_idx; i <= idx; ++i)
-		len += STRLEN((char_u *)dp + ((dp->db_index[idx]) & DB_INDEX_MASK)) + 1;
+		len += STRLEN((char_u *)dp + ((dp->db_index[i]) & DB_INDEX_MASK)) + 1;
 	}
 	else
 #endif
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index ccf7d28..e63ce6b 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -229,11 +229,11 @@
 func Test_prop_byteoff()
   call prop_type_add('comment', {'highlight': 'Directory'})
   new
-  call setline(1, ['line1', 'line2', ''])
+  call setline(1, ['line1', 'second line', ''])
   set ff=unix
-  call assert_equal(13, line2byte(3))
+  call assert_equal(19, line2byte(3))
   call prop_add(1, 1, {'end_col': 3, 'type': 'comment'})
-  call assert_equal(13, line2byte(3))
+  call assert_equal(19, line2byte(3))
 
   bwipe!
   call prop_type_delete('comment')
diff --git a/src/version.c b/src/version.c
index dc11358..06f7a8a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    643,
+/**/
     642,
 /**/
     641,