Fixed bug in Item_func_compress::val_str() on MacOS X (bigendian); the length

was not properly stored in the buffer.


sql/item_strfunc.cc:
  Made it work on MacOS X (bigendian) where int4store is a macro that expands
  the arguments several times.
  It's possible this should be done differently, like not side-stepping the
  String methods the way it's done here, or fixing String::c_ptr(), but this
  simple fix was the quickest way.
This commit is contained in:
unknown 2003-04-30 13:10:53 +02:00
parent 4ceb257849
commit 4a506d6e23

View file

@ -2955,8 +2955,9 @@ String *Item_func_compress::val_str(String *str)
null_value= 1;
return 0;
}
int4store(buffer.c_ptr(),res->length() & 0x3FFFFFFF);
char *tmp= buffer.c_ptr(); // int4store is a macro; avoid side effects
int4store(tmp, res->length() & 0x3FFFFFFF);
/* This is for the stupid char fields which trim ' ': */
char *last_char= ((char*)body)+new_size-1;