From a0fcc49e7e459973bb01891eb9f34b154f433b30 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 20 Feb 2023 15:47:52 -0800 Subject: [PATCH] casereader: Make casereader_random_class function 'advance' optional. Stateless casereaders don't necessarily need to do anything for it. --- src/data/casereader-provider.h | 2 +- src/data/casereader.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/data/casereader-provider.h b/src/data/casereader-provider.h index 2069eb678d..37bde24310 100644 --- a/src/data/casereader-provider.h +++ b/src/data/casereader-provider.h @@ -148,7 +148,7 @@ struct casereader_random_class function should call casereader_force_error on READER. */ void (*destroy) (struct casereader *reader, void *aux); - /* Mandatory. + /* Optional. A call to this function tells the callee that the N cases at the beginning of READER will never be read again. diff --git a/src/data/casereader.c b/src/data/casereader.c index 1b06f42e8a..a410afcbcb 100644 --- a/src/data/casereader.c +++ b/src/data/casereader.c @@ -501,7 +501,8 @@ advance_random_reader (struct casereader *reader, if (new > old) { shared->min_offset = new; - shared->class->advance (reader, shared->aux, new - old); + if (shared->class->advance) + shared->class->advance (reader, shared->aux, new - old); } } -- 2.30.2