From d687993754371a4cb94cb597a4e683afa9ad4a475f665167875034aea140842d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 7 Oct 2024 19:19:14 +0300 Subject: [PATCH] Zero-based indeces --- cyac/example/print-map.c | 4 ++-- cyac/iter.c | 11 ++++++----- cyac/iter.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/cyac/example/print-map.c b/cyac/example/print-map.c index f145734..62d8aec 100644 --- a/cyac/example/print-map.c +++ b/cyac/example/print-map.c @@ -55,7 +55,7 @@ static enum YACErr myCb( const unsigned char *key, const size_t keyLen, - const size_t idx, + const ptrdiff_t idx, void *cbState, struct YACAtom *atom, ptrdiff_t *off, @@ -75,7 +75,7 @@ myCb( if (key != NULL) { fwrite(key, keyLen, 1, stdout); fputs(": ", stdout); - } else if (idx > 0) { + } else if (idx > -1) { fprintf(stdout, "%zu: ", idx); } diff --git a/cyac/iter.c b/cyac/iter.c index ddb16c1..a7071cc 100644 --- a/cyac/iter.c +++ b/cyac/iter.c @@ -15,6 +15,7 @@ #include #include +#include #include #include "dec.h" @@ -38,7 +39,7 @@ YACIterList( } (*off) += atom->off; eoc = atom->typ == YACItemEOC; - err = cb(NULL, 0, eoc ? 0 : (n + 1), cbState, atom, off, buf, len); + err = cb(NULL, 0, eoc ? -1 : (ptrdiff_t)n, cbState, atom, off, buf, len); if (err != YACErrNo) { return err; } @@ -68,7 +69,7 @@ YACIterMap( } (*off) += atom->off; if (atom->typ == YACItemEOC) { - err = cb(NULL, 0, 0, cbState, atom, off, buf, len); + err = cb(NULL, 0, -1, cbState, atom, off, buf, len); if (err != YACErrNo) { return err; } @@ -93,7 +94,7 @@ YACIterMap( if (atom->typ == YACItemEOC) { return YACErrMapNoVal; } - err = cb(key, keyLen, 0, cbState, atom, off, buf, len); + err = cb(key, keyLen, -1, cbState, atom, off, buf, len); if (err != YACErrNo) { return err; } @@ -172,14 +173,14 @@ YACIterBlob( } if ((atom->len) > 0) { atom->typ = YACItemChunk; - err = cb(NULL, 0, n + 1, cbState, atom, off, buf, len); + err = cb(NULL, 0, (ptrdiff_t)n, cbState, atom, off, buf, len); if (err != YACErrNo) { return err; } } } atom->typ = YACItemEOC; - err = cb(NULL, 0, 0, cbState, atom, off, buf, len); + err = cb(NULL, 0, -1, cbState, atom, off, buf, len); if (err != YACErrNo) { return err; } diff --git a/cyac/iter.h b/cyac/iter.h index 37019af..081603d 100644 --- a/cyac/iter.h +++ b/cyac/iter.h @@ -8,7 +8,7 @@ typedef enum YACErr (*YACIterCb)( const unsigned char *key, const size_t keyLen, - const size_t idx, + const ptrdiff_t idx, void *cbState, struct YACAtom *atom, ptrdiff_t *off, -- 2.48.1