Kouhei Sutou
null+****@clear*****
Mon Oct 13 10:01:09 JST 2014
Kouhei Sutou 2014-10-13 10:01:09 +0900 (Mon, 13 Oct 2014) New Revision: 301e1b99c6bc40008634911c2f8b66048c440395 https://github.com/mroonga/mroonga/commit/301e1b99c6bc40008634911c2f8b66048c440395 Message: mariadb55: don't use std::string Because MariaDB 5.5.39 says: In file included from /home/travis/build/mroonga/mroonga/vendor/mysql/include/my_global.h:79:0, from /home/travis/build/mroonga/mroonga/vendor/mysql/sql/sql_class.h:28, from mrn_mysql.h:51, from mrn_table.cpp:23: /usr/include/mysql/my_config.h:654:2: error: #error <my_config.h> MUST be included first! Modified files: mrn_table.cpp Modified: mrn_table.cpp (+16 -7) =================================================================== --- mrn_table.cpp 2014-10-13 00:39:54 +0900 (90546df) +++ mrn_table.cpp 2014-10-13 10:01:09 +0900 (933196c) @@ -18,8 +18,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <string> - #include "mrn_mysql.h" #if MYSQL_VERSION_ID >= 50500 @@ -299,10 +297,11 @@ void mrn_get_partition_info(const char *table_name, uint table_name_length, int mrn_parse_table_param(MRN_SHARE *share, TABLE *table) { - int i, error; + int i, error = 0; int title_length; const char *sprit_ptr[2]; const char *tmp_ptr, *start_ptr; + char *params_string = NULL; #ifdef WITH_PARTITION_STORAGE_ENGINE partition_element *part_elem; partition_element *sub_elem; @@ -369,8 +368,15 @@ int mrn_parse_table_param(MRN_SHARE *share, TABLE *table) } { - std::string params_string(params_string_value, params_string_length); - sprit_ptr[0] = params_string.c_str(); + params_string = my_strndup(params_string_value, + params_string_length, + MYF(MY_WME)); + if (!params_string) { + error = HA_ERR_OUT_OF_MEM; + goto error; + } + + sprit_ptr[0] = params_string; while (sprit_ptr[0]) { if ((sprit_ptr[1] = strchr(sprit_ptr[0], ','))) @@ -414,6 +420,9 @@ int mrn_parse_table_param(MRN_SHARE *share, TABLE *table) break; } } + + my_free(params_string, MYF(0)); + params_string = NULL; } } @@ -460,9 +469,9 @@ int mrn_parse_table_param(MRN_SHARE *share, TABLE *table) } } - DBUG_RETURN(0); - error: + if (params_string) + my_free(params_string, MYF(0)); DBUG_RETURN(error); } -------------- next part -------------- HTML����������������������������...Download