diff options
author | Michael Meskes <meskes@postgresql.org> | 2007-02-06 09:41:52 +0000 |
---|---|---|
committer | Michael Meskes <meskes@postgresql.org> | 2007-02-06 09:41:52 +0000 |
commit | 7fd912e854b502a787de1830085dfbae6043b0d0 (patch) | |
tree | 0010ebf9cfa60d77c1dd48c3f12d28b799dca560 | |
parent | 2c39737843bd7d6d82e73618cfd4bf3f9c78806a (diff) | |
download | postgresql-7fd912e854b502a787de1830085dfbae6043b0d0.tar.gz postgresql-7fd912e854b502a787de1830085dfbae6043b0d0.zip |
Backported va_list handling cleanup
-rw-r--r-- | src/interfaces/ecpg/ecpglib/execute.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index c14a1c3c489..77bb26cc345 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.43.2.8 2006/08/18 16:33:29 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.43.2.9 2007/02/06 09:41:52 meskes Exp $ */ /* * The aim is to get a simpler inteface to the database routines. @@ -120,8 +120,6 @@ ECPGget_variable(va_list APREF, enum ECPGttype type, struct variable * var, bool } } -#undef APREF - /* * create a list of variables * The variables are listed with input variables preceding outputvariables @@ -141,7 +139,7 @@ ECPGget_variable(va_list APREF, enum ECPGttype type, struct variable * var, bool * ind_offset - indicator offset */ static bool -create_statement(int lineno, int compat, int force_indicator, struct connection * connection, struct statement ** stmt, const char *query, va_list ap) +create_statement(int lineno, int compat, int force_indicator, struct connection * connection, struct statement ** stmt, const char *query, va_list APREF) { struct variable **list = &((*stmt)->inlist); enum ECPGttype type; @@ -157,7 +155,7 @@ create_statement(int lineno, int compat, int force_indicator, struct connection list = &((*stmt)->inlist); - type = va_arg(ap, enum ECPGttype); + type = va_arg(APREF, enum ECPGttype); while (type != ECPGt_EORT) { @@ -171,11 +169,7 @@ create_statement(int lineno, int compat, int force_indicator, struct connection if (!(var = (struct variable *) ECPGalloc(sizeof(struct variable), lineno))) return false; -#if defined(__GNUC__) && (defined (__powerpc__) || defined(__amd64__) || defined(__x86_64__)) ECPGget_variable(ap, type, var, true); -#else - ECPGget_variable(&ap, type, var, true); -#endif /* if variable is NULL, the statement hasn't been prepared */ if (var->pointer == NULL) @@ -193,7 +187,7 @@ create_statement(int lineno, int compat, int force_indicator, struct connection ptr->next = var; } - type = va_arg(ap, enum ECPGttype); + type = va_arg(APREF, enum ECPGttype); } return (true); @@ -1472,7 +1466,11 @@ ECPGdo(int lineno, int compat, int force_indicator, const char *connection_name, /* construct statement in our own structure */ va_start(args, query); +#if defined(__GNUC__) && (defined (__powerpc__) || defined(__amd64__) || defined(__x86_64__)) if (create_statement(lineno, compat, force_indicator, con, &stmt, query, args) == false) +#else + if (create_statement(lineno, compat, force_indicator, con, &stmt, query, &args) == false) +#endif { setlocale(LC_NUMERIC, oldlocale); ECPGfree(oldlocale); |