From 5aeebd64ee5435f01d42274c295b82b633a0f0c4 Mon Sep 17 00:00:00 2001
From: unknown <ram@mysql.r18.ru>
Date: Fri, 4 Apr 2003 14:09:08 +0500
Subject: [PATCH] Fixed envelope() function.

---
 sql/item_strfunc.cc | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 31ae5a3d437..f60a1569ddf 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -2624,20 +2624,21 @@ String *Item_func_geometry_type::val_str(String *str)
 
 String *Item_func_envelope::val_str(String *str)
 {
-  String *res= args[0]->val_str(str);
+  String arg_val;
+  String *swkb= args[0]->val_str(&arg_val);
   Geometry geom;
   
   if ((null_value= args[0]->null_value ||
-		   geom.create_from_wkb(res->ptr() + SRID_SIZE,
-					res->length() - SRID_SIZE)))
+		   geom.create_from_wkb(swkb->ptr() + SRID_SIZE,
+					swkb->length() - SRID_SIZE)))
     return 0;
   
-  uint32 srid= uint4korr(res->ptr());
-  if (res->reserve(SRID_SIZE, 512))
+  uint32 srid= uint4korr(swkb->ptr());
+  str->length(0);
+  if (str->reserve(SRID_SIZE, 512))
     return 0;
-  res->length(0);
-  res->q_append(srid);
-  return (null_value= geom.envelope(res)) ? 0 : res;
+  str->q_append(srid);
+  return (null_value= geom.envelope(str)) ? 0 : str;
 }
 
 
-- 
2.30.9