Re: Implementing cairo_read_func_t/cairo_write_func_t properly
Behdad Esfahbod <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On 16-01-01 09:32 AM, Bernhard Fischer wrote: > On Thursday 31 December 2015 09:54:39 Lawrence D'Oliveiro wrote: >> > On Wed, 30 Dec 2015 15:27:13 +0100, Bernhard Fischer wrote: >>> > > when I would return STATUS_READ_ERROR, then the calling function >>> > > cannot detect how many bytes then actually have been read except in >>> > > the case that I read 1 byte after the other. >> > >> > Does it matter? In any case, the file is clearly corrupted and the >> > image decoding has failed. >> > >> > At least, that is my conclusion... > > Yes, it matters! > cairo_..._stream() are stream reading functions. This is that it does not know > in advance how many bytes are available in the file. > > The read_func_t is called with a buffer of a programmer-chosen length (from > within cairo_..._stream()), e.g. 10k. But if the file has just 9k, obviously > only 9k are read. Unfortunately, the programmer has no way to find that out. I agree this could be designed better... -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo