diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-12-22 12:32:33 +0100 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-12-22 12:32:33 +0100 |
| commit | e2f130542be12a22c62744e718f0a5f884fc89d5 (patch) | |
| tree | 74ee4013dd811f10dcac4c9b81d6376c6a7c7871 /text.c | |
| parent | 53665d0e550330c331589df4d11de697e3a6ec91 (diff) | |
| download | vis-e2f130542be12a22c62744e718f0a5f884fc89d5.tar.gz vis-e2f130542be12a22c62744e718f0a5f884fc89d5.tar.xz | |
text: change datatype of Mark to uintptr_t
This should avoid undefined pointer comparisons.
Diffstat (limited to 'text.c')
| -rw-r--r-- | text.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1634,8 +1634,8 @@ Mark text_mark_set(Text *txt, size_t pos) { return (Mark)&txt->end; Location loc = piece_get_extern(txt, pos); if (!loc.piece) - return NULL; - return loc.piece->data + loc.off; + return (Mark)NULL; + return (Mark)(loc.piece->data + loc.off); } size_t text_mark_get(Text *txt, Mark mark) { @@ -1649,8 +1649,10 @@ size_t text_mark_get(Text *txt, Mark mark) { return txt->size; for (Piece *p = txt->begin.next; p->next; p = p->next) { - if (p->data <= mark && mark < p->data + p->len) - return cur + (mark - p->data); + Mark start = (Mark)(p->data); + Mark end = start + p->len; + if (start <= mark && mark < end) + return cur + (mark - start); cur += p->len; } |
