summaryrefslogtreecommitdiff
path: root/src/piece-table.c
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2025-08-11 23:37:15 +0200
committerEkaitz Zarraga <ekaitz@elenq.tech>2025-08-11 23:37:15 +0200
commit9dc4e4f217c6032e99b5828a514cf817770981a9 (patch)
tree2e4208760734bb27bbd98e8bd2b3740d454b272b /src/piece-table.c
parent7d9ac83b3026a8f308c6be15ac512a22fba20442 (diff)
piece-table: delete: Test better and fixes
Diffstat (limited to 'src/piece-table.c')
-rw-r--r--src/piece-table.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/piece-table.c b/src/piece-table.c
index ba88103..c7f9381 100644
--- a/src/piece-table.c
+++ b/src/piece-table.c
@@ -186,8 +186,8 @@ piece_table_piece_split(piece_table *pt, piece *p, size_t pos)
/* Returns the first piece */
piece *second;
assert(pos < p->length);
- assert(p->start != 0); /* Not a sentinel piece */
- assert(p->length != 0); /* Not an empty piece (they should not exist) */
+ assert(p->buffer != NULL); /* Not a sentinel piece */
+ assert(p->length != 0); /* Not an empty piece (they should not exist) */
if ( pos == 0 )
{
return p->prev;
@@ -196,6 +196,7 @@ piece_table_piece_split(piece_table *pt, piece *p, size_t pos)
second->length = p->length - pos;
p->length = pos;
second->next = p->next;
+ second->next->prev = second;
p->next = second;
second->prev = p;
second->start = p->start + pos;
@@ -385,7 +386,7 @@ piece_table_create (char *orig)
pt->sentinel->prev = original;
pt->empty = NULL;
- pt->cached = NULL;
+ pt->cached = original;
pt->cached_offset = 0;
return pt;
}