> dbase.c: In function 'db_unixodbc_close_impl':
> dbase.c:261:32: error: passing argument 2 of 'db_do_close' from incompatible pointer type [-Wincompatible-pointer-types]
> 261 | return db_do_close(_h, db_unixodbc_free_connection);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> | |
> | void (*)(struct my_con *)
> In file included from val.h:34,
> from dbase.c:33:
> ../../lib/srdb1/db.h:495:40: note: expected 'void (*)(struct pool_con *)' but argument is of type 'void (*)(struct my_con *)'
> 495 | void db_do_close(db1_con_t *_h, void (*free_connection)(struct pool_con *));
> | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> make[2]: *** [../../Makefile.rules:101: dbase.o] Error 1
related #4064
(cherry picked from commit
7f24bc09863220b4c14e2046708c10ff0891c038)
Gbp-Pq: Topic upstream
Gbp-Pq: Name 0002-db_unixodbc-fix-incompatible-pointer-types-warning.patch
/*
* Close the connection and release memory
*/
-void db_unixodbc_free_connection(struct my_con *con)
+void db_unixodbc_free_connection(struct pool_con *con)
{
+ struct my_con *_c;
+
if(!con)
return;
- SQLFreeHandle(SQL_HANDLE_ENV, con->env);
- SQLDisconnect(con->dbc);
- SQLFreeHandle(SQL_HANDLE_DBC, con->dbc);
- pkg_free(con);
+ _c = (struct my_con *)con;
+ SQLFreeHandle(SQL_HANDLE_ENV, _c->env);
+ SQLDisconnect(_c->dbc);
+ SQLFreeHandle(SQL_HANDLE_DBC, _c->dbc);
+ pkg_free(_c);
}
/*
* Close the connection and release memory
*/
-void db_unixodbc_free_connection(struct my_con *con);
+void db_unixodbc_free_connection(struct pool_con *con);
char *db_unixodbc_build_conn_str(const struct db_id *id, char *buf);