+ reader->length = data_length / bpf;
+
+ if (reader->length == INT64_MAX && reader->io.seek && reader->io.tell) {
+ if (reader->io.seek(reader->io_cookie, 0, SEEK_END) >= 0) {
+ int64_t size = reader->io.tell(reader->io_cookie);
+ if (size > 0)
+ reader->length = (size - reader->data_offset) / bpf;
+ reader->io.seek(reader->io_cookie, reader->data_offset, SEEK_SET);
+ }
+ }