]> wimlib.net Git - wimlib/blobdiff - src/compress_serial.c
win32_capture.c: Fix exclusion when capture path ends in slash
[wimlib] / src / compress_serial.c
index 0ae354834286b8e84db6987e7391df262f2df89e..1a333fe0fb07580cead9eaa3e80a495e2eb7b3a1 100644 (file)
@@ -38,8 +38,7 @@ struct serial_chunk_compressor {
        struct wimlib_compressor *compressor;
        u8 *udata;
        u8 *cdata;
-       unsigned ulen;
-       unsigned clen;
+       u32 ulen;
 };
 
 static void
@@ -58,7 +57,7 @@ serial_chunk_compressor_destroy(struct chunk_compressor *_ctx)
 
 static bool
 serial_chunk_compressor_submit_chunk(struct chunk_compressor *_ctx,
-                                    const void *chunk, size_t size)
+                                    const void *chunk, u32 size)
 {
        struct serial_chunk_compressor *ctx = (struct serial_chunk_compressor*)_ctx;
 
@@ -75,21 +74,22 @@ serial_chunk_compressor_submit_chunk(struct chunk_compressor *_ctx,
 
 static bool
 serial_chunk_compressor_get_chunk(struct chunk_compressor *_ctx,
-                                 const void **cdata_ret, unsigned *csize_ret,
-                                 unsigned *usize_ret)
+                                 const void **cdata_ret, u32 *csize_ret,
+                                 u32 *usize_ret)
 {
        struct serial_chunk_compressor *ctx = (struct serial_chunk_compressor*)_ctx;
+       u32 clen;
 
        if (ctx->ulen == 0)
                return false;
 
-       ctx->clen = wimlib_compress(ctx->udata, ctx->ulen,
-                                   ctx->cdata, ctx->ulen - 1,
-                                   ctx->compressor);
+       clen = wimlib_compress(ctx->udata, ctx->ulen,
+                              ctx->cdata, ctx->ulen - 1,
+                              ctx->compressor);
 
-       if (ctx->clen) {
+       if (clen) {
                *cdata_ret = ctx->cdata;
-               *csize_ret = ctx->clen;
+               *csize_ret = clen;
        } else {
                *cdata_ret = ctx->udata;
                *csize_ret = ctx->ulen;
@@ -107,6 +107,8 @@ new_serial_chunk_compressor(int out_ctype, u32 out_chunk_size,
        struct serial_chunk_compressor *ctx;
        int ret;
 
+       wimlib_assert(out_chunk_size > 0);
+
        ctx = CALLOC(1, sizeof(*ctx));
        if (ctx == NULL)
                return WIMLIB_ERR_NOMEM;
@@ -118,7 +120,6 @@ new_serial_chunk_compressor(int out_ctype, u32 out_chunk_size,
        ctx->base.submit_chunk = serial_chunk_compressor_submit_chunk;
        ctx->base.get_chunk = serial_chunk_compressor_get_chunk;
 
-
        ret = wimlib_create_compressor(out_ctype, out_chunk_size,
                                       NULL, &ctx->compressor);
        if (ret)