mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Add do { ... } while (0) to more bad macros.
This commit is contained in:
@ -27,7 +27,11 @@
|
||||
#else /* not HAVE_DLOPEN */
|
||||
|
||||
#define pg_dlsym(handle, funcname) ((PGFunction) dld_get_func((funcname)))
|
||||
#define pg_dlclose(handle) ({ dld_unlink_by_file(handle, 1); free(handle); })
|
||||
#define pg_dlclose(handle) \
|
||||
do { \
|
||||
dld_unlink_by_file(handle, 1); \
|
||||
free(handle); \
|
||||
} while (0)
|
||||
|
||||
#endif /* not HAVE_DLOPEN */
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: linux.h,v 1.12 2001/05/14 21:45:53 petere Exp $
|
||||
* $Id: linux.h,v 1.13 2001/10/25 01:29:37 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -23,10 +23,15 @@
|
||||
|
||||
#ifndef HAVE_DLD_H
|
||||
#define pg_dlsym(handle, funcname) (NULL)
|
||||
#define pg_dlclose(handle) ({})
|
||||
#define pg_dlclose(handle) {}
|
||||
#else
|
||||
#define pg_dlsym(handle, funcname) ((PGFunction) dld_get_func((funcname)))
|
||||
#define pg_dlclose(handle) ({ dld_unlink_by_file(handle, 1); free(handle); })
|
||||
#define pg_dlclose(handle) \
|
||||
do { \
|
||||
dld_unlink_by_file(handle, 1); \
|
||||
free(handle); \
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
|
||||
#else /* HAVE_DLOPEN */
|
||||
|
@ -129,7 +129,12 @@ static int pg_isprint(int c);
|
||||
#ifdef REDEBUG
|
||||
#define SP(t, s, c) print(m, t, s, c, stdout)
|
||||
#define AT(t, p1, p2, s1, s2) at(m, t, p1, p2, s1, s2)
|
||||
#define NOTE(str) { if (m->eflags®_TRACE) printf("=%s\n", (str)); }
|
||||
#define NOTE(str) \
|
||||
do { \
|
||||
if (m->eflags®_TRACE) \
|
||||
printf("=%s\n", (str)); \
|
||||
} while (0)
|
||||
|
||||
#else
|
||||
#define SP(t, s, c) /* nothing */
|
||||
#define AT(t, p1, p2, s1, s2) /* nothing */
|
||||
|
@ -114,10 +114,19 @@ static int nope = 0; /* for use in asserts; shuts lint up */
|
||||
#define ASSIGN(d, s) memcpy(d, s, m->g->nstates)
|
||||
#define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0)
|
||||
#define STATEVARS int vn; char *space
|
||||
#define STATESETUP(m, nv) { (m)->space = malloc((nv)*(m)->g->nstates); \
|
||||
if ((m)->space == NULL) return(REG_ESPACE); \
|
||||
(m)->vn = 0; }
|
||||
#define STATETEARDOWN(m) { free((m)->space); }
|
||||
#define STATESETUP(m, nv) \
|
||||
do { \
|
||||
(m)->space = malloc((nv)*(m)->g->nstates); \
|
||||
if ((m)->space == NULL) \
|
||||
return(REG_ESPACE); \
|
||||
(m)->vn = 0; \
|
||||
} while (0)
|
||||
|
||||
#define STATETEARDOWN(m) \
|
||||
do { \
|
||||
free((m)->space); \
|
||||
} while (0)
|
||||
|
||||
#define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates])
|
||||
#define onestate int
|
||||
#define INIT(o, n) ((o) = (n))
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* ----------
|
||||
* pg_lzcompress.c -
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.11 2001/03/22 06:16:17 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.12 2001/10/25 01:29:37 momjian Exp $
|
||||
*
|
||||
* This is an implementation of LZ compression for PostgreSQL.
|
||||
* It uses a simple history table and generates 2-3 byte tags
|
||||
@ -283,7 +283,8 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
* Adds a new entry to the history table.
|
||||
* ----------
|
||||
*/
|
||||
#define pglz_hist_add(_hs,_he,_hn,_s,_e) { \
|
||||
#define pglz_hist_add(_hs,_he,_hn,_s,_e) \
|
||||
do { \
|
||||
int __hindex = pglz_hist_idx((_s),(_e)); \
|
||||
if ((_he)[(_hn)].prev == NULL) { \
|
||||
(_hs)[__hindex] = (_he)[(_hn)].next; \
|
||||
@ -303,7 +304,7 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
if (++(_hn) >= PGLZ_HISTORY_SIZE) { \
|
||||
(_hn) = 0; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
|
||||
/* ----------
|
||||
@ -312,7 +313,8 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
* Outputs the last and allocates a new control byte if needed.
|
||||
* ----------
|
||||
*/
|
||||
#define pglz_out_ctrl(__ctrlp,__ctrlb,__ctrl,__buf) { \
|
||||
#define pglz_out_ctrl(__ctrlp,__ctrlb,__ctrl,__buf) \
|
||||
do { \
|
||||
if ((__ctrl & 0xff) == 0) \
|
||||
{ \
|
||||
*__ctrlp = __ctrlb; \
|
||||
@ -320,7 +322,7 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
__ctrlb = 0; \
|
||||
__ctrl = 1; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
|
||||
/* ----------
|
||||
@ -330,11 +332,12 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
* appropriate control bit.
|
||||
* ----------
|
||||
*/
|
||||
#define pglz_out_literal(_ctrlp,_ctrlb,_ctrl,_buf,_byte) { \
|
||||
#define pglz_out_literal(_ctrlp,_ctrlb,_ctrl,_buf,_byte) \
|
||||
do { \
|
||||
pglz_out_ctrl(_ctrlp,_ctrlb,_ctrl,_buf); \
|
||||
*_buf++ = (unsigned char)(_byte); \
|
||||
_ctrl <<= 1; \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
|
||||
/* ----------
|
||||
@ -345,7 +348,8 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
* appropriate control bit.
|
||||
* ----------
|
||||
*/
|
||||
#define pglz_out_tag(_ctrlp,_ctrlb,_ctrl,_buf,_len,_off) { \
|
||||
#define pglz_out_tag(_ctrlp,_ctrlb,_ctrl,_buf,_len,_off) \
|
||||
do { \
|
||||
pglz_out_ctrl(_ctrlp,_ctrlb,_ctrl,_buf); \
|
||||
_ctrlb |= _ctrl; \
|
||||
_ctrl <<= 1; \
|
||||
@ -360,7 +364,7 @@ static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE];
|
||||
_buf[1] = (unsigned char)((_off) & 0xff); \
|
||||
_buf += 2; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
|
||||
/* ----------
|
||||
|
@ -817,7 +817,10 @@ do { \
|
||||
* Terminate the stmt_with_params string with NULL.
|
||||
*----------
|
||||
*/
|
||||
#define CVT_TERMINATE { new_statement[npos] = '\0'; }
|
||||
#define CVT_TERMINATE \
|
||||
do { \
|
||||
new_statement[npos] = '\0'; \
|
||||
} while (0)
|
||||
|
||||
/*----------
|
||||
* Append a data.
|
||||
@ -1434,7 +1437,7 @@ copy_statement_with_parameters(StatementClass *stmt)
|
||||
/* error */
|
||||
stmt->errormsg = "Unrecognized C_parameter type in copy_statement_with_parameters";
|
||||
stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
|
||||
CVT_TERMINATE /* just in case */
|
||||
CVT_TERMINATE; /* just in case */
|
||||
SC_log_error(func, "", stmt);
|
||||
return SQL_ERROR;
|
||||
}
|
||||
@ -1684,7 +1687,7 @@ copy_statement_with_parameters(StatementClass *stmt)
|
||||
} /* end, for */
|
||||
|
||||
/* make sure new_statement is always null-terminated */
|
||||
CVT_TERMINATE
|
||||
CVT_TERMINATE;
|
||||
|
||||
if (conn->DriverToDataSource != NULL)
|
||||
{
|
||||
|
@ -8,7 +8,11 @@
|
||||
#include <sys/types.h>
|
||||
|
||||
#define MEM_ALLOC(size) (malloc((size_t)(size)))
|
||||
#define MEM_FREE(ptr) {if(ptr) free(ptr);}
|
||||
#define MEM_FREE(ptr) \
|
||||
do { \
|
||||
if(ptr) \
|
||||
free(ptr); \
|
||||
} while (0)
|
||||
|
||||
#define STRCPY(t, s) (strcpy((char*)(t), (char*)(s)))
|
||||
#define STRNCPY(t,s,n) (strncpy((char*)(t), (char*)(s), (size_t)(n)))
|
||||
|
@ -14,6 +14,7 @@ do
|
||||
was_define = "Y"
|
||||
else
|
||||
was_define = "N"
|
||||
}' $FILE
|
||||
}' "$FILE"
|
||||
grep -on '^#define.*{' "$FILE" | grep -v 'do[ ]*{'
|
||||
done
|
||||
|
||||
|
Reference in New Issue
Block a user