diff options
Diffstat (limited to 'src/backend/utils/adt/pg_lzcompress.c')
-rw-r--r-- | src/backend/utils/adt/pg_lzcompress.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/utils/adt/pg_lzcompress.c b/src/backend/utils/adt/pg_lzcompress.c index f4e6ac5be37..493b4e64465 100644 --- a/src/backend/utils/adt/pg_lzcompress.c +++ b/src/backend/utils/adt/pg_lzcompress.c @@ -1,7 +1,7 @@ /* ---------- * pg_lzcompress.c - * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.5 2000/05/30 00:49:53 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.6 2000/07/03 23:09:52 wieck Exp $ * * This is an implementation of LZ compression for PostgreSQL. * It uses a simple history table and generates 2-3 byte tags @@ -582,11 +582,15 @@ pglz_compress(char *source, int slen, PGLZ_Header *dest, PGLZ_Strategy *strategy * ---------- */ if (do_compress) - return (dest->varsize = result_size + sizeof(PGLZ_Header)); + { + dest->varsize = result_size + sizeof(PGLZ_Header); + return VARATT_SIZE(dest); + } else { memcpy(((char *) dest) + sizeof(PGLZ_Header), source, slen); - return (dest->varsize = slen + sizeof(PGLZ_Header)); + dest->varsize = slen + sizeof(PGLZ_Header); + return VARATT_SIZE(dest); } } @@ -609,10 +613,10 @@ pglz_decompress(PGLZ_Header *source, char *dest) int32 off; dp = ((unsigned char *) source) + sizeof(PGLZ_Header); - dend = ((unsigned char *) source) + source->varsize; + dend = ((unsigned char *) source) + VARATT_SIZE(source); bp = (unsigned char *) dest; - if (source->varsize == source->rawsize + sizeof(PGLZ_Header)) + if (VARATT_SIZE(source) == source->rawsize + sizeof(PGLZ_Header)) { memcpy(dest, dp, source->rawsize); return source->rawsize; |