Backported va_list handling cleanup
authorMichael Meskes <[email protected]>
Tue, 6 Feb 2007 09:42:08 +0000 (09:42 +0000)
committerMichael Meskes <[email protected]>
Tue, 6 Feb 2007 09:42:08 +0000 (09:42 +0000)
src/interfaces/ecpg/ecpglib/execute.c

index 08ea09369ef79cda79480f96e51201120740e6c3..1baf577016ead67aaced87fdbbb2ac521371ace3 100644 (file)
@@ -127,7 +127,6 @@ ECPGget_variable(va_list APREF, enum ECPGttype type, struct variable * var, bool
                        var->ind_varcharsize = 0;
        }
 }
-#undef APREF
 
 /*
  * create a list of variables
@@ -148,7 +147,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;
@@ -164,7 +163,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)
        {
@@ -178,11 +177,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)
@@ -200,7 +195,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);
@@ -1482,7 +1477,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);