]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add PQfreemem() call for Win32.
authorBruce Momjian <bruce@momjian.us>
Sat, 22 Mar 2003 03:29:06 +0000 (03:29 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 22 Mar 2003 03:29:06 +0000 (03:29 +0000)
doc/src/sgml/libpq.sgml
src/interfaces/libpq/fe-exec.c
src/interfaces/libpq/libpq-fe.h

index 235a8cbc2e24c73b940c3a81a39020106ef0bf27..3c9bc9cd2d7f026c1ccb7cf63ae534ad8d9e4542 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.113 2003/03/20 06:23:30 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.114 2003/03/22 03:29:05 momjian Exp $
 -->
 
  <chapter id="libpq">
@@ -1151,6 +1151,25 @@ unsigned char *PQunescapeBytea(const unsigned char *from, size_t *to_length);
   </para>
   </listitem>
   </varlistentry>
+
+  <varlistentry>
+  <term><function>PQfreemem</function></term>
+  <listitem>
+  <para>
+   Frees memory allocated by <application>libpq</>
+<synopsis>
+void PQfreemem(void *ptr);
+</synopsis>
+</para>
+
+<para>
+   Frees memory allocated by <application>libpq</>, particularly
+   <function>PQescapeBytea</function> and <function>PQunescapeBytea</function>.
+   It is needed by Win32, which can not free memory across
+   DLL's, unless multithreaded DLL's (/MD in VC6) are used.
+  </para>
+  </listitem>
+  </varlistentry>
   </variablelist>
    
  </sect2>
index 878da94cff550248bc5c4514e45fa7b3ae1fca42..5b8a6d3ef04de6478a8ecddbe33469c857106f2d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.126 2003/03/10 22:28:21 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.127 2003/03/22 03:29:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -284,6 +284,19 @@ PQunescapeBytea(const unsigned char *strtext, size_t *retbuflen)
        return buffer;
 }
 
+
+/*
+ *             PQfreemem - safely frees memory allocated
+ *
+ * Needed mostly by Win32, unless multithreaded DLL (/MD in VC6)
+ * Used for freeing memory from PQescapeByte()a/PQunescapeBytea()
+ */
+void PQfreemem(void *ptr)
+{
+       free(ptr);
+}
+
+
 /* ----------------
  * Space management for PGresult.
  *
index 8114d6e78ea7f72d24fbd5e6ee680a028d1fbaa6..ce9132deb4bffa499cb356705d86ed610c95501f 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: libpq-fe.h,v 1.89 2003/03/20 06:23:30 momjian Exp $
+ * $Id: libpq-fe.h,v 1.90 2003/03/22 03:29:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -254,6 +254,7 @@ extern unsigned char *PQescapeBytea(const unsigned char *bintext, size_t binlen,
                          size_t *bytealen);
 extern unsigned char *PQunescapeBytea(const unsigned char *strtext,
                                size_t *retbuflen);
+extern void PQfreemem(void *ptr);
 
 
 /* Simple synchronous query */