From e3285f32e8262d1de69ddcd1d5a757a081be1eb4 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 19 Feb 2007 22:06:23 +0000
Subject: [PATCH] Update PQfree() documentation to be clearer, backpatch to
 8.2.X.

---
 doc/src/sgml/libpq.sgml | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 5b8ef438b36..a7be065ec67 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.231 2007/02/16 16:37:29 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.232 2007/02/19 22:06:23 momjian Exp $ -->
 
  <chapter id="libpq">
   <title><application>libpq</application> - C Library</title>
@@ -2617,9 +2617,13 @@ void PQfreemem(void *ptr);
    <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()</>.
+   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>
-- 
GitLab