aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2012-03-02 22:30:01 +0200
committerPeter Eisentraut <peter_e@gmx.net>2012-03-02 22:30:01 +0200
commitd923125b77c5d698bb8107a533a21627582baa43 (patch)
treedf1511da4e4e6b1edda06c57deeb282c81de5260
parent8e5f4300fdcadac1bfd72a7d1a0225030226c800 (diff)
downloadpostgresql-d923125b77c5d698bb8107a533a21627582baa43.tar.gz
postgresql-d923125b77c5d698bb8107a533a21627582baa43.zip
Fix incorrect uses of gzFile
gzFile is already a pointer, so code like gzFile *handle = gzopen(...) is wrong. This used to pass silently because gzFile used to be defined as void*, and you can assign a void* to a void**. But somewhere between zlib versions 1.2.3.4 and 1.2.6, the definition of gzFile was changed to struct gzFile_s *, and with that new definition this usage causes compiler warnings. So remove all those extra pointer decorations. There is a related issue in pg_backup_archiver.h, where FILE *FH; /* General purpose file handle */ is used throughout pg_dump as sometimes a real FILE* and sometimes a gzFile handle, which also causes warnings now. This is not yet fixed here, because it might need more code restructuring.
-rw-r--r--src/bin/pg_basebackup/pg_basebackup.c4
-rw-r--r--src/bin/pg_dump/pg_backup_files.c2
-rw-r--r--src/bin/pg_dump/pg_backup_tar.c11
3 files changed, 7 insertions, 10 deletions
diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index b39d2e7bf38..bf88726f326 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -82,7 +82,7 @@ static bool segment_callback(XLogRecPtr segendpos, uint32 timeline);
#ifdef HAVE_LIBZ
static const char *
-get_gz_error(gzFile *gzf)
+get_gz_error(gzFile gzf)
{
int errnum;
const char *errmsg;
@@ -450,7 +450,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum)
FILE *tarfile = NULL;
#ifdef HAVE_LIBZ
- gzFile *ztarfile = NULL;
+ gzFile ztarfile = NULL;
#endif
if (PQgetisnull(res, rownum, 0))
diff --git a/src/bin/pg_dump/pg_backup_files.c b/src/bin/pg_dump/pg_backup_files.c
index 71bace0eab7..a7fd91d1c53 100644
--- a/src/bin/pg_dump/pg_backup_files.c
+++ b/src/bin/pg_dump/pg_backup_files.c
@@ -60,7 +60,7 @@ typedef struct
typedef struct
{
#ifdef HAVE_LIBZ
- gzFile *FH;
+ gzFile FH;
#else
FILE *FH;
#endif
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c
index 4952f5a15d3..4823edec7fe 100644
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -58,16 +58,13 @@ static void _EndBlobs(ArchiveHandle *AH, TocEntry *te);
#define K_STD_BUF_SIZE 1024
+typedef struct
+{
#ifdef HAVE_LIBZ
- /* typedef gzFile ThingFile; */
-typedef FILE ThingFile;
+ gzFile zFH;
#else
-typedef FILE ThingFile;
+ FILE *zFH;
#endif
-
-typedef struct
-{
- ThingFile *zFH;
FILE *nFH;
FILE *tarFH;
FILE *tmpFH;