summaryrefslogtreecommitdiff
path: root/point.c
diff options
context:
space:
mode:
authorJuan Manuel Tomás <jtomas1815@gmail.com>2020-04-28 14:49:57 -0300
committerJuan Manuel Tomás <jtomas1815@gmail.com>2020-04-28 14:49:57 -0300
commitc6c21c2c1c811508f4cb467dcd5288af20870334 (patch)
tree0c91d1d8da0baafda9ac10db583dded70077d2b8 /point.c
parent7ceba65d88079536d3b4b7132ad93fb3943c483d (diff)
downloadjet-c6c21c2c1c811508f4cb467dcd5288af20870334.tar.gz
jet-c6c21c2c1c811508f4cb467dcd5288af20870334.zip
Improve performance on very large files
Diffstat (limited to 'point.c')
-rw-r--r--point.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/point.c b/point.c
index 8ef0c41..82f27d2 100644
--- a/point.c
+++ b/point.c
@@ -14,22 +14,22 @@ uint16_t index_to_offset(struct point *point) {
}
}
+bool same_point(struct point *a, struct point *b) {
+ return a->page == b->page && a->index == b->index;
+}
+
uint8_t element(struct point *point) {
if (point->index == point->page->element_count) {
- return point->page->next->elements[0];
+ if (!point->page->next) {
+ return EOF;
+ } else {
+ return point->page->next->elements[0];
+ }
} else {
return point->page->elements[index_to_offset(point)];
}
}
-bool same_location(struct point *a, struct point *b) {
- return a->page == b->page && a->index == b->index;
-}
-
-bool at_eof(struct point *point) {
- return point->index == point->page->element_count && !point->page->next;
-}
-
void move_point_forward(struct point *point) {
if (point->index < point->page->element_count) {
point->index++;