On Tue, Dec 11, 2012 at 5:18 AM, Boszormenyi Zoltan <z...@cybertec.at> wrote: > 2012-12-11 12:45 keltezéssel, Simon Riggs írta: > >> On 11 December 2012 10:39, Marko Kreen <mark...@gmail.com> wrote: >>> >>> On Tue, Dec 11, 2012 at 6:59 AM, Josh Kupershmidt <schmi...@gmail.com> >>> wrote: >>>> >>>> Would it be crazy to add an "already_freed" flag to the pg_result >>>> struct which PQclear() would set, or some equivalent safety mechanism, >>>> to avoid this hassle for users? >>> >>> Such mechanism already exist - you just need to set >>> your PGresult pointer to NULL after each PQclear(). >> >> So why doesn't PQclear() do that? > > > Because then PQclear() would need a ** not a *. Do you want its > interface changed for 9.3 and break compatibility with previous versions? > Same can be said for e.g. PQfinish(). Calling it again crashes your client, > as I have recently discovered when I added atexit() functions that > does "if (conn) PQfinish(conn);" and the normal flow didn't do conn = NULL; > after it was done.
Ah, well. I guess using a macro like: #define SafeClear(res) do {PQclear(res); res = NULL;} while (0); will suffice for me. Josh -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers