diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-01-13 15:50:02 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-01-13 15:50:02 +0100 |
commit | 4f435bddfd44d40999f88685c61cc04e319d8d6c (patch) | |
tree | f9d0655a0d901b87f918a736741144b502cba3f6 /sql/gcalc_tools.cc | |
parent | 8c2bcdf85ff753bceeb5b235f3605e348e6f9e1d (diff) | |
parent | 6ca4ca7d37fed3b3da18666768de6a2f8c34bc7b (diff) | |
download | mariadb-git-4f435bddfd44d40999f88685c61cc04e319d8d6c.tar.gz |
5.3 merge
Diffstat (limited to 'sql/gcalc_tools.cc')
-rw-r--r-- | sql/gcalc_tools.cc | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/sql/gcalc_tools.cc b/sql/gcalc_tools.cc index 187acbacc4c..864437401b7 100644 --- a/sql/gcalc_tools.cc +++ b/sql/gcalc_tools.cc @@ -650,15 +650,6 @@ Gcalc_operation_reducer(Gcalc_function *fn, modes mode, size_t blk_size) : } -#ifdef TMP_BLOCK -void Gcalc_operation_reducer::res_point::set(const Gcalc_scan_iterator *si) -{ - if ((intersection_point= si->intersection_step())) - ii= si->get_cur_ii(); - else - pi= si->get_cur_pi(); -} -#endif /*TMP_BLOCK*/ void Gcalc_operation_reducer::res_point::set(const Gcalc_scan_iterator *si) { intersection_point= si->intersection_step(); @@ -1362,6 +1353,10 @@ int Gcalc_operation_reducer::get_result(Gcalc_result_receiver *storage) GCALC_DBUG_ENTER("Gcalc_operation_reducer::get_result"); *m_res_hook= NULL; + /* This is to workaround an old gcc's bug */ + if (m_res_hook == (Gcalc_dyn_list::Item **) &m_result) + goto done; + while (m_result) { Gcalc_function::shape_type shape= m_result->type; @@ -1412,6 +1407,7 @@ int Gcalc_operation_reducer::get_result(Gcalc_result_receiver *storage) } } +done: m_res_hook= (Gcalc_dyn_list::Item **)&m_result; storage->done(); GCALC_DBUG_RETURN(0); |