1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

Bug#8983 one place that isn't strict-aliasing-safe

- Backport fix from 5.0


sql/sql_prepare.cc:
  Avoid problems with -no-strict-aliasing in gcc 4.0+
This commit is contained in:
unknown
2007-02-06 14:07:40 +01:00
parent 80818def47
commit 1d2d9a033d

View File

@@ -1783,8 +1783,9 @@ static void reset_stmt_params(Prepared_statement *stmt)
packet_length Query string length, including terminator character.
*/
void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
void mysql_stmt_execute(THD *thd, char *packet_arg, uint packet_length)
{
uchar* packet= (uchar*)packet_arg; // gcc 4.0 stgrict-aliasing
ulong stmt_id= uint4korr(packet);
/*
Query text for binary log, or empty string if the query is not put into
@@ -1792,7 +1793,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
*/
String expanded_query;
#ifndef EMBEDDED_LIBRARY
uchar *packet_end= (uchar *) packet + packet_length - 1;
uchar *packet_end= packet + packet_length - 1;
#endif
Prepared_statement *stmt;
DBUG_ENTER("mysql_stmt_execute");
@@ -1818,9 +1819,9 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
#ifndef EMBEDDED_LIBRARY
if (stmt->param_count)
{
uchar *null_array= (uchar *) packet;
if (setup_conversion_functions(stmt, (uchar **) &packet, packet_end) ||
stmt->set_params(stmt, null_array, (uchar *) packet, packet_end,
uchar *null_array= packet;
if (setup_conversion_functions(stmt, &packet, packet_end) ||
stmt->set_params(stmt, null_array, packet, packet_end,
&expanded_query))
goto set_params_data_err;
}