]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/fb-atomic.c
Heap: Interface cleanup
[libucw.git] / ucw / fb-atomic.c
index 1dce8f08e1ab10a6add345018cb4a5616486a4ac..cd0217468279090b61ea69a19f816715254eecd9 100644 (file)
@@ -7,11 +7,11 @@
  *     of the GNU Lesser General Public License.
  */
 
-#include "ucw/lib.h"
-#include "ucw/fastbuf.h"
-#include "ucw/lfs.h"
-#include "ucw/conf.h"
-#include "ucw/trans.h"
+#include <ucw/lib.h>
+#include <ucw/fastbuf.h>
+#include <ucw/io.h>
+#include <ucw/conf.h>
+#include <ucw/trans.h>
 
 #include <string.h>
 #include <fcntl.h>
@@ -34,6 +34,7 @@ static void CONSTRUCTOR fbatomic_init_config(void)
 
 #endif
 
+#define FB_ATOMIC(f) ((struct fb_atomic *)(f))
 #define TRACE(m...) do { if(trace) msg(L_DEBUG, "FB_ATOMIC: " m); } while(0)
 
 struct fb_atomic_file {
@@ -54,9 +55,9 @@ fbatomic_internal_write(struct fastbuf *f)
       ASSERT(af->record_len < 0 || !(size % af->record_len));
       int res = write(af->fd, f->buffer, size);
       if (res < 0)
-       bthrow(f, "fb.write", "Error writing %s: %m", f->name);
+       bthrow(f, "write", "Error writing %s: %m", f->name);
       if (res != size)
-       bthrow(f, "fb.write", "Unexpected partial write to %s: written only %d bytes of %d", f->name, res, size);
+       bthrow(f, "write", "Unexpected partial write to %s: written only %d bytes of %d", f->name, res, size);
       f->bptr = f->buffer;
     }
 }
@@ -77,6 +78,7 @@ fbatomic_spout(struct fastbuf *f)
       f->buffer = xrealloc(f->buffer, size);
       f->bufend = f->buffer + size;
       f->bptr = f->buffer + written;
+      f->bstop = f->buffer;
       F->expected_max_bptr = f->bufend - F->slack_size;
     }
   else
@@ -113,7 +115,7 @@ fbatomic_open(const char *name, struct fastbuf *master, uns bufsize, int record_
     {
       int fd = ucw_open(name, O_WRONLY | O_CREAT | O_TRUNC | O_APPEND, 0666);
       if (fd < 0)
-       trans_throw("fb.open", NULL, "Cannot create %s: %m", name);
+       trans_throw("ucw.fb.open", NULL, "Cannot create %s: %m", name);
       af = xmalloc_zero(sizeof(*af) + strlen(name));
       af->fd = fd;
       af->use_count = 1;