I have updated the PQfree documentation; patch attached. Backpatched to 8.2.X.
--------------------------------------------------------------------------- Zeugswetter Andreas ADI SD wrote: > > > > future for some reason. (the doc for the other functions say you > have to > > > use PQfreemem without mentioning any exceptions) > > > > > > Thoughts? Rip out or update? > > > > Are you saying that almost all Win32 binaries and libraries now can > free > > across DLLs? > > You can under very narrow conditions. You need to force code generation > for "Multithreaded DLL" run-time libraries (e.g. in VC6 msvcrt.dll) > for all exe's and dll's. > This is bad for debugging, memory checkers and probably impossible > when using different compilers. > So you really need PQfreemem. > > Andreas -- Bruce Momjian <[EMAIL PROTECTED]> http://momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/libpq.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v retrieving revision 1.231 diff -c -c -r1.231 libpq.sgml *** doc/src/sgml/libpq.sgml 16 Feb 2007 16:37:29 -0000 1.231 --- doc/src/sgml/libpq.sgml 19 Feb 2007 22:04:28 -0000 *************** *** 2617,2625 **** <function>PQescapeBytea</function>, <function>PQunescapeBytea</function>, and <function>PQnotifies</function>. ! It is needed by Microsoft Windows, which cannot free memory across ! DLLs, unless multithreaded DLLs (<option>/MD</option> in VC6) are used. ! On other platforms, this function is the same as the standard library function <function>free()</>. </para> </listitem> </varlistentry> --- 2617,2629 ---- <function>PQescapeBytea</function>, <function>PQunescapeBytea</function>, and <function>PQnotifies</function>. ! It is particularly important that this function, rather than ! <function>free()</>, be used on Microsoft Windows. This is because ! allocating memory in a DLL and releasing it in the application works ! only if multithreaded/single-threaded, release/debug, and static/dynamic ! flags are the same for the DLL and the application. On non-Microsoft ! Windows platforms, this function is the same as the standard library ! function <function>free()</>. </para> </listitem> </varlistentry>
---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq