aboutsummaryrefslogtreecommitdiff
path: root/text.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2014-09-14 00:15:35 +0200
committerMarc André Tanner <mat@brain-dump.org>2014-09-14 00:15:35 +0200
commitfee0c5a6dc9314724b60f1e2057b764d45256e54 (patch)
treefc00e06a729d5ca133a90383ed8de8c28f1b401f /text.c
parent88d1e3fcdfe50696aab82634c2f6f3094e61a025 (diff)
downloadvis-fee0c5a6dc9314724b60f1e2057b764d45256e54.tar.gz
vis-fee0c5a6dc9314724b60f1e2057b764d45256e54.tar.xz
Fix clang static analyzer warnings
Diffstat (limited to 'text.c')
-rw-r--r--text.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/text.c b/text.c
index 3b73a62..56332db 100644
--- a/text.c
+++ b/text.c
@@ -499,6 +499,8 @@ bool text_insert(Text *txt, size_t pos, const char *data, size_t len) {
Location loc = piece_get_intern(txt, pos);
Piece *p = loc.piece;
+ if (!p)
+ return false;
size_t off = loc.off;
if (cache_insert(txt, p, off, data, len))
return true;
@@ -703,6 +705,8 @@ bool text_delete(Text *txt, size_t pos, size_t len) {
Location loc = piece_get_intern(txt, pos);
Piece *p = loc.piece;
+ if (!p)
+ return false;
size_t off = loc.off;
if (cache_delete(txt, p, off, len))
return true;
@@ -724,6 +728,8 @@ bool text_delete(Text *txt, size_t pos, size_t len) {
cur = p->len - off;
start = p;
before = piece_alloc(txt);
+ if (!before)
+ return false;
}
/* skip all pieces which fall into deletion range */
while (cur < len) {
@@ -740,6 +746,8 @@ bool text_delete(Text *txt, size_t pos, size_t len) {
midway_end = true;
end = p;
after = piece_alloc(txt);
+ if (!after)
+ return false;
piece_init(after, before, p->next, p->data + p->len - (cur - len), cur - len);
}