diff --git a/src/cairo-lzw.c b/src/cairo-lzw.c index bb764f3a8..a0d737e25 100644 --- a/src/cairo-lzw.c +++ b/src/cairo-lzw.c @@ -460,14 +460,14 @@ cl_hash (LZWCodecState* sp) */ void * -_cairo_compress_lzw (void *data, unsigned long data_size, unsigned long *compressed_size) +_cairo_lzw_compress (void *data, unsigned long *data_size_in_out) { LZWCodecState state; if (!LZWSetupEncode (&state)) goto bail0; - state.out_buffer_size = data_size/4; + state.out_buffer_size = *data_size_in_out/4; /* We need *some* space at least */ if (state.out_buffer_size < 256) state.out_buffer_size = 256; @@ -479,14 +479,14 @@ _cairo_compress_lzw (void *data, unsigned long data_size, unsigned long *compres state.out_buffer_bytes = 0; LZWPreEncode (&state); - if (!LZWEncode (&state, data, data_size)) + if (!LZWEncode (&state, data, *data_size_in_out)) goto bail2; if (!LZWPostEncode(&state)) goto bail2; LZWFreeEncode(&state); - *compressed_size = state.out_buffer_bytes; + *data_size_in_out = state.out_buffer_bytes; return state.out_buffer; bail2: diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index ff4f0e8c4..a646d45ba 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -724,7 +724,8 @@ emit_image (cairo_ps_surface_t *surface, } } - compressed = _cairo_compress_lzw (rgb, rgb_size, &compressed_size); + compressed_size = rgb_size; + compressed = _cairo_lzw_compress (rgb, &compressed_size); if (compressed == NULL) { status = CAIRO_STATUS_NO_MEMORY; goto bail2; diff --git a/src/cairoint.h b/src/cairoint.h index d5abfc79a..fdb8fc5df 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -2146,9 +2146,7 @@ _cairo_output_stream_write_base85_string (cairo_output_stream_t *stream, size_t length); cairo_private void * -_cairo_compress_lzw (void *data, - unsigned long data_size, - unsigned long *compressed_size); +_cairo_lzw_compress (void *data, unsigned long *data_size_in_out); cairo_private cairo_status_t _cairo_output_stream_vprintf (cairo_output_stream_t *stream,