X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Ffb-mem.c;h=92e3b4972a4e358093762b5c83c077d51ebcd2ee;hb=bfca2c42bc0e749f8611339568be502f22ac5e9c;hp=2356e86bd128729175fe4c95b62babbfa5379ad0;hpb=681b277c0aabea785a21e109dc07338847c0cb32;p=libucw.git diff --git a/ucw/fb-mem.c b/ucw/fb-mem.c index 2356e86b..92e3b497 100644 --- a/ucw/fb-mem.c +++ b/ucw/fb-mem.c @@ -112,10 +112,10 @@ fbmem_seek(struct fastbuf *f, ucw_off_t pos, int whence) { if (pos <= b->pos + (ucw_off_t)b->size) /* <=, because we need to be able to seek just after file end */ { - f->buffer = b->data; + f->buffer = f->bstop = b->data; f->bptr = b->data + (pos - b->pos); - f->bufend = f->bstop = b->data + b->size; - f->pos = b->pos + b->size; + f->bufend = b->data + b->size; + f->pos = b->pos; FB_MEM(f)->block = b; return 1; } @@ -123,12 +123,12 @@ fbmem_seek(struct fastbuf *f, ucw_off_t pos, int whence) if (!m->first && !pos) { /* Seeking to offset 0 in an empty file needs an exception */ - f->buffer = f->bptr = f->bufend = NULL; + f->buffer = f->bptr = f->bstop = f->bufend = NULL; f->pos = 0; FB_MEM(f)->block = NULL; return 1; } - bthrow(f, "fb.seek", "fbmem_seek to invalid offset"); + bthrow(f, "seek", "fbmem_seek to an invalid offset"); } static void @@ -162,7 +162,6 @@ fbmem_create(unsigned blocksize) f->name = ""; f->spout = fbmem_spout; f->close = fbmem_close; - fb_tie(f); return f; } @@ -181,7 +180,6 @@ fbmem_clone_read(struct fastbuf *b) f->seek = fbmem_seek; f->close = fbmem_close; f->can_overwrite_buffer = 1; - fb_tie(f); return f; }