Remove incorrect (and ill-advised anyway) pfree's in pg_convert_from and
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 9 Jan 2008 23:43:54 +0000 (23:43 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 9 Jan 2008 23:43:54 +0000 (23:43 +0000)
pg_convert_to.  Per bug #3866 from Andrew Gilligan.

src/backend/utils/mb/mbutils.c

index 3cbd05f41a0726ffaf97516b8775cb803cc539e7..4d8043dfc83016e9ba2e778be38fb966ff722425 100644 (file)
@@ -4,7 +4,7 @@
  * (currently mule internal code (mic) is used)
  * Tatsuo Ishii
  *
- * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.68 2007/11/15 21:14:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.69 2008/01/09 23:43:54 tgl Exp $
  */
 #include "postgres.h"
 
@@ -301,8 +301,8 @@ pg_convert_to(PG_FUNCTION_ARGS)
 {
    Datum       string = PG_GETARG_DATUM(0);
    Datum       dest_encoding_name = PG_GETARG_DATUM(1);
-   Datum       src_encoding_name = DirectFunctionCall1(
-                           namein, CStringGetDatum(DatabaseEncoding->name));
+   Datum       src_encoding_name = DirectFunctionCall1(namein,
+                                   CStringGetDatum(DatabaseEncoding->name));
    Datum       result;
 
    /*
@@ -310,11 +310,8 @@ pg_convert_to(PG_FUNCTION_ARGS)
     * text argument here, relying on the fact that they are both in fact
     * varlena types, and thus structurally identical.
     */
-   result = DirectFunctionCall3(
-                 pg_convert, string, src_encoding_name, dest_encoding_name);
-
-   /* free memory allocated by namein */
-   pfree((void *) src_encoding_name);
+   result = DirectFunctionCall3(pg_convert, string,
+                                src_encoding_name, dest_encoding_name);
 
    PG_RETURN_BYTEA_P(result);
 }
@@ -329,15 +326,12 @@ pg_convert_from(PG_FUNCTION_ARGS)
 {
    Datum       string = PG_GETARG_DATUM(0);
    Datum       src_encoding_name = PG_GETARG_DATUM(1);
-   Datum       dest_encoding_name = DirectFunctionCall1(
-                           namein, CStringGetDatum(DatabaseEncoding->name));
+   Datum       dest_encoding_name = DirectFunctionCall1(namein,
+                                   CStringGetDatum(DatabaseEncoding->name));
    Datum       result;
 
-   result = DirectFunctionCall3(
-                 pg_convert, string, src_encoding_name, dest_encoding_name);
-
-   /* free memory allocated by namein */
-   pfree((void *) src_encoding_name);
+   result = DirectFunctionCall3(pg_convert, string,
+                                src_encoding_name, dest_encoding_name);
 
    /*
     * pg_convert returns a bytea, which we in turn return as text, relying on