From 06f02fe250cfc34cd247f829e34ee897dfe9dcd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 23 Jan 2018 17:58:06 +0200 Subject: [PATCH 01/45] 5.6.39 (no changes) From 5883c6905b5345be55f3c1a1efbd741bb697b115 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 21 Apr 2018 17:37:24 +0200 Subject: [PATCH 02/45] 5.6.40 --- storage/innobase/handler/ha_innodb.cc | 3 +- storage/innobase/handler/handler0alter.cc | 51 +++++++++++++++-------- storage/innobase/row/row0import.cc | 12 +++--- storage/innobase/row/row0log.cc | 12 +++++- storage/innobase/row/row0mysql.cc | 8 ++-- 5 files changed, 54 insertions(+), 32 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 2b41c3db344..eb7fdaaddf4 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2017, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, 2009 Google Inc. Copyright (c) 2009, Percona Inc. Copyright (c) 2012, Facebook Inc. @@ -12225,6 +12225,7 @@ ha_innobase::start_stmt( case SQLCOM_INSERT: case SQLCOM_UPDATE: case SQLCOM_DELETE: + case SQLCOM_REPLACE: init_table_handle_for_HANDLER(); prebuilt->select_lock_type = LOCK_X; prebuilt->stored_select_lock_type = LOCK_X; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 437d38e29de..f945f40fc40 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2005, 2017, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2005, 2018, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -4604,13 +4604,15 @@ processed_field: } /** Get the auto-increment value of the table on commit. -@param ha_alter_info Data used during in-place alter -@param ctx In-place ALTER TABLE context -@param altered_table MySQL table that is being altered -@param old_table MySQL table as it is before the ALTER operation -@return the next auto-increment value (0 if not present) */ +@param[in] ha_alter_info Data used during in-place alter +@param[in,out] ctx In-place ALTER TABLE context + return autoinc value in ctx->max_autoinc +@param altered_table[in] MySQL table that is being altered +@param old_table[in] MySQL table as it is before the ALTER operation +retval true Failure +@retval false Success*/ static MY_ATTRIBUTE((nonnull, warn_unused_result)) -ulonglong +bool commit_get_autoinc( /*===============*/ Alter_inplace_info* ha_alter_info, @@ -4618,23 +4620,28 @@ commit_get_autoinc( const TABLE* altered_table, const TABLE* old_table) { - ulonglong max_autoinc; DBUG_ENTER("commit_get_autoinc"); if (!altered_table->found_next_number_field) { /* There is no AUTO_INCREMENT column in the table after the ALTER operation. */ - max_autoinc = 0; + ctx->max_autoinc = 0; } else if (ctx->add_autoinc != ULINT_UNDEFINED) { /* An AUTO_INCREMENT column was added. Get the last value from the sequence, which may be based on a supplied AUTO_INCREMENT value. */ - max_autoinc = ctx->sequence.last(); + ctx->max_autoinc = ctx->sequence.last(); } else if ((ha_alter_info->handler_flags & Alter_inplace_info::CHANGE_CREATE_OPTION) && (ha_alter_info->create_info->used_fields & HA_CREATE_USED_AUTO)) { + + /* Check if the table is discarded */ + if(dict_table_is_discarded(ctx->old_table)) { + DBUG_RETURN(true); + } + /* An AUTO_INCREMENT value was supplied, but the table was not rebuilt. Get the user-supplied value or the last value from the sequence. */ @@ -4647,7 +4654,8 @@ commit_get_autoinc( dict_index_t* index = dict_table_get_index_on_first_col( ctx->old_table, autoinc_field->field_index); - max_autoinc = ha_alter_info->create_info->auto_increment_value; + ctx->max_autoinc = + ha_alter_info->create_info->auto_increment_value; dict_table_autoinc_lock(ctx->old_table); @@ -4656,8 +4664,8 @@ commit_get_autoinc( if (err != DB_SUCCESS) { ut_ad(0); - max_autoinc = 0; - } else if (max_autoinc <= max_value_table) { + ctx->max_autoinc = 0; + } else if (ctx->max_autoinc <= max_value_table) { ulonglong col_max_value; ulonglong offset; @@ -4665,7 +4673,7 @@ commit_get_autoinc( old_table->found_next_number_field); offset = ctx->prebuilt->autoinc_offset; - max_autoinc = innobase_next_autoinc( + ctx->max_autoinc = innobase_next_autoinc( max_value_table, 1, 1, offset, col_max_value); } @@ -4675,11 +4683,11 @@ commit_get_autoinc( Read the old counter value from the table. */ ut_ad(old_table->found_next_number_field); dict_table_autoinc_lock(ctx->old_table); - max_autoinc = ctx->old_table->autoinc; + ctx->max_autoinc = ctx->old_table->autoinc; dict_table_autoinc_unlock(ctx->old_table); } - DBUG_RETURN(max_autoinc); + DBUG_RETURN(false); } /** Add or drop foreign key constraints to the data dictionary tables, @@ -5660,8 +5668,13 @@ ha_innobase::commit_inplace_alter_table( DBUG_ASSERT(new_clustered == ctx->need_rebuild()); - ctx->max_autoinc = commit_get_autoinc( - ha_alter_info, ctx, altered_table, table); + if (commit_get_autoinc(ha_alter_info, ctx, altered_table, + table)) { + fail = true; + my_error(ER_TABLESPACE_DISCARDED, MYF(0), + table->s->table_name.str); + goto rollback_trx; + } if (ctx->need_rebuild()) { ctx->tmp_name = dict_mem_create_temporary_tablename( @@ -5693,6 +5706,8 @@ ha_innobase::commit_inplace_alter_table( #endif } +rollback_trx: + /* Commit or roll back the changes to the data dictionary. */ if (fail) { diff --git a/storage/innobase/row/row0import.cc b/storage/innobase/row/row0import.cc index eda89951c3f..cd3f88c240e 100644 --- a/storage/innobase/row/row0import.cc +++ b/storage/innobase/row/row0import.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2012, 2018, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1827,12 +1827,6 @@ PageConverter::update_records( rec_t* rec = m_rec_iter.current(); - /* FIXME: Move out of the loop */ - - if (rec_get_status(rec) == REC_STATUS_NODE_PTR) { - break; - } - ibool deleted = rec_get_deleted_flag(rec, comp); /* For the clustered index we have to adjust the BLOB @@ -1934,6 +1928,10 @@ PageConverter::update_index_page( return(DB_SUCCESS); } + if (!page_is_leaf(block->frame)) { + return (DB_SUCCESS); + } + return(update_records(block)); } diff --git a/storage/innobase/row/row0log.cc b/storage/innobase/row/row0log.cc index 4596e2fb951..7320fe3ac85 100644 --- a/storage/innobase/row/row0log.cc +++ b/storage/innobase/row/row0log.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2011, 2018, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -2720,7 +2720,15 @@ all_done: while (!trx_is_interrupted(trx)) { mrec = next_mrec; - ut_ad(mrec < mrec_end); + ut_ad(mrec <= mrec_end); + + if (mrec == mrec_end) { + /* We are at the end of the log. + Mark the replay all_done. */ + if (has_index_lock) { + goto all_done; + } + } if (!has_index_lock) { /* We are applying operations from a different diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index 8d2d9e1c76b..cfd640ed4d5 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2017, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1426,8 +1426,7 @@ error_exit: doc_ids difference should not exceed FTS_DOC_ID_MAX_STEP value. */ - if (next_doc_id > 1 - && doc_id - next_doc_id >= FTS_DOC_ID_MAX_STEP) { + if (doc_id - next_doc_id >= FTS_DOC_ID_MAX_STEP) { fprintf(stderr, "InnoDB: Doc ID " UINT64PF " is too" " big. Its difference with largest" @@ -5086,7 +5085,8 @@ row_rename_table_for_mysql( } } - if (dict_table_has_fts_index(table) + if ((dict_table_has_fts_index(table) + || DICT_TF2_FLAG_IS_SET(table, DICT_TF2_FTS_HAS_DOC_ID)) && !dict_tables_have_same_db(old_name, new_name)) { err = fts_rename_aux_tables(table, new_name, trx); if (err != DB_TABLE_NOT_FOUND) { From 7fcd9660a20c47a42860a6ca5e79cabcb38e5784 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 21 Apr 2018 17:40:17 +0200 Subject: [PATCH 03/45] 5.6.40 (no changes) From 7f6561225a469b6968683fe9099868a87dab8f31 Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Mon, 23 Apr 2018 12:25:03 -0400 Subject: [PATCH 04/45] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 44f719ca097..23e938e60e1 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=60 +MYSQL_VERSION_PATCH=61 MYSQL_VERSION_EXTRA= From 92cd6bb5109934c6ef38921c1c130c9fcb19e80a Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Tue, 24 Apr 2018 14:29:56 +0200 Subject: [PATCH 05/45] MDEV-15811 Fix and re-enable test galera.galera_pc_ignore_sb * After killing one galera node with include/kill_galera, wait for cluster to shrink * Remove unnecessary include/wait_until_connected_again.inc --- mysql-test/suite/galera/disabled.def | 1 - mysql-test/suite/galera/t/galera_pc_ignore_sb.test | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 6ac85a8bb47..4d83e2ba2ce 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -31,4 +31,3 @@ galera_var_retry_autocommit : MDEV-15794 Test failure on galera.galera_var_retry galera_var_auto_inc_control_on : MDEV-15803 Test failure on galera.galera_var_auto_inc_control_on query_cache : MDEV-15805 Test failure on galera.query_cache galera.MW-44 : MDEV-15809 Test failure on galera.MW-44 -galera.galera_pc_ignore_sb : MDEV-15811 Test failure on galera_pc_ignore_sb diff --git a/mysql-test/suite/galera/t/galera_pc_ignore_sb.test b/mysql-test/suite/galera/t/galera_pc_ignore_sb.test index 84fd3a91857..f24ca5cd25b 100644 --- a/mysql-test/suite/galera/t/galera_pc_ignore_sb.test +++ b/mysql-test/suite/galera/t/galera_pc_ignore_sb.test @@ -20,6 +20,9 @@ SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; --source include/kill_galera.inc --connection node_1 +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); DROP TABLE t1; @@ -37,10 +40,8 @@ SET GLOBAL wsrep_cluster_address = ''; --connection node_2 --source include/start_mysqld.inc ---source include/wait_until_connected_again.inc # Restore original auto_increment_offset values. --source include/auto_increment_offset_restore.inc --source include/galera_end.inc - From 2f0b8f3e027840dab1fd6322e35ecd0f3d7edc08 Mon Sep 17 00:00:00 2001 From: sjaakola Date: Tue, 24 Apr 2018 10:26:34 +0300 Subject: [PATCH 06/45] MDEV-16005 sporadic failures with galera tests MW-328B and MW-328C These test can sporadically show mutex deadlock warnings between LOCK_wsrep_thd and LOCK_thd_data mutexes. This means that these mutexes can be locked in opposite order by different threads, and thus result in deadlock situation. To fix such issue, the locking policy of these mutexes should be revised and enforced to be uniform. However, a quick code review shows that the number of lock/unlock operations for these mutexes combined is between 100-200, and all these mutex invocations should be checked/fixed. On the other hand, it turns out that LOCK_wsrep_thd is used for protecting access to wsrep variables of THD (wsrep_conflict_state, wsrep_query_state), whereas LOCK_thd_data protects query, db and mysys_var variables in THD. Extending LOCK_thd_data to protect also wsrep variables looks like a viable solution, as there should not be a use case where separate threads need simultaneous access to wsrep variables and THD data variables. In this commit LOCK_wsrep_thd mutex is refactored to be replaced by LOCK_thd_data. By bluntly replacing LOCK_wsrep_thd by LOCK_thd_data, will result in double locking of LOCK_thd_data, and some adjustements have been performed to fix such situations. --- sql/slave.cc | 6 ++-- sql/sql_class.cc | 4 --- sql/sql_class.h | 1 - sql/sql_connect.cc | 4 +-- sql/sql_insert.cc | 6 ++-- sql/sql_parse.cc | 37 +++++++++++----------- sql/sql_prepare.cc | 5 ++- sql/wsrep_applier.cc | 8 ++--- sql/wsrep_hton.cc | 44 +++++++++++++-------------- sql/wsrep_mysqld.cc | 39 ++++++++++++------------ sql/wsrep_mysqld.h | 2 -- sql/wsrep_thd.cc | 38 +++++++++++------------ storage/innobase/handler/ha_innodb.cc | 3 -- storage/xtradb/handler/ha_innodb.cc | 3 -- 14 files changed, 94 insertions(+), 106 deletions(-) diff --git a/sql/slave.cc b/sql/slave.cc index da394ff711e..ed679dfdf80 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -3898,10 +3898,10 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli, DBUG_RETURN(1); #ifdef WITH_WSREP - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == NO_CONFLICT) { - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); #endif /* WITH_WSREP */ if (slave_trans_retries) { @@ -3978,7 +3978,7 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli, #ifdef WITH_WSREP } else - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); #endif /* WITH_WSREP */ thread_safe_increment64(&rli->executed_entries); diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 63442182e08..2ab1cd3a61a 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1008,7 +1008,6 @@ THD::THD(bool is_wsrep_applier) *scramble= '\0'; #ifdef WITH_WSREP - mysql_mutex_init(key_LOCK_wsrep_thd, &LOCK_wsrep_thd, MY_MUTEX_INIT_FAST); wsrep_ws_handle.trx_id = WSREP_UNDEFINED_TRX_ID; wsrep_ws_handle.opaque = NULL; wsrep_retry_counter = 0; @@ -1644,9 +1643,6 @@ THD::~THD() mysql_mutex_unlock(&LOCK_thd_data); #ifdef WITH_WSREP - mysql_mutex_lock(&LOCK_wsrep_thd); - mysql_mutex_unlock(&LOCK_wsrep_thd); - mysql_mutex_destroy(&LOCK_wsrep_thd); if (wsrep_rgi) delete wsrep_rgi; #endif /* Close connection */ diff --git a/sql/sql_class.h b/sql/sql_class.h index 91030145022..8de66d8158c 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -4105,7 +4105,6 @@ public: query_id_t wsrep_last_query_id; enum wsrep_query_state wsrep_query_state; enum wsrep_conflict_state wsrep_conflict_state; - mysql_mutex_t LOCK_wsrep_thd; wsrep_trx_meta_t wsrep_trx_meta; uint32 wsrep_rand; Relay_log_info *wsrep_rli; diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index d3ef245209d..abb234ab4b1 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -1335,9 +1335,9 @@ void do_handle_one_connection(THD *thd_arg) #ifdef WITH_WSREP if (WSREP(thd)) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_query_state= QUERY_EXITING; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif end_thread: diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 0a9ce00c950..03cdedf917b 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -4388,16 +4388,16 @@ bool select_create::send_eof() #ifdef WITH_WSREP if (WSREP_ON) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state != NO_CONFLICT) { WSREP_DEBUG("select_create commit failed, thd: %lu err: %d %s", thd->thread_id, thd->wsrep_conflict_state, thd->query()); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); abort_result_set(); DBUG_RETURN(true); } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 352a1704ab7..03b1a20fd17 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -939,13 +939,13 @@ bool do_command(THD *thd) #ifdef WITH_WSREP if (WSREP(thd)) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_query_state= QUERY_IDLE; if (thd->wsrep_conflict_state==MUST_ABORT) { wsrep_client_rollback(thd); } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ @@ -991,15 +991,15 @@ bool do_command(THD *thd) packet_length= my_net_read_packet(net, 1); #ifdef WITH_WSREP if (WSREP(thd)) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); /* these THD's are aborted or are aborting during being idle */ if (thd->wsrep_conflict_state == ABORTING) { while (thd->wsrep_conflict_state == ABORTING) { - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); my_sleep(1000); - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); } thd->store_globals(); } @@ -1009,7 +1009,7 @@ bool do_command(THD *thd) } thd->wsrep_query_state= QUERY_EXEC; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ @@ -1022,13 +1022,13 @@ bool do_command(THD *thd) #ifdef WITH_WSREP if (WSREP(thd)) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { DBUG_PRINT("wsrep",("aborted for wsrep rollback: %lu", thd->real_id)); wsrep_client_rollback(thd); } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ @@ -1256,7 +1256,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, thd->wsrep_PA_safe= true; } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_query_state= QUERY_EXEC; if (thd->wsrep_conflict_state== RETRY_AUTOCOMMIT) { @@ -1272,14 +1272,14 @@ bool dispatch_command(enum enum_server_command command, THD *thd, { my_error(ER_LOCK_DEADLOCK, MYF(0), "wsrep aborted transaction"); WSREP_DEBUG("Deadlock error for: %s", thd->query()); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); thd->reset_killed(); thd->mysys_var->abort = 0; thd->wsrep_conflict_state = NO_CONFLICT; thd->wsrep_retry_counter = 0; goto dispatch_end; } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ #if defined(ENABLED_PROFILING) @@ -1934,10 +1934,10 @@ bool dispatch_command(enum enum_server_command command, THD *thd, DBUG_ASSERT((command != COM_QUIT && command != COM_STMT_CLOSE) || thd->get_stmt_da()->is_disabled()); /* wsrep BF abort in query exec phase */ - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); do_end_of_statement= thd->wsrep_conflict_state != REPLAYING && thd->wsrep_conflict_state != RETRY_AUTOCOMMIT; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } else do_end_of_statement= true; @@ -7192,7 +7192,7 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length, if (WSREP(thd)) { /* wsrep BF abort in query exec phase */ - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { wsrep_client_rollback(thd); @@ -7201,8 +7201,11 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length, if (thd->wsrep_conflict_state == MUST_REPLAY) { + mysql_mutex_unlock(&thd->LOCK_thd_data); if (thd->lex->explain) delete_explain_query(thd->lex); + mysql_mutex_lock(&thd->LOCK_thd_data); + wsrep_replay_transaction(thd); } @@ -7242,13 +7245,13 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length, if (thd->wsrep_conflict_state != REPLAYING) thd->wsrep_retry_counter= 0; // reset } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); thd->reset_killed(); } else { set_if_smaller(thd->wsrep_retry_counter, 0); // reset; eventually ok - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } } @@ -8207,7 +8210,7 @@ kill_one_thread(THD *thd, longlong id, killed_state kill_signal, killed_type typ if (((thd->security_ctx->master_access & SUPER_ACL) || thd->security_ctx->user_matches(tmp->security_ctx)) && - !wsrep_thd_is_BF(tmp, true)) + !wsrep_thd_is_BF(tmp, false)) { tmp->awake(kill_signal); error=0; diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index d7f549899f2..6e14ddc2afb 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -3920,7 +3920,7 @@ reexecute: if (WSREP_ON) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); switch (thd->wsrep_conflict_state) { case CERT_FAILURE: @@ -3936,7 +3936,7 @@ reexecute: default: break; } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } #endif /* WITH_WSREP */ @@ -3958,7 +3958,6 @@ reexecute: return error; } - bool Prepared_statement::execute_server_runnable(Server_runnable *server_runnable) { diff --git a/sql/wsrep_applier.cc b/sql/wsrep_applier.cc index e5c95780df5..723804c76db 100644 --- a/sql/wsrep_applier.cc +++ b/sql/wsrep_applier.cc @@ -98,11 +98,11 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd, DBUG_RETURN(WSREP_CB_FAILURE); } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_query_state= QUERY_EXEC; if (thd->wsrep_conflict_state!= REPLAYING) thd->wsrep_conflict_state= NO_CONFLICT; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); if (!buf_len) WSREP_DEBUG("empty rbr buffer to apply: %lld", (long long) wsrep_thd_trx_seqno(thd)); @@ -197,9 +197,9 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd, } error: - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_query_state= QUERY_IDLE; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); assert(thd->wsrep_exec_mode== REPL_RECV); diff --git a/sql/wsrep_hton.cc b/sql/wsrep_hton.cc index 944c8d83b76..1e95cd4d282 100644 --- a/sql/wsrep_hton.cc +++ b/sql/wsrep_hton.cc @@ -238,12 +238,12 @@ static int wsrep_rollback(handlerton *hton, THD *thd, bool all) DBUG_RETURN(0); } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); switch (thd->wsrep_exec_mode) { case TOTAL_ORDER: case REPL_RECV: - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); WSREP_DEBUG("Avoiding wsrep rollback for failed DDL: %s", thd->query()); DBUG_RETURN(0); default: break; @@ -261,7 +261,7 @@ static int wsrep_rollback(handlerton *hton, THD *thd, bool all) } wsrep_cleanup_transaction(thd); } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(0); } @@ -274,7 +274,7 @@ int wsrep_commit(handlerton *hton, THD *thd, bool all) DBUG_RETURN(0); } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if ((all || !thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) && (thd->variables.wsrep_on && thd->wsrep_conflict_state != MUST_REPLAY)) { @@ -305,7 +305,7 @@ int wsrep_commit(handlerton *hton, THD *thd, bool all) wsrep_cleanup_transaction(thd); } } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(0); } @@ -333,20 +333,20 @@ wsrep_run_wsrep_commit(THD *thd, bool all) if (thd->wsrep_exec_mode == REPL_RECV) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { if (wsrep_debug) WSREP_INFO("WSREP: must abort for BF"); DBUG_PRINT("wsrep", ("BF apply commit fail")); thd->wsrep_conflict_state = NO_CONFLICT; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); // // TODO: test all calls of the rollback. // rollback must happen automagically innobase_rollback(hton, thd, 1); // DBUG_RETURN(WSREP_TRX_ERROR); } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } if (thd->wsrep_exec_mode != LOCAL_STATE) DBUG_RETURN(WSREP_TRX_OK); @@ -358,11 +358,11 @@ wsrep_run_wsrep_commit(THD *thd, bool all) DBUG_PRINT("wsrep", ("replicating commit")); - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { DBUG_PRINT("wsrep", ("replicate commit fail")); thd->wsrep_conflict_state = ABORTED; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); if (wsrep_debug) { WSREP_INFO("innobase_commit, abort %s", (thd->query()) ? thd->query() : "void"); @@ -379,7 +379,7 @@ wsrep_run_wsrep_commit(THD *thd, bool all) { mysql_mutex_unlock(&LOCK_wsrep_replaying); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); mysql_mutex_lock(&thd->mysys_var->mutex); thd_proc_info(thd, "wsrep waiting on replaying"); @@ -407,7 +407,7 @@ wsrep_run_wsrep_commit(THD *thd, bool all) thd->mysys_var->current_cond= 0; mysql_mutex_unlock(&thd->mysys_var->mutex); - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); mysql_mutex_lock(&LOCK_wsrep_replaying); } mysql_mutex_unlock(&LOCK_wsrep_replaying); @@ -415,14 +415,14 @@ wsrep_run_wsrep_commit(THD *thd, bool all) if (thd->wsrep_conflict_state == MUST_ABORT) { DBUG_PRINT("wsrep", ("replicate commit fail")); thd->wsrep_conflict_state = ABORTED; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); WSREP_DEBUG("innobase_commit abort after replaying wait %s", (thd->query()) ? thd->query() : "void"); DBUG_RETURN(WSREP_TRX_CERT_FAIL); } thd->wsrep_query_state = QUERY_COMMITTING; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); cache = get_trans_log(thd); rcode = 0; @@ -487,10 +487,10 @@ wsrep_run_wsrep_commit(THD *thd, bool all) } else if (rcode == WSREP_BF_ABORT) { WSREP_DEBUG("thd %lu seqno %lld BF aborted by provider, will replay", thd->thread_id, (long long)thd->wsrep_trx_meta.gtid.seqno); - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_conflict_state = MUST_REPLAY; DBUG_ASSERT(wsrep_thd_trx_seqno(thd) > 0); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); mysql_mutex_lock(&LOCK_wsrep_replaying); wsrep_replaying++; WSREP_DEBUG("replaying increased: %d, thd: %lu", @@ -504,7 +504,7 @@ wsrep_run_wsrep_commit(THD *thd, bool all) DBUG_RETURN(WSREP_TRX_ERROR); } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); DEBUG_SYNC(thd, "wsrep_after_replication"); @@ -558,26 +558,26 @@ wsrep_run_wsrep_commit(THD *thd, bool all) WSREP_LOG_CONFLICT(NULL, thd, FALSE); } } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(WSREP_TRX_CERT_FAIL); case WSREP_SIZE_EXCEEDED: WSREP_ERROR("transaction size exceeded"); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(WSREP_TRX_SIZE_EXCEEDED); case WSREP_CONN_FAIL: WSREP_ERROR("connection failure"); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(WSREP_TRX_ERROR); default: WSREP_ERROR("unknown connection failure"); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(WSREP_TRX_ERROR); } thd->wsrep_query_state= QUERY_EXEC; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_RETURN(WSREP_TRX_OK); } diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index f5ce14aed6a..08a32f943f5 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -128,7 +128,7 @@ ulong wsrep_running_threads = 0; // # of currently running wsrep threads ulong my_bind_addr; #ifdef HAVE_PSI_INTERFACE -PSI_mutex_key key_LOCK_wsrep_rollback, key_LOCK_wsrep_thd, +PSI_mutex_key key_LOCK_wsrep_rollback, key_LOCK_wsrep_replaying, key_LOCK_wsrep_ready, key_LOCK_wsrep_sst, key_LOCK_wsrep_sst_thread, key_LOCK_wsrep_sst_init, key_LOCK_wsrep_slave_threads, key_LOCK_wsrep_desync, @@ -148,7 +148,6 @@ static PSI_mutex_info wsrep_mutexes[]= { &key_LOCK_wsrep_sst_init, "LOCK_wsrep_sst_init", PSI_FLAG_GLOBAL}, { &key_LOCK_wsrep_sst, "LOCK_wsrep_sst", PSI_FLAG_GLOBAL}, { &key_LOCK_wsrep_rollback, "LOCK_wsrep_rollback", PSI_FLAG_GLOBAL}, - { &key_LOCK_wsrep_thd, "THD::LOCK_wsrep_thd", 0}, { &key_LOCK_wsrep_replaying, "LOCK_wsrep_replaying", PSI_FLAG_GLOBAL}, { &key_LOCK_wsrep_slave_threads, "LOCK_wsrep_slave_threads", PSI_FLAG_GLOBAL}, { &key_LOCK_wsrep_desync, "LOCK_wsrep_desync", PSI_FLAG_GLOBAL}, @@ -1659,7 +1658,7 @@ int wsrep_to_isolation_begin(THD *thd, char *db_, char *table_, if (thd->wsrep_exec_mode == REPL_RECV) return 0; - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); if (thd->wsrep_conflict_state == MUST_ABORT) { @@ -1667,10 +1666,10 @@ int wsrep_to_isolation_begin(THD *thd, char *db_, char *table_, thd->thread_id, (thd->db ? thd->db : "(null)"), thd->query()); - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); return WSREP_TRX_FAIL; } - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); DBUG_ASSERT(thd->wsrep_exec_mode == LOCAL_STATE); DBUG_ASSERT(thd->wsrep_trx_meta.gtid.seqno == WSREP_SEQNO_UNDEFINED); @@ -1786,23 +1785,23 @@ wsrep_grant_mdl_exception(MDL_context *requestor_ctx, const char* schema= key->db_name(); int schema_len= key->db_name_length(); - mysql_mutex_lock(&request_thd->LOCK_wsrep_thd); + mysql_mutex_lock(&request_thd->LOCK_thd_data); if (request_thd->wsrep_exec_mode == TOTAL_ORDER || request_thd->wsrep_exec_mode == REPL_RECV) { - mysql_mutex_unlock(&request_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&request_thd->LOCK_thd_data); WSREP_MDL_LOG(DEBUG, "MDL conflict ", schema, schema_len, request_thd, granted_thd); ticket->wsrep_report(wsrep_debug); - mysql_mutex_lock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_lock(&granted_thd->LOCK_thd_data); if (granted_thd->wsrep_exec_mode == TOTAL_ORDER || granted_thd->wsrep_exec_mode == REPL_RECV) { WSREP_MDL_LOG(INFO, "MDL BF-BF conflict", schema, schema_len, request_thd, granted_thd); ticket->wsrep_report(true); - mysql_mutex_unlock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&granted_thd->LOCK_thd_data); ret = TRUE; } else if (granted_thd->lex->sql_command == SQLCOM_FLUSH || @@ -1810,14 +1809,14 @@ wsrep_grant_mdl_exception(MDL_context *requestor_ctx, { WSREP_DEBUG("BF thread waiting for FLUSH"); ticket->wsrep_report(wsrep_debug); - mysql_mutex_unlock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&granted_thd->LOCK_thd_data); ret = FALSE; } else if (request_thd->lex->sql_command == SQLCOM_DROP_TABLE) { WSREP_DEBUG("DROP caused BF abort"); ticket->wsrep_report(wsrep_debug); - mysql_mutex_unlock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&granted_thd->LOCK_thd_data); wsrep_abort_thd((void*)request_thd, (void*)granted_thd, 1); ret = FALSE; } @@ -1825,7 +1824,7 @@ wsrep_grant_mdl_exception(MDL_context *requestor_ctx, { WSREP_DEBUG("MDL granted, but committing thd abort scheduled"); ticket->wsrep_report(wsrep_debug); - mysql_mutex_unlock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&granted_thd->LOCK_thd_data); wsrep_abort_thd((void*)request_thd, (void*)granted_thd, 1); ret = FALSE; } @@ -1834,14 +1833,14 @@ wsrep_grant_mdl_exception(MDL_context *requestor_ctx, WSREP_MDL_LOG(DEBUG, "MDL conflict-> BF abort", schema, schema_len, request_thd, granted_thd); ticket->wsrep_report(wsrep_debug); - mysql_mutex_unlock(&granted_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&granted_thd->LOCK_thd_data); wsrep_abort_thd((void*)request_thd, (void*)granted_thd, 1); ret = FALSE; } } else { - mysql_mutex_unlock(&request_thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&request_thd->LOCK_thd_data); } return ret; } @@ -2006,9 +2005,9 @@ static inline bool is_replaying_connection(THD *thd) { bool ret; - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); ret= (thd->wsrep_conflict_state == REPLAYING) ? true : false; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); return ret; } @@ -2018,9 +2017,9 @@ static inline bool is_committing_connection(THD *thd) { bool ret; - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); ret= (thd->wsrep_query_state == QUERY_COMMITTING) ? true : false; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); return ret; } @@ -2403,13 +2402,13 @@ wsrep_ws_handle_t* wsrep_thd_ws_handle(THD *thd) void wsrep_thd_LOCK(THD *thd) { - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); } void wsrep_thd_UNLOCK(THD *thd) { - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h index 33af697a19b..57630ed8284 100644 --- a/sql/wsrep_mysqld.h +++ b/sql/wsrep_mysqld.h @@ -272,8 +272,6 @@ extern my_bool wsrep_preordered_opt; extern handlerton *wsrep_hton; #ifdef HAVE_PSI_INTERFACE -extern PSI_mutex_key key_LOCK_wsrep_thd; -extern PSI_cond_key key_COND_wsrep_thd; extern PSI_mutex_key key_LOCK_wsrep_ready; extern PSI_mutex_key key_COND_wsrep_ready; extern PSI_mutex_key key_LOCK_wsrep_sst; diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc index 7b73273b8a9..eb26da61282 100644 --- a/sql/wsrep_thd.cc +++ b/sql/wsrep_thd.cc @@ -47,7 +47,7 @@ int wsrep_show_bf_aborts (THD *thd, SHOW_VAR *var, char *buff, return 0; } -/* must have (&thd->LOCK_wsrep_thd) */ +/* must have (&thd->LOCK_thd_data) */ void wsrep_client_rollback(THD *thd) { WSREP_DEBUG("client rollback due to BF abort for (%ld), query: %s", @@ -56,7 +56,7 @@ void wsrep_client_rollback(THD *thd) WSREP_ATOMIC_ADD_LONG(&wsrep_bf_aborts_counter, 1); thd->wsrep_conflict_state= ABORTING; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); trans_rollback(thd); if (thd->locked_tables_mode && thd->lock) @@ -83,7 +83,7 @@ void wsrep_client_rollback(THD *thd) WSREP_DEBUG("clearing binlog table map for BF abort (%ld)", thd->thread_id); thd->clear_binlog_table_maps(); } - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); thd->wsrep_conflict_state= ABORTED; } @@ -229,7 +229,7 @@ void wsrep_replay_transaction(THD *thd) thd->get_stmt_da()->reset_diagnostics_area(); thd->wsrep_conflict_state= REPLAYING; - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); thd->reset_for_next_command(); thd->reset_killed(); @@ -269,7 +269,7 @@ void wsrep_replay_transaction(THD *thd) if (thd->wsrep_conflict_state!= REPLAYING) WSREP_WARN("lost replaying mode: %d", thd->wsrep_conflict_state ); - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); switch (rcode) { @@ -326,7 +326,7 @@ void wsrep_replay_transaction(THD *thd) /* we're now in inconsistent state, must abort */ /* http://bazaar.launchpad.net/~codership/codership-mysql/5.6/revision/3962#sql/wsrep_thd.cc */ - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); unireg_abort(1); break; @@ -496,29 +496,29 @@ static void wsrep_rollback_process(THD *thd) */ mysql_mutex_unlock(&LOCK_wsrep_rollback); - mysql_mutex_lock(&aborting->LOCK_wsrep_thd); + mysql_mutex_lock(&aborting->LOCK_thd_data); if (aborting->wsrep_conflict_state== ABORTED) { WSREP_DEBUG("WSREP, thd already aborted: %llu state: %d", (long long)aborting->real_id, aborting->wsrep_conflict_state); - mysql_mutex_unlock(&aborting->LOCK_wsrep_thd); + mysql_mutex_unlock(&aborting->LOCK_thd_data); mysql_mutex_lock(&LOCK_wsrep_rollback); continue; } aborting->wsrep_conflict_state= ABORTING; - mysql_mutex_unlock(&aborting->LOCK_wsrep_thd); + mysql_mutex_unlock(&aborting->LOCK_thd_data); set_current_thd(aborting); aborting->store_globals(); - mysql_mutex_lock(&aborting->LOCK_wsrep_thd); + mysql_mutex_lock(&aborting->LOCK_thd_data); wsrep_client_rollback(aborting); WSREP_DEBUG("WSREP rollbacker aborted thd: (%lu %llu)", aborting->thread_id, (long long)aborting->real_id); - mysql_mutex_unlock(&aborting->LOCK_wsrep_thd); + mysql_mutex_unlock(&aborting->LOCK_thd_data); set_current_thd(thd); thd->store_globals(); @@ -558,10 +558,10 @@ enum wsrep_conflict_state wsrep_thd_conflict_state(THD *thd, my_bool sync) enum wsrep_conflict_state state = NO_CONFLICT; if (thd) { - if (sync) mysql_mutex_lock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_lock(&thd->LOCK_thd_data); state = thd->wsrep_conflict_state; - if (sync) mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_unlock(&thd->LOCK_thd_data); } return state; } @@ -585,12 +585,12 @@ my_bool wsrep_thd_is_BF(THD *thd, my_bool sync) if (wsrep_thd_is_wsrep(thd)) { if (sync) - mysql_mutex_lock(&thd->LOCK_wsrep_thd); + mysql_mutex_lock(&thd->LOCK_thd_data); status = ((thd->wsrep_exec_mode == REPL_RECV) || (thd->wsrep_exec_mode == TOTAL_ORDER)); if (sync) - mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + mysql_mutex_unlock(&thd->LOCK_thd_data); } } return status; @@ -603,12 +603,12 @@ my_bool wsrep_thd_is_BF_or_commit(void *thd_ptr, my_bool sync) if (thd_ptr) { THD* thd = (THD*)thd_ptr; - if (sync) mysql_mutex_lock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_lock(&thd->LOCK_thd_data); status = ((thd->wsrep_exec_mode == REPL_RECV) || (thd->wsrep_exec_mode == TOTAL_ORDER) || (thd->wsrep_exec_mode == LOCAL_COMMIT)); - if (sync) mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_unlock(&thd->LOCK_thd_data); } return status; } @@ -620,10 +620,10 @@ my_bool wsrep_thd_is_local(void *thd_ptr, my_bool sync) if (thd_ptr) { THD* thd = (THD*)thd_ptr; - if (sync) mysql_mutex_lock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_lock(&thd->LOCK_thd_data); status = (thd->wsrep_exec_mode == LOCAL_STATE); - if (sync) mysql_mutex_unlock(&thd->LOCK_wsrep_thd); + if (sync) mysql_mutex_unlock(&thd->LOCK_thd_data); } return status; } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 9401f737a06..378187a6b55 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -4899,7 +4899,6 @@ static void innobase_kill_query(handlerton*, THD* thd, enum thd_kill_levels) { DBUG_ENTER("innobase_kill_query"); #ifdef WITH_WSREP - wsrep_thd_LOCK(thd); if (wsrep_thd_get_conflict_state(thd) != NO_CONFLICT) { /* if victim has been signaled by BF thread and/or aborting is already progressing, following query aborting is not necessary @@ -4907,10 +4906,8 @@ static void innobase_kill_query(handlerton*, THD* thd, enum thd_kill_levels) Also, BF thread should own trx mutex for the victim, which would conflict with trx_mutex_enter() below */ - wsrep_thd_UNLOCK(thd); DBUG_VOID_RETURN; } - wsrep_thd_UNLOCK(thd); #endif /* WITH_WSREP */ if (trx_t* trx = thd_to_trx(thd)) { diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 25c8f3c6495..f120837ef1f 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -5496,7 +5496,6 @@ static void innobase_kill_query(handlerton*, THD* thd, enum thd_kill_levels) DBUG_ENTER("innobase_kill_query"); #ifdef WITH_WSREP - wsrep_thd_LOCK(thd); if (wsrep_thd_get_conflict_state(thd) != NO_CONFLICT) { /* if victim has been signaled by BF thread and/or aborting is already progressing, following query aborting is not necessary @@ -5504,10 +5503,8 @@ static void innobase_kill_query(handlerton*, THD* thd, enum thd_kill_levels) Also, BF thread should own trx mutex for the victim, which would conflict with trx_mutex_enter() below */ - wsrep_thd_UNLOCK(thd); DBUG_VOID_RETURN; } - wsrep_thd_UNLOCK(thd); #endif /* WITH_WSREP */ if (trx_t* trx = thd_to_trx(thd)) { ut_ad(trx->mysql_thd == thd); From 6b84fdb2f32e52299809c0bb771dfeefdb17be03 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Apr 2018 16:17:43 +0200 Subject: [PATCH 07/45] 5.6.39-83.1 --- storage/xtradb/CMakeLists.txt | 4 +- storage/xtradb/dict/dict0dict.cc | 66 +++++++++++++++-------------- storage/xtradb/dict/dict0mem.cc | 13 +++++- storage/xtradb/fts/fts0fts.cc | 14 ++++-- storage/xtradb/fts/fts0que.cc | 17 ++++++-- storage/xtradb/handler/ha_innodb.cc | 8 ++++ storage/xtradb/include/univ.i | 2 +- storage/xtradb/include/ut0ut.h | 11 ++++- storage/xtradb/row/row0sel.cc | 2 +- storage/xtradb/trx/trx0purge.cc | 15 ++++--- storage/xtradb/ut/ut0ut.cc | 30 ++++++++++++- 11 files changed, 131 insertions(+), 51 deletions(-) diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt index 927d060d6c3..4284c3a0753 100644 --- a/storage/xtradb/CMakeLists.txt +++ b/storage/xtradb/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -452,3 +452,5 @@ MYSQL_ADD_PLUGIN(innobase ${INNOBASE_SOURCES} STORAGE_ENGINE DEFAULT MODULE_OUTPUT_NAME ha_innodb LINK_LIBRARIES ${ZLIB_LIBRARY}) + +ADD_DEPENDENCIES(innobase GenError) diff --git a/storage/xtradb/dict/dict0dict.cc b/storage/xtradb/dict/dict0dict.cc index eec681c4005..816c6f913a4 100644 --- a/storage/xtradb/dict/dict0dict.cc +++ b/storage/xtradb/dict/dict0dict.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. This program is free software; you can redistribute it and/or modify it under @@ -556,6 +556,8 @@ dict_table_close( indexes after an aborted online index creation */ { + + ibool drop_aborted; if (!dict_locked) { mutex_enter(&dict_sys->mutex); } @@ -563,6 +565,11 @@ dict_table_close( ut_ad(mutex_own(&dict_sys->mutex)); ut_a(table->n_ref_count > 0); + drop_aborted = try_drop + && table->drop_aborted + && table->n_ref_count == 1 + && dict_table_get_first_index(table); + --table->n_ref_count; /* Force persistent stats re-read upon next open of the table @@ -591,12 +598,6 @@ dict_table_close( if (!dict_locked) { table_id_t table_id = table->id; - ibool drop_aborted; - - drop_aborted = try_drop - && table->drop_aborted - && table->n_ref_count == 1 - && dict_table_get_first_index(table); mutex_exit(&dict_sys->mutex); @@ -2063,6 +2064,33 @@ dict_table_remove_from_cache_low( foreign->referenced_index = NULL; } + /* The check for dropped index should happen before we release + all the indexes */ + + if (lru_evict && table->drop_aborted) { + /* Do as dict_table_try_drop_aborted() does. */ + + trx_t* trx = trx_allocate_for_background(); + + ut_ad(mutex_own(&dict_sys->mutex)); +#ifdef UNIV_SYNC_DEBUG + ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); +#endif /* UNIV_SYNC_DEBUG */ + /* Mimic row_mysql_lock_data_dictionary(). */ + trx->dict_operation_lock_mode = RW_X_LATCH; + + trx_set_dict_operation(trx, TRX_DICT_OP_INDEX); + + /* Silence a debug assertion in row_merge_drop_indexes(). */ + ut_d(table->n_ref_count++); + row_merge_drop_indexes(trx, table, TRUE); + ut_d(table->n_ref_count--); + ut_ad(table->n_ref_count == 0); + trx_commit_for_mysql(trx); + trx->dict_operation_lock_mode = 0; + trx_free_for_background(trx); + } + /* Remove the indexes from the cache */ for (index = UT_LIST_GET_LAST(table->indexes); @@ -2095,30 +2123,6 @@ dict_table_remove_from_cache_low( dict_table_autoinc_store(table); } - if (lru_evict && table->drop_aborted) { - /* Do as dict_table_try_drop_aborted() does. */ - - trx_t* trx = trx_allocate_for_background(); - - ut_ad(mutex_own(&dict_sys->mutex)); -#ifdef UNIV_SYNC_DEBUG - ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); -#endif /* UNIV_SYNC_DEBUG */ - /* Mimic row_mysql_lock_data_dictionary(). */ - trx->dict_operation_lock_mode = RW_X_LATCH; - - trx_set_dict_operation(trx, TRX_DICT_OP_INDEX); - - /* Silence a debug assertion in row_merge_drop_indexes(). */ - ut_d(table->n_ref_count++); - row_merge_drop_indexes(trx, table, TRUE); - ut_d(table->n_ref_count--); - ut_ad(table->n_ref_count == 0); - trx_commit_for_mysql(trx); - trx->dict_operation_lock_mode = 0; - trx_free_for_background(trx); - } - size = mem_heap_get_size(table->heap) + strlen(table->name) + 1; ut_ad(dict_sys->size >= size); diff --git a/storage/xtradb/dict/dict0mem.cc b/storage/xtradb/dict/dict0mem.cc index 24a9e00412a..79d493ed65b 100644 --- a/storage/xtradb/dict/dict0mem.cc +++ b/storage/xtradb/dict/dict0mem.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. This program is free software; you can redistribute it and/or modify it under @@ -303,11 +303,20 @@ dict_mem_table_col_rename_low( char* col_names; if (to_len > from_len) { + ulint table_size_before_rename_col + = mem_heap_get_size(table->heap); col_names = static_cast( mem_heap_alloc( table->heap, full_len + to_len - from_len)); - + ulint table_size_after_rename_col + = mem_heap_get_size(table->heap); + if (table_size_before_rename_col + != table_size_after_rename_col) { + dict_sys->size += + table_size_after_rename_col + - table_size_before_rename_col; + } memcpy(col_names, table->col_names, prefix_len); } else { col_names = const_cast(table->col_names); diff --git a/storage/xtradb/fts/fts0fts.cc b/storage/xtradb/fts/fts0fts.cc index a29e046eb84..f3fa6e52d0d 100644 --- a/storage/xtradb/fts/fts0fts.cc +++ b/storage/xtradb/fts/fts0fts.cc @@ -4804,9 +4804,17 @@ fts_process_token( t_str.f_str = static_cast( mem_heap_alloc(heap, t_str.f_len)); - newlen = innobase_fts_casedn_str( - doc->charset, (char*) str.f_str, str.f_len, - (char*) t_str.f_str, t_str.f_len); + /* For binary collations, a case sensitive search is + performed. Hence don't convert to lower case. */ + if (my_binary_compare(result_doc->charset)) { + memcpy(t_str.f_str, str.f_str, str.f_len); + t_str.f_str[str.f_len]= 0; + newlen= str.f_len; + } else { + newlen = innobase_fts_casedn_str( + doc->charset, (char*) str.f_str, str.f_len, + (char*) t_str.f_str, t_str.f_len); + } t_str.f_len = newlen; t_str.f_str[newlen] = 0; diff --git a/storage/xtradb/fts/fts0que.cc b/storage/xtradb/fts/fts0que.cc index 84f616b7800..18cf41d4a48 100644 --- a/storage/xtradb/fts/fts0que.cc +++ b/storage/xtradb/fts/fts0que.cc @@ -3784,10 +3784,19 @@ fts_query_str_preprocess( str_len = query_len * charset->casedn_multiply + 1; str_ptr = static_cast(ut_malloc(str_len)); - *result_len = innobase_fts_casedn_str( - charset, const_cast(reinterpret_cast( - query_str)), query_len, - reinterpret_cast(str_ptr), str_len); + /* For binary collations, a case sensitive search is + performed. Hence don't convert to lower case. */ + if (my_binary_compare(charset)) { + memcpy(str_ptr, query_str, query_len); + str_ptr[query_len]= 0; + *result_len= query_len; + } else { + *result_len = innobase_fts_casedn_str( + charset, const_cast + (reinterpret_cast( query_str)), + query_len, + reinterpret_cast(str_ptr), str_len); + } ut_ad(*result_len < str_len); diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 7b695fd4c5a..7b6d4243ba8 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -4071,6 +4071,14 @@ innobase_change_buffering_inited_ok: /* Turn on monitor counters that are default on */ srv_mon_default_on(); +#ifndef UNIV_HOTBACKUP +#ifdef _WIN32 + if (ut_win_init_time()) { + goto mem_free_and_error; + } +#endif /* _WIN32 */ +#endif /* !UNIV_HOTBACKUP */ + DBUG_RETURN(FALSE); error: DBUG_RETURN(TRUE); diff --git a/storage/xtradb/include/univ.i b/storage/xtradb/include/univ.i index ce2de004dd4..8eb3e6ef9bc 100644 --- a/storage/xtradb/include/univ.i +++ b/storage/xtradb/include/univ.i @@ -47,7 +47,7 @@ Created 1/20/1994 Heikki Tuuri #define INNODB_VERSION_BUGFIX MYSQL_VERSION_PATCH #ifndef PERCONA_INNODB_VERSION -#define PERCONA_INNODB_VERSION 83.0 +#define PERCONA_INNODB_VERSION 83.1 #endif /* Enable UNIV_LOG_ARCHIVE in XtraDB */ diff --git a/storage/xtradb/include/ut0ut.h b/storage/xtradb/include/ut0ut.h index ef887ed5e58..7c28081dd70 100644 --- a/storage/xtradb/include/ut0ut.h +++ b/storage/xtradb/include/ut0ut.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1994, 2017, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -266,6 +266,15 @@ UNIV_INTERN ulint ut_time_ms(void); /*============*/ +#ifdef _WIN32 +/**********************************************************//** +Initialise highest available time resolution API on Windows +@return 0 if all OK else -1 */ +int +ut_win_init_time(); + +#endif /* _WIN32 */ + #endif /* !UNIV_HOTBACKUP */ /**********************************************************//** diff --git a/storage/xtradb/row/row0sel.cc b/storage/xtradb/row/row0sel.cc index 060c12e7e2e..3e79d00b07c 100644 --- a/storage/xtradb/row/row0sel.cc +++ b/storage/xtradb/row/row0sel.cc @@ -2821,7 +2821,7 @@ row_sel_store_mysql_field_func( { const byte* data; ulint len; - ulint clust_field_no; + ulint clust_field_no = 0; bool clust_templ_for_sec = (sec_field_no != ULINT_UNDEFINED); ut_ad(prebuilt->default_rec); diff --git a/storage/xtradb/trx/trx0purge.cc b/storage/xtradb/trx/trx0purge.cc index d0d7ef2432e..9073bb02d4c 100644 --- a/storage/xtradb/trx/trx0purge.cc +++ b/storage/xtradb/trx/trx0purge.cc @@ -583,6 +583,7 @@ trx_purge_rseg_get_next_history_log( mutex_exit(&(rseg->mutex)); mtr_commit(&mtr); +#ifdef UNIV_DEBUG mutex_enter(&trx_sys->mutex); /* Add debug code to track history list corruption reported @@ -599,15 +600,19 @@ trx_purge_rseg_get_next_history_log( " InnoDB: Warning: purge reached the" " head of the history list,\n" "InnoDB: but its length is still" - " reported as %lu! Make a detailed bug\n" - "InnoDB: report, and submit it" - " to http://bugs.mysql.com\n", + " reported as %lu!.\n" + "This can happen for multiple reasons\n" + "1. A long running transaction is" + " withholding purging of undo logs or a read" + " view is open. Please try to commit the long" + " running transaction.\n" + "2. Try increasing the number of purge" + " threads to expedite purging of undo logs.", (ulong) trx_sys->rseg_history_len); - ut_ad(0); } mutex_exit(&trx_sys->mutex); - +#endif return; } diff --git a/storage/xtradb/ut/ut0ut.cc b/storage/xtradb/ut/ut0ut.cc index 597cbdf42c6..f9f39cb1269 100644 --- a/storage/xtradb/ut/ut0ut.cc +++ b/storage/xtradb/ut/ut0ut.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1994, 2017, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -49,6 +49,10 @@ Created 5/11/1994 Heikki Tuuri UNIV_INTERN ibool ut_always_false = FALSE; #ifdef __WIN__ +#include /* For sql_print_error */ +typedef VOID(WINAPI *time_fn)(LPFILETIME); +static time_fn ut_get_system_time_as_file_time = GetSystemTimeAsFileTime; + /*****************************************************************//** NOTE: The Windows epoch starts from 1601/01/01 whereas the Unix epoch starts from 1970/1/1. For selection of constant see: @@ -56,6 +60,28 @@ http://support.microsoft.com/kb/167296/ */ #define WIN_TO_UNIX_DELTA_USEC ((ib_int64_t) 11644473600000000ULL) +/** +Initialise highest available time resolution API on Windows +@return 0 if all OK else -1 */ +int +ut_win_init_time() +{ + HMODULE h = LoadLibrary("kernel32.dll"); + if (h != NULL) + { + time_fn pfn = (time_fn)GetProcAddress(h, "GetSystemTimePreciseAsFileTime"); + if (pfn != NULL) + { + ut_get_system_time_as_file_time = pfn; + } + return false; + } + DWORD error = GetLastError(); + sql_print_error( + "LoadLibrary(\"kernel32.dll\") failed: GetLastError returns %lu", error); + return(-1); +} + /*****************************************************************//** This is the Windows version of gettimeofday(2). @return 0 if all OK else -1 */ @@ -74,7 +100,7 @@ ut_gettimeofday( return(-1); } - GetSystemTimeAsFileTime(&ft); + ut_get_system_time_as_file_time(&ft); tm = (ib_int64_t) ft.dwHighDateTime << 32; tm |= ft.dwLowDateTime; From 3cd4da3257b84e35b82fa6f5542fc78bc80dfdb9 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Apr 2018 16:25:16 +0200 Subject: [PATCH 08/45] 5.6.39-83.1 --- storage/tokudb/CMakeLists.txt | 2 +- storage/tokudb/PerconaFT/.clang-format | 36 ++++++++ storage/tokudb/PerconaFT/CMakeLists.txt | 6 ++ storage/tokudb/PerconaFT/README.md | 29 ++---- storage/tokudb/PerconaFT/ft/ft-ops.cc | 91 ++++++++++++++++++- .../PerconaFT/ft/tests/ft-clock-test.cc | 4 +- .../tokudb/PerconaFT/ft/tests/log-test4.cc | 2 +- .../portability/tests/test-max-data.cc | 2 +- .../portability/toku_instrumentation.h | 2 + .../PerconaFT/portability/toku_portability.h | 2 +- .../PerconaFT/portability/toku_pthread.h | 6 +- .../tokudb/PerconaFT/portability/toku_time.h | 5 + .../PerconaFT/src/tests/checkpoint_stress.cc | 2 +- .../PerconaFT/src/tests/directory_lock.cc | 2 +- .../src/tests/loader-cleanup-test.cc | 18 ++-- .../src/tests/recover-del-multiple-abort.cc | 6 +- .../recover-del-multiple-srcdb-fdelete-all.cc | 6 +- .../src/tests/recover-del-multiple.cc | 6 +- .../src/tests/recover-put-multiple-abort.cc | 6 +- .../src/tests/recovery_fileops_unit.cc | 4 +- .../PerconaFT/src/tests/test-prepare3.cc | 1 + storage/tokudb/hatoku_hton.cc | 20 +++- 22 files changed, 200 insertions(+), 58 deletions(-) create mode 100644 storage/tokudb/PerconaFT/.clang-format diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt index 87c49deb91d..4580973cb80 100644 --- a/storage/tokudb/CMakeLists.txt +++ b/storage/tokudb/CMakeLists.txt @@ -1,4 +1,4 @@ -SET(TOKUDB_VERSION 5.6.38-83.0) +SET(TOKUDB_VERSION 5.6.39-83.1) # PerconaFT only supports x86-64 and cmake-2.8.9+ IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT CMAKE_VERSION VERSION_LESS "2.8.9") diff --git a/storage/tokudb/PerconaFT/.clang-format b/storage/tokudb/PerconaFT/.clang-format new file mode 100644 index 00000000000..0888185848d --- /dev/null +++ b/storage/tokudb/PerconaFT/.clang-format @@ -0,0 +1,36 @@ +Language: Cpp +BasedOnStyle: Google + +# The following parameters are default for Google style, +# but as they are important for our project they +# are set explicitly here +AlignAfterOpenBracket: Align +BreakBeforeBinaryOperators: None +ColumnLimit: 80 +PointerAlignment: Left +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +UseTab: Never + +# Non-default parametes +NamespaceIndentation: All +IndentWidth: 4 +TabWidth: 4 +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +BinPackParameters: false +BinPackArguments: false +ExperimentalAutoDetectBinPacking: false +AllowAllParametersOfDeclarationOnNextLine: false +#AlignConsecutiveAssignments: yes +#AlignConsecutiveDeclarations: yes +BreakStringLiterals: false +ReflowComments: true diff --git a/storage/tokudb/PerconaFT/CMakeLists.txt b/storage/tokudb/PerconaFT/CMakeLists.txt index 487ba8b734a..50db3068daa 100644 --- a/storage/tokudb/PerconaFT/CMakeLists.txt +++ b/storage/tokudb/PerconaFT/CMakeLists.txt @@ -9,6 +9,12 @@ project(TokuDB) set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +# See: https://jira.percona.com/browse/TDB-93 +IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-address-of-packed-member") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-address-of-packed-member") +ENDIF() + # detect when we are being built as a subproject if (DEFINED MYSQL_PROJECT_NAME_DOCSTRING) add_definitions( -DMYSQL_TOKUDB_ENGINE=1) diff --git a/storage/tokudb/PerconaFT/README.md b/storage/tokudb/PerconaFT/README.md index d53caf00190..ffb646b67af 100644 --- a/storage/tokudb/PerconaFT/README.md +++ b/storage/tokudb/PerconaFT/README.md @@ -9,20 +9,18 @@ PerconaFT is provided as a shared library with an interface similar to Berkeley DB. To build the full MySQL product, see the instructions for -[Percona/tokudb-engine][tokudb-engine]. To build TokuMX, see the instructions -for [Percona/percona-server-mongodb][mongo]. This document covers PerconaFT only. +[Percona/percona-server][percona-server]. This document covers PerconaFT only. -[tokudb-engine]: https://github.com/Percona/tokudb-engine -[mongo]: https://github.com/Percona/percona-server-mongodb +[percona-server]: https://github.com/Percona/percona-server Building -------- PerconaFT is built using CMake >= 2.8.9. Out-of-source builds are -recommended. You need a C++11 compiler, though only GCC >= 4.7 and -Apple's Clang are tested. You also need zlib development packages -(`yum install zlib-devel` or `apt-get install zlib1g-dev`). +recommended. You need a C++11 compiler, though only some versions +of GCC >= 4.7 and Clang are tested. You also need zlib development +packages (`yum install zlib-devel` or `apt-get install zlib1g-dev`). You will also need the source code for jemalloc, checked out in `third_party/`. @@ -42,16 +40,16 @@ CC=gcc47 CXX=g++47 cmake \ cmake --build . --target install ``` -This will build `libtokudb.so` and `libtokuportability.so` and install it, +This will build `libft.so` and `libtokuportability.so` and install it, some header files, and some examples to `percona-ft/prefix/`. It will also build jemalloc and install it alongside these libraries, you should link to that if you are planning to run benchmarks or in production. ### Platforms -PerconaFT is supported on 64-bit Centos, should work on other 64-bit linux -distributions, and may work on OSX 10.8 and FreeBSD. PerconaFT is not -supported on 32-bit systems. +PerconaFT is supported on 64-bit Centos, Debian, and Ubuntu and should work +on other 64-bit linux distributions, and may work on OSX 10.8 and FreeBSD. +PerconaFT is not supported on 32-bit systems. [Transparent hugepages][transparent-hugepages] is a feature in newer linux kernel versions that causes problems for the memory usage tracking @@ -97,16 +95,9 @@ We have two publicly accessible mailing lists for TokuDB: - tokudb-dev@googlegroups.com is for discussion of the development of TokuDB. -and two for TokuMX: - - - tokumx-user@googlegroups.com is for general and support related - questions about the use of TokuMX. - - tokumx-dev@googlegroups.com is for discussion of the development of - TokuMX. - All source code and test contributions must be provided under a [BSD 2-Clause][bsd-2] license. For any small change set, the license text may be contained within the commit comment and the pull request. For larger contributions, the license must be presented in a COPYING. file in the root of the PerconaFT project. Please see the [BSD 2-Clause license template][bsd-2] for the content of the license text. -[jira]: https://tokutek.atlassian.net/browse/FT/ +[jira]: https://jira.percona.com/projects/TDB [bsd-2]: http://opensource.org/licenses/BSD-2-Clause/ diff --git a/storage/tokudb/PerconaFT/ft/ft-ops.cc b/storage/tokudb/PerconaFT/ft/ft-ops.cc index 60885ed9f33..d036366dd63 100644 --- a/storage/tokudb/PerconaFT/ft/ft-ops.cc +++ b/storage/tokudb/PerconaFT/ft/ft-ops.cc @@ -4880,6 +4880,94 @@ static void toku_pfs_keys_init(const char *toku_instr_group_name) { toku_instr_probe_1 = new toku_instr_probe(*fti_probe_1_key); } +static void toku_pfs_keys_destroy(void) { + delete kibbutz_mutex_key; + delete minicron_p_mutex_key; + delete queue_result_mutex_key; + delete tpool_lock_mutex_key; + delete workset_lock_mutex_key; + delete bjm_jobs_lock_mutex_key; + delete log_internal_lock_mutex_key; + delete cachetable_ev_thread_lock_mutex_key; + delete cachetable_disk_nb_mutex_key; + delete safe_file_size_lock_mutex_key; + delete cachetable_m_mutex_key; + delete checkpoint_safe_mutex_key; + delete ft_ref_lock_mutex_key; + delete ft_open_close_lock_mutex_key; + delete loader_error_mutex_key; + delete bfs_mutex_key; + delete loader_bl_mutex_key; + delete loader_fi_lock_mutex_key; + delete loader_out_mutex_key; + delete result_output_condition_lock_mutex_key; + delete block_table_mutex_key; + delete rollback_log_node_cache_mutex_key; + delete txn_lock_mutex_key; + delete txn_state_lock_mutex_key; + delete txn_child_manager_mutex_key; + delete txn_manager_lock_mutex_key; + delete treenode_mutex_key; + delete locktree_request_info_mutex_key; + delete locktree_request_info_retry_mutex_key; + delete manager_mutex_key; + delete manager_escalation_mutex_key; + delete db_txn_struct_i_txn_mutex_key; + delete manager_escalator_mutex_key; + delete indexer_i_indexer_lock_mutex_key; + delete indexer_i_indexer_estimate_lock_mutex_key; + + delete tokudb_file_data_key; + delete tokudb_file_load_key; + delete tokudb_file_tmp_key; + delete tokudb_file_log_key; + + delete fti_probe_1_key; + + delete extractor_thread_key; + delete fractal_thread_key; + delete io_thread_key; + delete eviction_thread_key; + delete kibbutz_thread_key; + delete minicron_thread_key; + delete tp_internal_thread_key; + + delete result_state_cond_key; + delete bjm_jobs_wait_key; + delete cachetable_p_refcount_wait_key; + delete cachetable_m_flow_control_cond_key; + delete cachetable_m_ev_thread_cond_key; + delete bfs_cond_key; + delete result_output_condition_key; + delete manager_m_escalator_done_key; + delete lock_request_m_wait_cond_key; + delete queue_result_cond_key; + delete ws_worker_wait_key; + delete rwlock_wait_read_key; + delete rwlock_wait_write_key; + delete rwlock_cond_key; + delete tp_thread_wait_key; + delete tp_pool_wait_free_key; + delete frwlock_m_wait_read_key; + delete kibbutz_k_cond_key; + delete minicron_p_condvar_key; + delete locktree_request_info_retry_cv_key; + + delete multi_operation_lock_key; + delete low_priority_multi_operation_lock_key; + delete cachetable_m_list_lock_key; + delete cachetable_m_pending_lock_expensive_key; + delete cachetable_m_pending_lock_cheap_key; + delete cachetable_m_lock_key; + delete result_i_open_dbs_rwlock_key; + delete checkpoint_safe_rwlock_key; + delete cachetable_value_key; + delete safe_file_size_lock_rwlock_key; + + delete cachetable_disk_nb_rwlock_key; + delete toku_instr_probe_1; +} + int toku_ft_layer_init(void) { int r = 0; @@ -4916,8 +5004,7 @@ void toku_ft_layer_destroy(void) { toku_status_destroy(); partitioned_counters_destroy(); toku_scoped_malloc_destroy(); - - delete toku_instr_probe_1; + toku_pfs_keys_destroy(); // Portability must be cleaned up last toku_portability_destroy(); diff --git a/storage/tokudb/PerconaFT/ft/tests/ft-clock-test.cc b/storage/tokudb/PerconaFT/ft/tests/ft-clock-test.cc index 26a3dae673c..00ff8cf204b 100644 --- a/storage/tokudb/PerconaFT/ft/tests/ft-clock-test.cc +++ b/storage/tokudb/PerconaFT/ft/tests/ft-clock-test.cc @@ -184,11 +184,11 @@ static void test2(int fd, FT ft_h, FTNODE *dn) { PAIR_ATTR attr; memset(&attr, 0, sizeof(attr)); toku_ftnode_pe_callback(*dn, attr, ft_h, def_pe_finalize_impl, nullptr); - invariant(BP_STATE(*dn, 0) == (is_leaf) ? PT_ON_DISK : PT_COMPRESSED); + invariant(BP_STATE(*dn, 0) == ((is_leaf) ? PT_ON_DISK : PT_COMPRESSED)); invariant(BP_STATE(*dn, 1) == PT_AVAIL); invariant(BP_SHOULD_EVICT(*dn, 1)); toku_ftnode_pe_callback(*dn, attr, ft_h, def_pe_finalize_impl, nullptr); - invariant(BP_STATE(*dn, 1) == (is_leaf) ? PT_ON_DISK : PT_COMPRESSED); + invariant(BP_STATE(*dn, 1) == ((is_leaf) ? PT_ON_DISK : PT_COMPRESSED)); bool req = toku_ftnode_pf_req_callback(*dn, &bfe_subset); invariant(req); diff --git a/storage/tokudb/PerconaFT/ft/tests/log-test4.cc b/storage/tokudb/PerconaFT/ft/tests/log-test4.cc index e0bbedb95bf..019852bb729 100644 --- a/storage/tokudb/PerconaFT/ft/tests/log-test4.cc +++ b/storage/tokudb/PerconaFT/ft/tests/log-test4.cc @@ -54,7 +54,7 @@ test_main (int argc __attribute__((__unused__)), { ml_lock(&logger->input_lock); toku_logger_make_space_in_inbuf(logger, 5); - snprintf(logger->inbuf.buf+logger->inbuf.n_in_buf, 5, "a1234"); + memcpy(logger->inbuf.buf+logger->inbuf.n_in_buf, "a1234", 5); logger->inbuf.n_in_buf+=5; logger->lsn.lsn++; logger->inbuf.max_lsn_in_buf = logger->lsn; diff --git a/storage/tokudb/PerconaFT/portability/tests/test-max-data.cc b/storage/tokudb/PerconaFT/portability/tests/test-max-data.cc index dbbea974a49..fb5fc37111a 100644 --- a/storage/tokudb/PerconaFT/portability/tests/test-max-data.cc +++ b/storage/tokudb/PerconaFT/portability/tests/test-max-data.cc @@ -64,7 +64,7 @@ int main(int argc, char *const argv[]) { if (verbose) printf("maxdata=%" PRIu64 " 0x%" PRIx64 "\n", maxdata, maxdata); // check the data size -#if defined(__x86_64__) || defined(__aarch64__) +#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__) assert(maxdata > (1ULL << 32)); #elif __i386__ assert(maxdata < (1ULL << 32)); diff --git a/storage/tokudb/PerconaFT/portability/toku_instrumentation.h b/storage/tokudb/PerconaFT/portability/toku_instrumentation.h index 8c9390edc0a..c300f9275b8 100644 --- a/storage/tokudb/PerconaFT/portability/toku_instrumentation.h +++ b/storage/tokudb/PerconaFT/portability/toku_instrumentation.h @@ -52,6 +52,8 @@ class toku_instr_key { UU(const char *name)) {} explicit toku_instr_key(UU(pfs_key_t key_id)) {} + + ~toku_instr_key() {} }; typedef toku_instr_probe_empty toku_instr_probe; diff --git a/storage/tokudb/PerconaFT/portability/toku_portability.h b/storage/tokudb/PerconaFT/portability/toku_portability.h index 1096467a35d..8a3dcf5afc4 100644 --- a/storage/tokudb/PerconaFT/portability/toku_portability.h +++ b/storage/tokudb/PerconaFT/portability/toku_portability.h @@ -157,7 +157,7 @@ extern "C" { #endif // Deprecated functions. -#if !defined(TOKU_ALLOW_DEPRECATED) +#if !defined(TOKU_ALLOW_DEPRECATED) && !defined(__clang__) int creat(const char *pathname, mode_t mode) __attribute__((__deprecated__)); int fstat(int fd, struct stat *buf) __attribute__((__deprecated__)); int stat(const char *path, struct stat *buf) __attribute__((__deprecated__)); diff --git a/storage/tokudb/PerconaFT/portability/toku_pthread.h b/storage/tokudb/PerconaFT/portability/toku_pthread.h index 44de01244d2..e3bd3bce598 100644 --- a/storage/tokudb/PerconaFT/portability/toku_pthread.h +++ b/storage/tokudb/PerconaFT/portability/toku_pthread.h @@ -168,11 +168,7 @@ typedef struct toku_mutex_aligned { } #else // __linux__, at least #define ZERO_COND_INITIALIZER \ - { \ - { \ - { 0 } \ - } \ - } + {} #endif static inline void toku_mutexattr_init(toku_pthread_mutexattr_t *attr) { diff --git a/storage/tokudb/PerconaFT/portability/toku_time.h b/storage/tokudb/PerconaFT/portability/toku_time.h index a1278ef0337..c4c45b8e8c7 100644 --- a/storage/tokudb/PerconaFT/portability/toku_time.h +++ b/storage/tokudb/PerconaFT/portability/toku_time.h @@ -43,6 +43,9 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. #include #include #include +#if defined(__powerpc__) +# include +#endif static inline float toku_tdiff (struct timeval *a, struct timeval *b) { return (float)((a->tv_sec - b->tv_sec) + 1e-6 * (a->tv_usec - b->tv_usec)); @@ -106,6 +109,8 @@ static inline tokutime_t toku_time_now(void) { uint64_t result; __asm __volatile__ ("mrs %[rt], cntvct_el0" : [rt] "=r" (result)); return result; +#elif defined(__powerpc__) + return __ppc_get_timebase(); #else #error No timer implementation for this platform #endif diff --git a/storage/tokudb/PerconaFT/src/tests/checkpoint_stress.cc b/storage/tokudb/PerconaFT/src/tests/checkpoint_stress.cc index 135a9843ce4..d3e5ddd5031 100644 --- a/storage/tokudb/PerconaFT/src/tests/checkpoint_stress.cc +++ b/storage/tokudb/PerconaFT/src/tests/checkpoint_stress.cc @@ -351,7 +351,7 @@ test_main (int argc, char * const argv[]) { // arg that suppresses valgrind on this child process break; } - // otherwise, fall through to an error + /* fall through */ // otherwise, fall through to an error case 'h': case '?': usage(argv[0]); diff --git a/storage/tokudb/PerconaFT/src/tests/directory_lock.cc b/storage/tokudb/PerconaFT/src/tests/directory_lock.cc index f040e680903..b28a71704cf 100644 --- a/storage/tokudb/PerconaFT/src/tests/directory_lock.cc +++ b/storage/tokudb/PerconaFT/src/tests/directory_lock.cc @@ -69,7 +69,7 @@ static void verify_shared_ops_fail(DB_ENV* env, DB* db) { uint32_t flags = 0; DBT key,val; DBT in_key,in_val; - uint32_t in_key_data, in_val_data = 0; + uint32_t in_key_data = 0, in_val_data = 0; memset(&in_key, 0, sizeof(in_key)); memset(&in_val, 0, sizeof(in_val)); in_key.size = sizeof(in_key_data); diff --git a/storage/tokudb/PerconaFT/src/tests/loader-cleanup-test.cc b/storage/tokudb/PerconaFT/src/tests/loader-cleanup-test.cc index ea894683c23..a229cb5b565 100644 --- a/storage/tokudb/PerconaFT/src/tests/loader-cleanup-test.cc +++ b/storage/tokudb/PerconaFT/src/tests/loader-cleanup-test.cc @@ -172,12 +172,12 @@ err_type_str (enum test_type t) { case einval_o: return "open"; case enospc_fc: return "fclose"; case abort_via_poll: return "abort_via_poll"; - case commit: assert(0); - case abort_txn: assert(0); - case abort_loader: assert(0); + case commit: abort(); + case abort_txn: abort(); + case abort_loader: abort(); } // I know that Barry prefers the single-return case, but writing the code this way means that the compiler will complain if I forget something in the enum. -Bradley - assert(0); + abort(); return NULL; } @@ -193,12 +193,12 @@ err_msg_type_str (enum test_type t) { case einval_o: return "EINVAL"; case enospc_fc: return "ENOSPC"; case abort_via_poll: return "non-zero"; - case commit: assert(0); - case abort_txn: assert(0); - case abort_loader: assert(0); + case commit: abort(); + case abort_txn: abort(); + case abort_loader: abort(); } // I know that Barry prefers the single-return case, but writing the code this way means that the compiler will complain if I forget something in the enum. -Bradley - assert(0); + abort(); return NULL; } @@ -873,7 +873,7 @@ static void run_test(enum test_type t, int trigger) case abort_via_poll: poll_count_trigger = trigger; break; default: - assert(0); + abort(); } diff --git a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-abort.cc b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-abort.cc index a8455c0f406..425c12e1a90 100644 --- a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-abort.cc +++ b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-abort.cc @@ -81,7 +81,7 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals memcpy(dest_key->data, &pri_data[dbnum], dest_key->size); break; default: - assert(0); + abort(); } if (dest_val) { @@ -95,9 +95,9 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals } break; case DB_DBT_REALLOC: - assert(0); + abort(); default: - assert(0); + abort(); } } diff --git a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-srcdb-fdelete-all.cc b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-srcdb-fdelete-all.cc index e823a74627d..75479cb69c4 100644 --- a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-srcdb-fdelete-all.cc +++ b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple-srcdb-fdelete-all.cc @@ -85,7 +85,7 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals memcpy(dest_key->data, &pri_data[dbnum], dest_key->size); break; default: - assert(0); + abort(); } if (dest_val) { @@ -99,9 +99,9 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals } break; case DB_DBT_REALLOC: - assert(0); + abort(); default: - assert(0); + abort(); } } diff --git a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple.cc b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple.cc index c2ee80c438f..9f4b1cd9cb8 100644 --- a/storage/tokudb/PerconaFT/src/tests/recover-del-multiple.cc +++ b/storage/tokudb/PerconaFT/src/tests/recover-del-multiple.cc @@ -84,7 +84,7 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals memcpy(dest_key->data, &pri_data[dbnum], dest_key->size); break; default: - assert(0); + abort(); } if (dest_val) { @@ -98,9 +98,9 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals } break; case DB_DBT_REALLOC: - assert(0); + abort(); default: - assert(0); + abort(); } } diff --git a/storage/tokudb/PerconaFT/src/tests/recover-put-multiple-abort.cc b/storage/tokudb/PerconaFT/src/tests/recover-put-multiple-abort.cc index d045800960c..da40a61f24b 100644 --- a/storage/tokudb/PerconaFT/src/tests/recover-put-multiple-abort.cc +++ b/storage/tokudb/PerconaFT/src/tests/recover-put-multiple-abort.cc @@ -81,7 +81,7 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals memcpy(dest_key->data, &pri_data[dbnum], dest_key->size); break; default: - assert(0); + abort(); } if (dest_val) { @@ -95,9 +95,9 @@ put_callback(DB *dest_db, DB *src_db, DBT_ARRAY *dest_keys, DBT_ARRAY *dest_vals } break; case DB_DBT_REALLOC: - assert(0); + abort(); default: - assert(0); + abort(); } } diff --git a/storage/tokudb/PerconaFT/src/tests/recovery_fileops_unit.cc b/storage/tokudb/PerconaFT/src/tests/recovery_fileops_unit.cc index cc99ab560d8..45f0b465db4 100644 --- a/storage/tokudb/PerconaFT/src/tests/recovery_fileops_unit.cc +++ b/storage/tokudb/PerconaFT/src/tests/recovery_fileops_unit.cc @@ -158,7 +158,7 @@ do_args(int argc, char * const argv[]) { choices[i] = -1; } - char c; + signed char c; while ((c = getopt(argc, argv, "vqhcrO:A:B:C:D:E:F:G:H:I:J:X:")) != -1) { switch (c) { case 'v': @@ -217,7 +217,7 @@ do_args(int argc, char * const argv[]) { // arg that suppresses valgrind on this child process break; } - // otherwise, fall through to an error + /* fall through */ // otherwise, fall through to an error default: usage(); break; diff --git a/storage/tokudb/PerconaFT/src/tests/test-prepare3.cc b/storage/tokudb/PerconaFT/src/tests/test-prepare3.cc index 5cb3796a26b..f57fc963529 100644 --- a/storage/tokudb/PerconaFT/src/tests/test-prepare3.cc +++ b/storage/tokudb/PerconaFT/src/tests/test-prepare3.cc @@ -128,6 +128,7 @@ static void check_prepared_list (enum prepared_state ps[NTXNS], long count, DB_P goto next; case PREPARED: count_prepared++; + /* fall through */ case MAYBE_COMMITTED: case MAYBE_ABORTED: count_maybe_prepared++; diff --git a/storage/tokudb/hatoku_hton.cc b/storage/tokudb/hatoku_hton.cc index 1cfe4e0a8bc..114376f3541 100644 --- a/storage/tokudb/hatoku_hton.cc +++ b/storage/tokudb/hatoku_hton.cc @@ -983,7 +983,7 @@ static bool tokudb_sync_on_prepare(void) { } static int tokudb_xa_prepare(handlerton* hton, THD* thd, bool all) { - TOKUDB_DBUG_ENTER(""); + TOKUDB_DBUG_ENTER("%u", all); TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "enter"); int r = 0; @@ -1011,6 +1011,22 @@ static int tokudb_xa_prepare(handlerton* hton, THD* thd, bool all) { r = txn->xa_prepare(txn, &thd_xid, syncflag); // test hook to induce a crash on a debug build DBUG_EXECUTE_IF("tokudb_crash_prepare_after", DBUG_SUICIDE();); + + // XA log entries can be interleaved in the binlog since XA prepare on the master + // flushes to the binlog. There can be log entries from different clients pushed + // into the binlog before XA commit is executed on the master. Therefore, the slave + // thread must be able to juggle multiple XA transactions. Tokudb does this by + // zapping the client transaction context on the slave when executing the XA prepare + // and expecting to process XA commit with commit_by_xid (which supplies the XID so + // that the transaction can be looked up and committed). + if (r == 0 && all && thd->slave_thread) { + TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "zap txn context %u", thd_sql_command(thd)); + if (thd_sql_command(thd) == SQLCOM_XA_PREPARE) { + trx->all = NULL; + trx->sub_sp_level = NULL; + trx->sp_level = NULL; + } + } } else { TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "nothing to prepare %d", all); } @@ -1041,6 +1057,7 @@ static int tokudb_xa_recover(handlerton* hton, XID* xid_list, uint len) { static int tokudb_commit_by_xid(handlerton* hton, XID* xid) { TOKUDB_DBUG_ENTER(""); TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "enter"); + TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "xid %p", xid); int r = 0; DB_TXN* txn = NULL; TOKU_XA_XID* toku_xid = (TOKU_XA_XID*)xid; @@ -1060,6 +1077,7 @@ cleanup: static int tokudb_rollback_by_xid(handlerton* hton, XID* xid) { TOKUDB_DBUG_ENTER(""); TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "enter"); + TOKUDB_TRACE_FOR_FLAGS(TOKUDB_DEBUG_XA, "xid %p", xid); int r = 0; DB_TXN* txn = NULL; TOKU_XA_XID* toku_xid = (TOKU_XA_XID*)xid; From dfb1fdabab740c9ead901afbedcde514c571f7d5 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Tue, 24 Apr 2018 16:32:44 +0200 Subject: [PATCH 09/45] MDEV-16006 Fix test galera_kill_nochanges The test performs a restart and while doing so it occasionally fails with "Server did not transition to READY state" in `include/start_mysqld.inc". Fix is to wait for the cluster to shrink before restarting the node. --- mysql-test/suite/galera/r/galera_kill_nochanges.result | 2 ++ mysql-test/suite/galera/t/galera_kill_nochanges.test | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/mysql-test/suite/galera/r/galera_kill_nochanges.result b/mysql-test/suite/galera/r/galera_kill_nochanges.result index db3c75e2886..cdcebdb4eee 100644 --- a/mysql-test/suite/galera/r/galera_kill_nochanges.result +++ b/mysql-test/suite/galera/r/galera_kill_nochanges.result @@ -1,6 +1,8 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); Killing server ... +SET SESSION wsrep_sync_wait = 0; +SET SESSION wsrep_sync_wait = DEFAULT; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/t/galera_kill_nochanges.test b/mysql-test/suite/galera/t/galera_kill_nochanges.test index 1903df449e4..4106378885f 100644 --- a/mysql-test/suite/galera/t/galera_kill_nochanges.test +++ b/mysql-test/suite/galera/t/galera_kill_nochanges.test @@ -11,6 +11,14 @@ INSERT INTO t1 VALUES (1); --connection node_2 --source include/kill_galera.inc + +--connection node_1 +SET SESSION wsrep_sync_wait = 0; +--let $wait_condition = SELECT VARIABLE_VALUE = 'non-Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status' +--source include/wait_condition.inc +SET SESSION wsrep_sync_wait = DEFAULT; + +--connection node_2 --source include/start_mysqld.inc --let $galera_connection_name = node_2a From cf242aded51f1e1fb53b75911ab7e4da3af37eb4 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Apr 2018 19:08:50 +0200 Subject: [PATCH 10/45] 8.42 --- pcre/AUTHORS | 6 +- pcre/ChangeLog | 53 ++ pcre/INSTALL | 316 ++++---- pcre/LICENCE | 6 +- pcre/Makefile.in | 58 +- pcre/NEWS | 6 + pcre/NON-AUTOTOOLS-BUILD | 15 +- pcre/aclocal.m4 | 46 +- pcre/ar-lib | 2 +- pcre/compile | 9 +- pcre/config.guess | 188 +++-- pcre/config.h.generic | 6 +- pcre/config.sub | 73 +- pcre/configure | 145 ++-- pcre/configure.ac | 26 +- pcre/depcomp | 6 +- pcre/doc/html/NON-AUTOTOOLS-BUILD.txt | 15 +- pcre/install-sh | 4 +- pcre/ltmain.sh | 768 +++++++++++++------- pcre/m4/libtool.m4 | 69 +- pcre/m4/ltoptions.m4 | 2 +- pcre/m4/ltsugar.m4 | 2 +- pcre/m4/ltversion.m4 | 12 +- pcre/m4/lt~obsolete.m4 | 2 +- pcre/missing | 6 +- pcre/pcre.h.generic | 12 +- pcre/pcre.h.in | 8 +- pcre/pcre_compile.c | 2 +- pcre/pcre_dfa_exec.c | 4 +- pcre/pcre_exec.c | 8 +- pcre/pcre_jit_compile.c | 407 ++++++++--- pcre/pcregrep.c | 55 +- pcre/pcreposix.c | 6 +- pcre/sljit/sljitConfig.h | 6 +- pcre/sljit/sljitConfigInternal.h | 70 +- pcre/sljit/sljitLir.c | 711 +++++++++++++----- pcre/sljit/sljitLir.h | 431 ++++++----- pcre/sljit/sljitNativeARM_32.c | 750 +++++++++++++------ pcre/sljit/sljitNativeARM_64.c | 992 +++++++++++--------------- pcre/sljit/sljitNativeARM_T2_32.c | 647 +++++++++++++---- pcre/sljit/sljitNativeMIPS_32.c | 229 ++++++ pcre/sljit/sljitNativeMIPS_64.c | 129 ++++ pcre/sljit/sljitNativeMIPS_common.c | 313 ++++---- pcre/sljit/sljitNativePPC_64.c | 55 ++ pcre/sljit/sljitNativePPC_common.c | 980 +++++++++++-------------- pcre/sljit/sljitNativeSPARC_32.c | 119 +++ pcre/sljit/sljitNativeSPARC_common.c | 221 +++--- pcre/sljit/sljitNativeX86_32.c | 490 ++++++++++--- pcre/sljit/sljitNativeX86_64.c | 366 ++++++---- pcre/sljit/sljitNativeX86_common.c | 216 ++---- pcre/sljit/sljitUtils.c | 103 ++- pcre/test-driver | 6 +- pcre/testdata/testinput2 | 8 + pcre/testdata/testinput5 | 6 + pcre/testdata/testoutput2 | 16 + pcre/testdata/testoutput5 | 8 + 56 files changed, 5811 insertions(+), 3404 deletions(-) diff --git a/pcre/AUTHORS b/pcre/AUTHORS index 291657caef1..eb9b1a44b34 100644 --- a/pcre/AUTHORS +++ b/pcre/AUTHORS @@ -8,7 +8,7 @@ Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2017 University of Cambridge +Copyright (c) 1997-2018 University of Cambridge All rights reserved @@ -19,7 +19,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2010-2017 Zoltan Herczeg +Copyright(c) 2010-2018 Zoltan Herczeg All rights reserved. @@ -30,7 +30,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2009-2017 Zoltan Herczeg +Copyright(c) 2009-2018 Zoltan Herczeg All rights reserved. diff --git a/pcre/ChangeLog b/pcre/ChangeLog index 590a7542885..7b53195f6a6 100644 --- a/pcre/ChangeLog +++ b/pcre/ChangeLog @@ -4,6 +4,59 @@ ChangeLog for PCRE Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All development is happening in the PCRE2 10.xx series. + +Version 8.42 20-March-2018 +-------------------------- + +1. Fixed a MIPS issue in the JIT compiler reported by Joshua Kinard. + +2. Fixed outdated real_pcre definitions in pcre.h.in (patch by Evgeny Kotkov). + +3. pcregrep was truncating components of file names to 128 characters when +processing files with the -r option, and also (some very odd code) truncating +path names to 512 characters. There is now a check on the absolute length of +full path file names, which may be up to 2047 characters long. + +4. Using pcre_dfa_exec(), in UTF mode when UCP support was not defined, there +was the possibility of a false positive match when caselessly matching a "not +this character" item such as [^\x{1234}] (with a code point greater than 127) +because the "other case" variable was not being initialized. + +5. Although pcre_jit_exec checks whether the pattern is compiled +in a given mode, it was also expected that at least one mode is available. +This is fixed and pcre_jit_exec returns with PCRE_ERROR_JIT_BADOPTION +when the pattern is not optimized by JIT at all. + +6. The line number and related variables such as match counts in pcregrep +were all int variables, causing overflow when files with more than 2147483647 +lines were processed (assuming 32-bit ints). They have all been changed to +unsigned long ints. + +7. If a backreference with a minimum repeat count of zero was first in a +pattern, apart from assertions, an incorrect first matching character could be +recorded. For example, for the pattern /(?=(a))\1?b/, "b" was incorrectly set +as the first character of a match. + +8. Fix out-of-bounds read for partial matching of /./ against an empty string +when the newline type is CRLF. + +9. When matching using the the REG_STARTEND feature of the POSIX API with a +non-zero starting offset, unset capturing groups with lower numbers than a +group that did capture something were not being correctly returned as "unset" +(that is, with offset values of -1). + +10. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string +containing multi-code-unit characters caused bad behaviour and possibly a +crash. This issue was fixed for other kinds of repeat in release 8.37 by change +38, but repeating character classes were overlooked. + +11. A small fix to pcregrep to avoid compiler warnings for -Wformat-overflow=2. + +12. Added --enable-jit=auto support to configure.ac. + +13. Fix misleading error message in configure.ac. + + Version 8.41 05-July-2017 ------------------------- diff --git a/pcre/INSTALL b/pcre/INSTALL index 2099840756e..8865734f81b 100644 --- a/pcre/INSTALL +++ b/pcre/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, -Inc. + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -12,97 +12,96 @@ without warranty of any kind. Basic Installation ================== - Briefly, the shell command `./configure && make && make install' + Briefly, the shell command './configure && make && make install' should configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for +more-detailed instructions are generic; see the 'README' file for instructions specific to this package. Some packages provide this -`INSTALL' file but do not implement all of the features documented +'INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. - The `configure' shell script attempts to guess correct values for + The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you +some point 'config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. The simplest way to compile this package is: - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. - Running `configure' might take a while. While running, it prints + Running 'configure' might take a while. While running, it prints some messages telling which features it is checking for. - 2. Type `make' to compile the package. + 2. Type 'make' to compile the package. - 3. Optionally, type `make check' to run any self-tests that come with + 3. Optionally, type 'make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. - 4. Type `make install' to install the programs and any data files and + 4. Type 'make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular - user, and only the `make install' phase executed with root + user, and only the 'make install' phase executed with root privileges. - 5. Optionally, type `make installcheck' to repeat any self-tests, but + 5. Optionally, type 'make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a - regular user, particularly if the prior `make install' required + regular user, particularly if the prior 'make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. - 7. Often, you can also type `make uninstall' to remove the installed + 7. Often, you can also type 'make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. - 8. Some packages, particularly those that use Automake, provide `make + 8. Some packages, particularly those that use Automake, provide 'make distcheck', which can by used by developers to test that all other - targets like `make install' and `make uninstall' work correctly. + targets like 'make install' and 'make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' +the 'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix @@ -113,21 +112,21 @@ Compiling For Multiple Architectures You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the +own directory. To do this, you can use GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. This -is known as a "VPATH" build. +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. - With a non-GNU `make', it is safer to compile the package for one + With a non-GNU 'make', it is safer to compile the package for one architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before +installed the package for one architecture, use 'make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ @@ -136,105 +135,104 @@ this: This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. +using the 'lipo' tool if you have problems. Installation Names ================== - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX', where PREFIX must be an + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the -default for these options is expressed in terms of `${prefix}', so that -specifying just `--prefix' will affect all of the other directory +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the -correct locations to `configure'; however, many packages provide one or +correct locations to 'configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the -`make install' command line to change installation locations without +'make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each -affected directory. For example, `make install +affected directory. For example, 'make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of -`${prefix}'. Any directories that were specified during `configure', -but not in terms of `${prefix}', must each be overridden at install -time for the entire installation to be relocated. The approach of -makefile variable overrides for each directory variable is required by -the GNU Coding Standards, and ideally causes no recompilation. -However, some platforms have known limitations with the semantics of -shared libraries that end up requiring recompilation when using this -method, particularly noticeable in packages that use GNU Libtool. +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. - The second method involves providing the `DESTDIR' variable. For -example, `make install DESTDIR=/alternate/directory' will prepend -`/alternate/directory' before all installation names. The approach of -`DESTDIR' overrides is not required by the GNU Coding Standards, and + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of `${prefix}' -at `configure' time. +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the package recognizes. - For packages that use the X Window System, `configure' can usually + For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the -execution of `make' will be. For these packages, running `./configure +execution of 'make' will be. For these packages, running './configure --enable-silent-rules' sets the default to minimal output, which can be -overridden with `make V=1'; while running `./configure +overridden with 'make V=1'; while running './configure --disable-silent-rules' sets the default to verbose, which can be -overridden with `make V=0'. +overridden with 'make V=0'. Particular systems ================== - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX `make' updates targets which have the same time stamps as -their prerequisites, which makes it generally unusable when shipped -generated files such as `configure' are involved. Use GNU `make' -instead. + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try ./configure CC="cc" @@ -242,26 +240,26 @@ and if that doesn't work, try ./configure CC="cc -nodtk" - On Solaris, don't put `/usr/ucb' early in your `PATH'. This + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== - There may be some features `configure' cannot figure out + There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints +_same_ architectures, 'configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM @@ -270,101 +268,101 @@ where SYSTEM can have one of these forms: OS KERNEL-OS - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will +use the option '--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. +eventually be run) with '--host=TYPE'. Sharing Defaults ================ - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run +environment passed to 'configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc -causes the specified `gcc' to be used as the C compiler (unless it is +causes the specified 'gcc' to be used as the C compiler (unless it is overridden in the site shell script). -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf limitation. Until the limitation is lifted, you can use -this workaround: +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash -`configure' Invocation +'configure' Invocation ====================== - `configure' recognizes the following options to control how it + 'configure' recognizes the following options to control how it operates. -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. -`--help=short' -`--help=recursive' +'--help=short' +'--help=recursive' Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' script, and exit. -`--cache-file=FILE' +'--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to + traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. -`--quiet' -`--silent' -`-q' +'--quiet' +'--silent' +'-q' Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error + suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). -`--srcdir=DIR' +'--srcdir=DIR' Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. + 'configure' can determine that directory automatically. -`--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. -`--no-create' -`-n' +'--no-create' +'-n' Run the configure checks, but stop before creating any output files. -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/pcre/LICENCE b/pcre/LICENCE index dd9071a8dd8..f6ef7fd7664 100644 --- a/pcre/LICENCE +++ b/pcre/LICENCE @@ -25,7 +25,7 @@ Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. -Copyright (c) 1997-2017 University of Cambridge +Copyright (c) 1997-2018 University of Cambridge All rights reserved. @@ -36,7 +36,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2010-2017 Zoltan Herczeg +Copyright(c) 2010-2018 Zoltan Herczeg All rights reserved. @@ -47,7 +47,7 @@ Written by: Zoltan Herczeg Email local part: hzmester Emain domain: freemail.hu -Copyright(c) 2009-2017 Zoltan Herczeg +Copyright(c) 2009-2018 Zoltan Herczeg All rights reserved. diff --git a/pcre/Makefile.in b/pcre/Makefile.in index 9c8ccecbd87..156cb77fe47 100644 --- a/pcre/Makefile.in +++ b/pcre/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -251,7 +251,7 @@ libpcre_la_OBJECTS = $(am_libpcre_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = +am__v_lt_1 = libpcre_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre_la_CFLAGS) \ $(CFLAGS) $(libpcre_la_LDFLAGS) $(LDFLAGS) -o $@ @@ -449,11 +449,11 @@ am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -467,7 +467,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -475,7 +475,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ @@ -485,7 +485,7 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ @@ -493,7 +493,7 @@ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_1 = SOURCES = $(libpcre_la_SOURCES) $(nodist_libpcre_la_SOURCES) \ $(libpcre16_la_SOURCES) $(nodist_libpcre16_la_SOURCES) \ $(libpcre32_la_SOURCES) $(nodist_libpcre32_la_SOURCES) \ @@ -988,7 +988,7 @@ dist_noinst_DATA = $(pcrecpp_html) # The Libtool libraries to install. We'll add to this later. lib_LTLIBRARIES = $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_20) $(am__append_22) -check_SCRIPTS = +check_SCRIPTS = dist_noinst_SCRIPTS = RunTest $(am__append_39) # Additional files to delete on 'make clean' and 'make maintainer-clean'. @@ -1110,7 +1110,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE8_TRUE@libpcre_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ @WITH_PCRE8_TRUE@ $(am__append_7) $(am__append_10) -@WITH_PCRE8_TRUE@libpcre_la_LIBADD = +@WITH_PCRE8_TRUE@libpcre_la_LIBADD = @WITH_PCRE8_TRUE@nodist_libpcre_la_SOURCES = \ @WITH_PCRE8_TRUE@ pcre_chartables.c @@ -1141,7 +1141,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE16_TRUE@libpcre16_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE16_TRUE@ $(AM_CFLAGS) $(am__append_8) \ @WITH_PCRE16_TRUE@ $(am__append_11) -@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = +@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = @WITH_PCRE16_TRUE@nodist_libpcre16_la_SOURCES = \ @WITH_PCRE16_TRUE@ pcre_chartables.c @@ -1172,7 +1172,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE32_TRUE@libpcre32_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE32_TRUE@ $(AM_CFLAGS) $(am__append_9) \ @WITH_PCRE32_TRUE@ $(am__append_12) -@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = +@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = @WITH_PCRE32_TRUE@nodist_libpcre32_la_SOURCES = \ @WITH_PCRE32_TRUE@ pcre_chartables.c @@ -1313,8 +1313,8 @@ pcrecpp_man = doc/pcrecpp.3 @WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION) @WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info @WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage -@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = -@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = @WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V)) @WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY)) @WITH_GCOV_TRUE@coverage_quiet_0 = --quiet @@ -1364,7 +1364,7 @@ config.h: stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) +$(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -1425,19 +1425,19 @@ clean-libLTLIBRARIES: rm -f $${locs}; \ } -libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) +libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre_la_LINK) $(am_libpcre_la_rpath) $(libpcre_la_OBJECTS) $(libpcre_la_LIBADD) $(LIBS) -libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) +libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre16_la_LINK) $(am_libpcre16_la_rpath) $(libpcre16_la_OBJECTS) $(libpcre16_la_LIBADD) $(LIBS) -libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) +libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre32_la_LINK) $(am_libpcre32_la_rpath) $(libpcre32_la_OBJECTS) $(libpcre32_la_LIBADD) $(LIBS) -libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) +libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) $(AM_V_CXXLD)$(libpcrecpp_la_LINK) $(am_libpcrecpp_la_rpath) $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_LIBADD) $(LIBS) -libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) +libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcreposix_la_LINK) $(am_libpcreposix_la_rpath) $(libpcreposix_la_OBJECTS) $(libpcreposix_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @@ -1498,31 +1498,31 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) +dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) @rm -f dftables$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dftables_OBJECTS) $(dftables_LDADD) $(LIBS) -pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) +pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) @rm -f pcre_jit_test$(EXEEXT) $(AM_V_CCLD)$(pcre_jit_test_LINK) $(pcre_jit_test_OBJECTS) $(pcre_jit_test_LDADD) $(LIBS) -pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) +pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) @rm -f pcre_scanner_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_scanner_unittest_LINK) $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_LDADD) $(LIBS) -pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) +pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) @rm -f pcre_stringpiece_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_stringpiece_unittest_LINK) $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_LDADD) $(LIBS) -pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) +pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) @rm -f pcrecpp_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcrecpp_unittest_LINK) $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_LDADD) $(LIBS) -pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) +pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) @rm -f pcregrep$(EXEEXT) $(AM_V_CCLD)$(pcregrep_LINK) $(pcregrep_OBJECTS) $(pcregrep_LDADD) $(LIBS) -pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) +pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) @rm -f pcretest$(EXEEXT) $(AM_V_CCLD)$(pcretest_LINK) $(pcretest_OBJECTS) $(pcretest_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @@ -3003,8 +3003,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@WITH_GCOV_FALSE@distclean-local: @WITH_GCOV_FALSE@clean-local: +@WITH_GCOV_FALSE@distclean-local: clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ diff --git a/pcre/NEWS b/pcre/NEWS index 36be07cb880..09b4ad36003 100644 --- a/pcre/NEWS +++ b/pcre/NEWS @@ -1,6 +1,12 @@ News about PCRE releases ------------------------ +Release 8.42 20-March-2018 +-------------------------- + +This is a bug-fix release. + + Release 8.41 13-June-2017 ------------------------- diff --git a/pcre/NON-AUTOTOOLS-BUILD b/pcre/NON-AUTOTOOLS-BUILD index 3910059106b..37f6164475b 100644 --- a/pcre/NON-AUTOTOOLS-BUILD +++ b/pcre/NON-AUTOTOOLS-BUILD @@ -760,13 +760,14 @@ The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and applications can be supported through UNIX System Services, and in such an environment PCRE can be built in the same way as in other systems. However, in native z/OS (without UNIX System Services) and in z/VM, special ports are -required. For details, please see this web site: +required. PCRE1 version 8.39 is available in file 882 on this site: - http://www.zaconsultants.net + http://www.cbttape.org -You may download PCRE from WWW.CBTTAPE.ORG, file 882.  Everything, source and -executable, is in EBCDIC and native z/OS file formats and this is the -recommended download site. +Everything, source and executable, is in EBCDIC and native z/OS file formats. +However, this software is not maintained and will not be upgraded. If you are +new to PCRE you should be looking at PCRE2 (version 10.30 or later). -========================== -Last Updated: 25 June 2015 +=============================== +Last Updated: 13 September 2017 +=============================== diff --git a/pcre/aclocal.m4 b/pcre/aclocal.m4 index c2b46211930..71bd63e6c80 100644 --- a/pcre/aclocal.m4 +++ b/pcre/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -296,7 +296,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -311,7 +311,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.15.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -327,12 +327,12 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.15.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -394,7 +394,7 @@ AC_SUBST([AR])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -446,7 +446,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -477,7 +477,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -668,7 +668,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -744,7 +744,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -941,7 +941,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -962,7 +962,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -983,7 +983,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1033,7 +1033,7 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1072,7 +1072,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1101,7 +1101,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1148,7 +1148,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1167,7 +1167,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1248,7 +1248,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1308,7 +1308,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1336,7 +1336,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1355,7 +1355,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/pcre/ar-lib b/pcre/ar-lib index 463b9ec0206..05094d34c69 100755 --- a/pcre/ar-lib +++ b/pcre/ar-lib @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2014 Free Software Foundation, Inc. +# Copyright (C) 2010-2017 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify diff --git a/pcre/compile b/pcre/compile index a85b723c7e6..2ab71e4ea13 100755 --- a/pcre/compile +++ b/pcre/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -342,6 +343,6 @@ exit $ret # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/pcre/config.guess b/pcre/config.guess index 6c32c8645c8..2193702b12a 100755 --- a/pcre/config.guess +++ b/pcre/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2017-05-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ timestamp='2014-11-04' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -618,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -663,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -680,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -790,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -813,10 +837,11 @@ EOF UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -879,7 +904,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -902,7 +927,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -933,6 +958,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -945,6 +973,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -970,6 +1001,9 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1002,6 +1036,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1021,7 +1058,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1100,7 +1137,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1249,6 +1286,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1262,16 +1302,23 @@ EOF UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1286,7 +1333,7 @@ EOF exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1295,15 +1342,18 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) + NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; - NSR-?:NONSTOP_KERNEL:*:*) + NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk${UNAME_RELEASE} + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; @@ -1317,7 +1367,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1359,7 +1409,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1370,23 +1420,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/pcre/config.h.generic b/pcre/config.h.generic index 3ad45741272..b7473c205c7 100644 --- a/pcre/config.h.generic +++ b/pcre/config.h.generic @@ -235,7 +235,7 @@ sure both macros are undefined; an emulation function will then be used. */ #define PACKAGE_NAME "PCRE" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "PCRE 8.41" +#define PACKAGE_STRING "PCRE 8.42" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "pcre" @@ -244,7 +244,7 @@ sure both macros are undefined; an emulation function will then be used. */ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "8.41" +#define PACKAGE_VERSION "8.42" /* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested parentheses (of any kind) in a pattern. This limits the amount of system @@ -336,7 +336,7 @@ sure both macros are undefined; an emulation function will then be used. */ /* #undef SUPPORT_VALGRIND */ /* Version number of package */ -#define VERSION "8.41" +#define VERSION "8.42" /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ diff --git a/pcre/config.sub b/pcre/config.sub index 7ffe3737842..40ea5dfe115 100755 --- a/pcre/config.sub +++ b/pcre/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2017-04-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ timestamp='2014-12-03' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2014-12-03' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,15 +254,16 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ - | i370 | i860 | i960 | ia64 \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ @@ -301,11 +301,12 @@ case $basic_machine in | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -314,6 +315,7 @@ case $basic_machine in | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ + | wasm32 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -376,17 +378,18 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ @@ -427,13 +430,15 @@ case $basic_machine in | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -442,6 +447,7 @@ case $basic_machine in | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ + | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -518,6 +524,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -638,6 +647,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -933,6 +950,9 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf @@ -1017,7 +1037,7 @@ case $basic_machine in ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1027,7 +1047,7 @@ case $basic_machine in ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1228,6 +1248,9 @@ case $basic_machine in basic_machine=a29k-wrs os=-vxworks ;; + wasm32) + basic_machine=wasm32-unknown + ;; w65*) basic_machine=w65-wdc os=-none @@ -1373,18 +1396,18 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1393,7 +1416,8 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1525,6 +1549,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) @@ -1620,6 +1646,9 @@ case $basic_machine in sparc-* | *-sun) os=-sunos4.1.1 ;; + pru-*) + os=-elf + ;; *-be) os=-beos ;; diff --git a/pcre/configure b/pcre/configure index 6fe8854a94e..0d05374f1f6 100755 --- a/pcre/configure +++ b/pcre/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PCRE 8.41. +# Generated by GNU Autoconf 2.69 for PCRE 8.42. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='PCRE' PACKAGE_TARNAME='pcre' -PACKAGE_VERSION='8.41' -PACKAGE_STRING='PCRE 8.41' +PACKAGE_VERSION='8.42' +PACKAGE_STRING='PCRE 8.42' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1418,7 +1418,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PCRE 8.41 to adapt to many kinds of systems. +\`configure' configures PCRE 8.42 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1488,7 +1488,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PCRE 8.41:";; + short | recursive ) echo "Configuration of PCRE 8.42:";; esac cat <<\_ACEOF @@ -1662,7 +1662,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PCRE configure 8.41 +PCRE configure 8.42 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2419,7 +2419,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by PCRE $as_me 8.41, which was +It was created by PCRE $as_me 8.42, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3283,7 +3283,7 @@ fi # Define the identity of the package. PACKAGE='pcre' - VERSION='8.41' + VERSION='8.42' cat >>confdefs.h <<_ACEOF @@ -6608,8 +6608,8 @@ esac -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.6.40-6ca5-dirty' +macro_revision='2.4.6.40' @@ -8064,13 +8064,29 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cru} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -9788,8 +9804,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -11293,6 +11309,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -11510,7 +11527,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -12147,6 +12164,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -14090,30 +14108,41 @@ striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if test -z "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -15012,6 +15041,7 @@ fi emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes + file_list_spec_CXX='@' ;; dgux*) @@ -16447,7 +16477,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -17634,9 +17664,9 @@ _ACEOF # Versioning PCRE_MAJOR="8" -PCRE_MINOR="41" +PCRE_MINOR="42" PCRE_PRERELEASE="" -PCRE_DATE="2017-07-05" +PCRE_DATE="2018-03-20" if test "$PCRE_MINOR" = "08" -o "$PCRE_MINOR" = "09" then @@ -17708,6 +17738,32 @@ else fi +# This code enables JIT if the hardware supports it. + +if test "$enable_jit" = "auto"; then + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define SLJIT_CONFIG_AUTO 1 + #include "sljit/sljitConfigInternal.h" + #if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) + #error unsupported + #endif +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + enable_jit=yes +else + enable_jit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + # Handle --disable-pcregrep-jit (enabled by default) # Check whether --enable-pcregrep-jit was given. if test "${enable_pcregrep_jit+set}" = set; then : @@ -18204,7 +18260,7 @@ pcre_have_type_traits="0" pcre_have_bits_type_traits="0" if test "x$enable_cpp" = "xyes" -a -z "$CXX"; then - as_fn_error $? "You need a C++ compiler for C++ support." "$LINENO" 5 + as_fn_error $? "Invalid C++ compiler or C++ compiler flags" "$LINENO" 5 fi if test "x$enable_cpp" = "xyes" -a -n "$CXX" @@ -19658,16 +19714,16 @@ esac # (Note: The libpcre*_version bits are m4 variables, assigned above) EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \ - $NO_UNDEFINED -version-info 3:9:2" + $NO_UNDEFINED -version-info 3:10:2" EXTRA_LIBPCRE16_LDFLAGS="$EXTRA_LIBPCRE16_LDFLAGS \ - $NO_UNDEFINED -version-info 2:9:2" + $NO_UNDEFINED -version-info 2:10:2" EXTRA_LIBPCRE32_LDFLAGS="$EXTRA_LIBPCRE32_LDFLAGS \ - $NO_UNDEFINED -version-info 0:9:0" + $NO_UNDEFINED -version-info 0:10:0" EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \ - $NO_UNDEFINED -version-info 0:5:0" + $NO_UNDEFINED -version-info 0:6:0" EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \ $NO_UNDEFINED -version-info 0:1:0 \ @@ -20719,7 +20775,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PCRE $as_me 8.41, which was +This file was extended by PCRE $as_me 8.42, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20785,7 +20841,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PCRE config.status 8.41 +PCRE config.status 8.42 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -20957,6 +21013,7 @@ file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -21140,7 +21197,6 @@ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -22162,8 +22218,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec diff --git a/pcre/configure.ac b/pcre/configure.ac index 718a18508c9..dcdef6a9427 100644 --- a/pcre/configure.ac +++ b/pcre/configure.ac @@ -9,18 +9,18 @@ dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might dnl be defined as -RC2, for example. For real releases, it should be empty. m4_define(pcre_major, [8]) -m4_define(pcre_minor, [41]) +m4_define(pcre_minor, [42]) m4_define(pcre_prerelease, []) -m4_define(pcre_date, [2017-07-05]) +m4_define(pcre_date, [2018-03-20]) # NOTE: The CMakeLists.txt file searches for the above variables in the first # 50 lines of this file. Please update that if the variables above are moved. # Libtool shared library interface versions (current:revision:age) -m4_define(libpcre_version, [3:9:2]) -m4_define(libpcre16_version, [2:9:2]) -m4_define(libpcre32_version, [0:9:0]) -m4_define(libpcreposix_version, [0:5:0]) +m4_define(libpcre_version, [3:10:2]) +m4_define(libpcre16_version, [2:10:2]) +m4_define(libpcre32_version, [0:10:0]) +m4_define(libpcreposix_version, [0:6:0]) m4_define(libpcrecpp_version, [0:1:0]) AC_PREREQ(2.57) @@ -155,6 +155,18 @@ AC_ARG_ENABLE(jit, [enable Just-In-Time compiling support]), , enable_jit=no) +# This code enables JIT if the hardware supports it. + +if test "$enable_jit" = "auto"; then + AC_LANG(C) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #define SLJIT_CONFIG_AUTO 1 + #include "sljit/sljitConfigInternal.h" + #if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) + #error unsupported + #endif]])], enable_jit=yes, enable_jit=no) +fi + # Handle --disable-pcregrep-jit (enabled by default) AC_ARG_ENABLE(pcregrep-jit, AS_HELP_STRING([--disable-pcregrep-jit], @@ -469,7 +481,7 @@ pcre_have_type_traits="0" pcre_have_bits_type_traits="0" if test "x$enable_cpp" = "xyes" -a -z "$CXX"; then - AC_MSG_ERROR([You need a C++ compiler for C++ support.]) + AC_MSG_ERROR([Invalid C++ compiler or C++ compiler flags]) fi if test "x$enable_cpp" = "xyes" -a -n "$CXX" diff --git a/pcre/depcomp b/pcre/depcomp index fc98710e2a1..b39f98f9ae9 100755 --- a/pcre/depcomp +++ b/pcre/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -786,6 +786,6 @@ exit 0 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/pcre/doc/html/NON-AUTOTOOLS-BUILD.txt b/pcre/doc/html/NON-AUTOTOOLS-BUILD.txt index 3910059106b..37f6164475b 100644 --- a/pcre/doc/html/NON-AUTOTOOLS-BUILD.txt +++ b/pcre/doc/html/NON-AUTOTOOLS-BUILD.txt @@ -760,13 +760,14 @@ The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and applications can be supported through UNIX System Services, and in such an environment PCRE can be built in the same way as in other systems. However, in native z/OS (without UNIX System Services) and in z/VM, special ports are -required. For details, please see this web site: +required. PCRE1 version 8.39 is available in file 882 on this site: - http://www.zaconsultants.net + http://www.cbttape.org -You may download PCRE from WWW.CBTTAPE.ORG, file 882.  Everything, source and -executable, is in EBCDIC and native z/OS file formats and this is the -recommended download site. +Everything, source and executable, is in EBCDIC and native z/OS file formats. +However, this software is not maintained and will not be upgraded. If you are +new to PCRE you should be looking at PCRE2 (version 10.30 or later). -========================== -Last Updated: 25 June 2015 +=============================== +Last Updated: 13 September 2017 +=============================== diff --git a/pcre/install-sh b/pcre/install-sh index 0b0fdcbba69..0360b79e7d0 100755 --- a/pcre/install-sh +++ b/pcre/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2016-01-11.22; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -496,6 +496,6 @@ done # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/pcre/ltmain.sh b/pcre/ltmain.sh index 0f0a2da3f9d..857338fef37 100644 --- a/pcre/ltmain.sh +++ b/pcre/ltmain.sh @@ -1,12 +1,12 @@ #! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2016-02-21.11 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.4.6.40-6ca5-dirty # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.6 -package_revision=2.4.6 +VERSION=2.4.6.40-6ca5-dirty +package_revision=2.4.6.40 ## ------ ## @@ -64,34 +64,25 @@ package_revision=2.4.6 # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2017-04-19.12; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2017 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -140,9 +131,6 @@ do fi" done -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - # Make sure IFS has a sensible default sp=' ' nl=' @@ -159,6 +147,26 @@ if test "${PATH_SEPARATOR+set}" != set; then fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +267,7 @@ test -z "$SED" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +303,7 @@ test -z "$GREP" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -580,16 +588,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1099,199 @@ func_relative_path () } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" - fi + case $func_quote_portable_result in + *[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () { - $debug_cmd - - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; - esac - - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: ;; esac - func_quote_for_expand_result=$_G_arg + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1337,8 @@ func_show_eval () _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1363,8 @@ func_show_eval_locale () _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1491,26 @@ func_lt_ver () # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2014-01-07.03; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2017 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Please report bugs or propose patches to: +# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2016-03-06.01; # UTC ## ------ ## @@ -1415,7 +1533,7 @@ scriptversion=2014-01-07.03; # UTC # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1545,7 @@ scriptversion=2014-01-07.03; # UTC # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1594,8 @@ fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1628,8 @@ func_add_hook () # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1638,28 @@ func_remove_hook () } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1532,22 +1669,19 @@ func_run_hooks () case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi done - - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result } @@ -1557,10 +1691,18 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. Like this: +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1712,8 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1722,36 @@ func_run_hooks () # { # $debug_cmd # -# # Note that for efficiency, we parse as many options as we can +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi # } # func_add_hook func_parse_options my_silent_option # @@ -1610,17 +1762,26 @@ func_run_hooks () # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1791,27 @@ func_options () { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_options_quoted=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1649,9 +1820,8 @@ func_options () # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning. +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1662,9 +1832,7 @@ func_options_prep () opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} - - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + func_propagate_result func_run_hooks func_options_prep } @@ -1676,25 +1844,32 @@ func_parse_options () { $debug_cmd - func_parse_options_result= - + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1704,7 +1879,10 @@ func_parse_options () ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1935,24 @@ func_parse_options () shift ;; - --) break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi } @@ -1782,12 +1969,10 @@ func_validate_options () test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result } @@ -1843,8 +2028,8 @@ func_missing_arg () # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1859,8 +2044,9 @@ then func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1938,31 +2124,44 @@ func_usage_message () # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^# Written by / { - s|^# || - p - } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -1977,7 +2176,7 @@ func_version () # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.4.6.40-6ca5-dirty' # func_echo ARG... @@ -2068,12 +2267,12 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname (GNU libtool) 2.4.6 + version: $progname (GNU libtool) 2.4.6.40-6ca5-dirty automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . -GNU libtool home page: . +GNU libtool home page: . General help using GNU software: ." exit 0 } @@ -2124,7 +2323,7 @@ fi # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2270,6 +2469,8 @@ libtool_options_prep () nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2494,16 @@ libtool_options_prep () uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2515,12 @@ libtool_parse_options () { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2595,20 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done - - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi } func_add_hook func_parse_options libtool_parse_options @@ -2451,8 +2665,8 @@ libtool_validate_options () } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3418,8 +3632,8 @@ func_mode_compile () esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3492,8 +3706,8 @@ compiler." func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -4096,8 +4310,8 @@ func_mode_install () case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4107,8 +4321,8 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4165,12 +4379,12 @@ func_mode_install () esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4181,8 +4395,8 @@ func_mode_install () if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4478,8 +4692,8 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5258,7 +5472,8 @@ else if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5268,7 +5483,7 @@ func_fallback_echo () \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6611,9 +6826,9 @@ func_mode_link () while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -7211,9 +7426,9 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7227,10 +7442,10 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7254,8 +7469,8 @@ func_mode_link () # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7272,12 +7487,16 @@ func_mode_link () # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7298,15 +7517,15 @@ func_mode_link () continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7426,8 +7645,8 @@ func_mode_link () *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -9933,8 +10152,8 @@ EOF for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10027,8 +10246,8 @@ EOF eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10502,12 +10721,13 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10747,13 +10967,15 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi diff --git a/pcre/m4/libtool.m4 b/pcre/m4/libtool.m4 index a3bc337b79a..597c6042bd1 100644 --- a/pcre/m4/libtool.m4 +++ b/pcre/m4/libtool.m4 @@ -1,6 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -1042,8 +1042,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1493,9 +1493,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -2207,26 +2220,35 @@ m4_defun([_LT_CMD_STRIPLIB], striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -4919,7 +4941,7 @@ m4_if([$1], [CXX], [ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -5156,6 +5178,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5373,7 +5396,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5861,6 +5884,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6730,6 +6754,7 @@ if test yes != "$_lt_caught_CXX_error"; then emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) diff --git a/pcre/m4/ltoptions.m4 b/pcre/m4/ltoptions.m4 index 94b08297666..621bd18b2f3 100644 --- a/pcre/m4/ltoptions.m4 +++ b/pcre/m4/ltoptions.m4 @@ -1,6 +1,6 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2009, 2011-2017 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/pcre/m4/ltsugar.m4 b/pcre/m4/ltsugar.m4 index 48bc9344a4d..ab69a6b96b0 100644 --- a/pcre/m4/ltsugar.m4 +++ b/pcre/m4/ltsugar.m4 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2017 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/pcre/m4/ltversion.m4 b/pcre/m4/ltversion.m4 index fa04b52a3bf..8250ea47cf7 100644 --- a/pcre/m4/ltversion.m4 +++ b/pcre/m4/ltversion.m4 @@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2017 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +9,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4219 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.6.40-6ca5-dirty]) +m4_define([LT_PACKAGE_REVISION], [2.4.6.40]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.6.40-6ca5-dirty' +macro_revision='2.4.6.40' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/pcre/m4/lt~obsolete.m4 b/pcre/m4/lt~obsolete.m4 index c6b26f88f6c..9919d4de5e8 100644 --- a/pcre/m4/lt~obsolete.m4 +++ b/pcre/m4/lt~obsolete.m4 @@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007, 2009, 2011-2017 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # diff --git a/pcre/missing b/pcre/missing index f62bbae306c..c6e379584ba 100755 --- a/pcre/missing +++ b/pcre/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -210,6 +210,6 @@ exit $st # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/pcre/pcre.h.generic b/pcre/pcre.h.generic index 442c6bdb5fe..0efad3f9511 100644 --- a/pcre/pcre.h.generic +++ b/pcre/pcre.h.generic @@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE. /* The current PCRE version information. */ #define PCRE_MAJOR 8 -#define PCRE_MINOR 41 +#define PCRE_MINOR 42 #define PCRE_PRERELEASE -#define PCRE_DATE 2017-07-05 +#define PCRE_DATE 2018-03-20 /* When an application links to a PCRE DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE, the appropriate @@ -321,11 +321,11 @@ these bits, just add new ones on the end, in order to remain compatible. */ /* Types */ -struct real_pcre; /* declaration; the definition is private */ -typedef struct real_pcre pcre; +struct real_pcre8_or_16; /* declaration; the definition is private */ +typedef struct real_pcre8_or_16 pcre; -struct real_pcre16; /* declaration; the definition is private */ -typedef struct real_pcre16 pcre16; +struct real_pcre8_or_16; /* declaration; the definition is private */ +typedef struct real_pcre8_or_16 pcre16; struct real_pcre32; /* declaration; the definition is private */ typedef struct real_pcre32 pcre32; diff --git a/pcre/pcre.h.in b/pcre/pcre.h.in index 667a45ed575..d4d78926984 100644 --- a/pcre/pcre.h.in +++ b/pcre/pcre.h.in @@ -321,11 +321,11 @@ these bits, just add new ones on the end, in order to remain compatible. */ /* Types */ -struct real_pcre; /* declaration; the definition is private */ -typedef struct real_pcre pcre; +struct real_pcre8_or_16; /* declaration; the definition is private */ +typedef struct real_pcre8_or_16 pcre; -struct real_pcre16; /* declaration; the definition is private */ -typedef struct real_pcre16 pcre16; +struct real_pcre8_or_16; /* declaration; the definition is private */ +typedef struct real_pcre8_or_16 pcre16; struct real_pcre32; /* declaration; the definition is private */ typedef struct real_pcre32 pcre32; diff --git a/pcre/pcre_compile.c b/pcre/pcre_compile.c index 42f204cdfff..6dd88860638 100644 --- a/pcre/pcre_compile.c +++ b/pcre/pcre_compile.c @@ -8060,7 +8060,7 @@ for (;; ptr++) single group (i.e. not to a duplicated name. */ HANDLE_REFERENCE: - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; + if (firstcharflags == REQ_UNSET) zerofirstcharflags = firstcharflags = REQ_NONE; previous = code; item_hwm_offset = cd->hwm - cd->start_workspace; *code++ = ((options & PCRE_CASELESS) != 0)? OP_REFI : OP_REF; diff --git a/pcre/pcre_dfa_exec.c b/pcre/pcre_dfa_exec.c index bc09ced3a7c..f333381d088 100644 --- a/pcre/pcre_dfa_exec.c +++ b/pcre/pcre_dfa_exec.c @@ -2287,12 +2287,14 @@ for (;;) case OP_NOTI: if (clen > 0) { - unsigned int otherd; + pcre_uint32 otherd; #ifdef SUPPORT_UTF if (utf && d >= 128) { #ifdef SUPPORT_UCP otherd = UCD_OTHERCASE(d); +#else + otherd = d; #endif /* SUPPORT_UCP */ } else diff --git a/pcre/pcre_exec.c b/pcre/pcre_exec.c index 1a9bdd546ee..3fd58cbe31c 100644 --- a/pcre/pcre_exec.c +++ b/pcre/pcre_exec.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2014 University of Cambridge + Copyright (c) 1997-2018 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -2305,7 +2305,7 @@ for (;;) case OP_ANY: if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); if (md->partial != 0 && - eptr + 1 >= md->end_subject && + eptr == md->end_subject - 1 && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && UCHAR21TEST(eptr) == NLBLOCK->nl[0]) @@ -3053,7 +3053,7 @@ for (;;) { RMATCH(eptr, ecode, offset_top, md, eptrb, RM18); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - if (eptr-- == pp) break; /* Stop if tried at original pos */ + if (eptr-- <= pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } @@ -3210,7 +3210,7 @@ for (;;) { RMATCH(eptr, ecode, offset_top, md, eptrb, RM21); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - if (eptr-- == pp) break; /* Stop if tried at original pos */ + if (eptr-- <= pp) break; /* Stop if tried at original pos */ #ifdef SUPPORT_UTF if (utf) BACKCHAR(eptr); #endif diff --git a/pcre/pcre_jit_compile.c b/pcre/pcre_jit_compile.c index 249edbe8e7f..2bad74b0231 100644 --- a/pcre/pcre_jit_compile.c +++ b/pcre/pcre_jit_compile.c @@ -164,7 +164,6 @@ typedef struct jit_arguments { const pcre_uchar *begin; const pcre_uchar *end; int *offsets; - pcre_uchar *uchar_ptr; pcre_uchar *mark_ptr; void *callout_data; /* Everything else after. */ @@ -214,7 +213,7 @@ enum control_types { type_then_trap = 1 }; -typedef int (SLJIT_CALL *jit_function)(jit_arguments *args); +typedef int (SLJIT_FUNC *jit_function)(jit_arguments *args); /* The following structure is the key data type for the recursive code generator. It is allocated by compile_matchingpath, and contains @@ -489,9 +488,24 @@ typedef struct compare_context { /* Used for accessing the elements of the stack. */ #define STACK(i) ((i) * (int)sizeof(sljit_sw)) +#ifdef SLJIT_PREF_SHIFT_REG +#if SLJIT_PREF_SHIFT_REG == SLJIT_R2 +/* Nothing. */ +#elif SLJIT_PREF_SHIFT_REG == SLJIT_R3 +#define SHIFT_REG_IS_R3 +#else +#error "Unsupported shift register" +#endif +#endif + #define TMP1 SLJIT_R0 +#ifdef SHIFT_REG_IS_R3 +#define TMP2 SLJIT_R3 +#define TMP3 SLJIT_R2 +#else #define TMP2 SLJIT_R2 #define TMP3 SLJIT_R3 +#endif #define STR_PTR SLJIT_S0 #define STR_END SLJIT_S1 #define STACK_TOP SLJIT_R1 @@ -520,13 +534,10 @@ the start pointers when the end of the capturing group has not yet reached. */ #if defined COMPILE_PCRE8 #define MOV_UCHAR SLJIT_MOV_U8 -#define MOVU_UCHAR SLJIT_MOVU_U8 #elif defined COMPILE_PCRE16 #define MOV_UCHAR SLJIT_MOV_U16 -#define MOVU_UCHAR SLJIT_MOVU_U16 #elif defined COMPILE_PCRE32 #define MOV_UCHAR SLJIT_MOV_U32 -#define MOVU_UCHAR SLJIT_MOVU_U32 #else #error Unsupported compiling mode #endif @@ -2383,12 +2394,25 @@ if (length < 8) } else { - GET_LOCAL_BASE(SLJIT_R1, 0, OVECTOR_START); - OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, length - 1); - loop = LABEL(); - OP1(SLJIT_MOVU, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw), SLJIT_R0, 0); - OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, 1); - JUMPTO(SLJIT_NOT_ZERO, loop); + if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)) == SLJIT_SUCCESS) + { + GET_LOCAL_BASE(SLJIT_R1, 0, OVECTOR_START); + OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, length - 1); + loop = LABEL(); + sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)); + OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, 1); + JUMPTO(SLJIT_NOT_ZERO, loop); + } + else + { + GET_LOCAL_BASE(SLJIT_R1, 0, OVECTOR_START + sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, length - 1); + loop = LABEL(); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_R1), 0, SLJIT_R0, 0); + OP2(SLJIT_ADD, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, sizeof(sljit_sw)); + OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, 1); + JUMPTO(SLJIT_NOT_ZERO, loop); + } } } @@ -2421,12 +2445,25 @@ if (length < 8) } else { - GET_LOCAL_BASE(TMP2, 0, OVECTOR_START + sizeof(sljit_sw)); - OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, length - 2); - loop = LABEL(); - OP1(SLJIT_MOVU, SLJIT_MEM1(TMP2), sizeof(sljit_sw), TMP1, 0); - OP2(SLJIT_SUB | SLJIT_SET_Z, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 1); - JUMPTO(SLJIT_NOT_ZERO, loop); + if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)) == SLJIT_SUCCESS) + { + GET_LOCAL_BASE(TMP2, 0, OVECTOR_START + sizeof(sljit_sw)); + OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, length - 2); + loop = LABEL(); + sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); + OP2(SLJIT_SUB | SLJIT_SET_Z, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 1); + JUMPTO(SLJIT_NOT_ZERO, loop); + } + else + { + GET_LOCAL_BASE(TMP2, 0, OVECTOR_START + 2 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, length - 2); + loop = LABEL(); + OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, TMP1, 0); + OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, SLJIT_IMM, sizeof(sljit_sw)); + OP2(SLJIT_SUB | SLJIT_SET_Z, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 1); + JUMPTO(SLJIT_NOT_ZERO, loop); + } } OP1(SLJIT_MOV, STACK_TOP, 0, ARGUMENTS, 0); @@ -2436,10 +2473,10 @@ if (common->control_head_ptr != 0) OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), SLJIT_OFFSETOF(jit_arguments, stack)); OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->start_ptr); -OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), SLJIT_OFFSETOF(struct sljit_stack, base)); +OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), SLJIT_OFFSETOF(struct sljit_stack, end)); } -static sljit_sw SLJIT_CALL do_search_mark(sljit_sw *current, const pcre_uchar *skip_arg) +static sljit_sw SLJIT_FUNC do_search_mark(sljit_sw *current, const pcre_uchar *skip_arg) { while (current != NULL) { @@ -2460,7 +2497,7 @@ while (current != NULL) SLJIT_ASSERT(current[0] == 0 || current < (sljit_sw*)current[0]); current = (sljit_sw*)current[0]; } -return -1; +return 0; } static SLJIT_INLINE void copy_ovector(compiler_common *common, int topbracket) @@ -2468,6 +2505,7 @@ static SLJIT_INLINE void copy_ovector(compiler_common *common, int topbracket) DEFINE_COMPILER; struct sljit_label *loop; struct sljit_jump *early_quit; +BOOL has_pre; /* At this point we can freely use all registers. */ OP1(SLJIT_MOV, SLJIT_S2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)); @@ -2481,17 +2519,30 @@ if (common->mark_ptr != 0) OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, mark_ptr), SLJIT_R2, 0); OP2(SLJIT_SUB, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, offsets), SLJIT_IMM, sizeof(int)); OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, begin)); -GET_LOCAL_BASE(SLJIT_S0, 0, OVECTOR_START); + +has_pre = sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)) == SLJIT_SUCCESS; +GET_LOCAL_BASE(SLJIT_S0, 0, OVECTOR_START - (has_pre ? sizeof(sljit_sw) : 0)); + /* Unlikely, but possible */ early_quit = CMP(SLJIT_EQUAL, SLJIT_R1, 0, SLJIT_IMM, 0); loop = LABEL(); -OP2(SLJIT_SUB, SLJIT_S1, 0, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_R0, 0); -OP2(SLJIT_ADD, SLJIT_S0, 0, SLJIT_S0, 0, SLJIT_IMM, sizeof(sljit_sw)); + +if (has_pre) + sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)); +else + { + OP1(SLJIT_MOV, SLJIT_S1, 0, SLJIT_MEM1(SLJIT_S0), 0); + OP2(SLJIT_ADD, SLJIT_S0, 0, SLJIT_S0, 0, SLJIT_IMM, sizeof(sljit_sw)); + } + +OP2(SLJIT_ADD, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, sizeof(int)); +OP2(SLJIT_SUB, SLJIT_S1, 0, SLJIT_S1, 0, SLJIT_R0, 0); /* Copy the integer value to the output buffer */ #if defined COMPILE_PCRE16 || defined COMPILE_PCRE32 OP2(SLJIT_ASHR, SLJIT_S1, 0, SLJIT_S1, 0, SLJIT_IMM, UCHAR_SHIFT); #endif -OP1(SLJIT_MOVU_S32, SLJIT_MEM1(SLJIT_R2), sizeof(int), SLJIT_S1, 0); + +OP1(SLJIT_MOV_S32, SLJIT_MEM1(SLJIT_R2), 0, SLJIT_S1, 0); OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); JUMPTO(SLJIT_NOT_ZERO, loop); JUMPHERE(early_quit); @@ -2499,14 +2550,29 @@ JUMPHERE(early_quit); /* Calculate the return value, which is the maximum ovector value. */ if (topbracket > 1) { - GET_LOCAL_BASE(SLJIT_R0, 0, OVECTOR_START + topbracket * 2 * sizeof(sljit_sw)); - OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, topbracket + 1); + if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw))) == SLJIT_SUCCESS) + { + GET_LOCAL_BASE(SLJIT_R0, 0, OVECTOR_START + topbracket * 2 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, topbracket + 1); - /* OVECTOR(0) is never equal to SLJIT_S2. */ - loop = LABEL(); - OP1(SLJIT_MOVU, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw))); - OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); - CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop); + /* OVECTOR(0) is never equal to SLJIT_S2. */ + loop = LABEL(); + sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw))); + OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); + CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop); + } + else + { + GET_LOCAL_BASE(SLJIT_R0, 0, OVECTOR_START + (topbracket - 1) * 2 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, topbracket + 1); + + /* OVECTOR(0) is never equal to SLJIT_S2. */ + loop = LABEL(); + OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), 0); + OP2(SLJIT_SUB, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 2 * (sljit_sw)sizeof(sljit_sw)); + OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); + CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop); + } OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_R1, 0); } else @@ -5167,93 +5233,190 @@ OP_FLAGS(SLJIT_OR | SLJIT_SET_Z, TMP2, 0, SLJIT_EQUAL); sljit_emit_fast_return(compiler, RETURN_ADDR, 0); } -#define CHAR1 STR_END -#define CHAR2 STACK_TOP - static void do_casefulcmp(compiler_common *common) { DEFINE_COMPILER; struct sljit_jump *jump; struct sljit_label *label; +int char1_reg; +int char2_reg; -sljit_emit_fast_enter(compiler, RETURN_ADDR, 0); +if (sljit_get_register_index(TMP3) < 0) + { + char1_reg = STR_END; + char2_reg = STACK_TOP; + } +else + { + char1_reg = TMP3; + char2_reg = RETURN_ADDR; + } + +sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0); OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0); -OP1(SLJIT_MOV, TMP3, 0, CHAR1, 0); -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, CHAR2, 0); -OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -label = LABEL(); -OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1)); -OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); -jump = CMP(SLJIT_NOT_EQUAL, CHAR1, 0, CHAR2, 0); -OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); -JUMPTO(SLJIT_NOT_ZERO, label); +if (char1_reg == STR_END) + { + OP1(SLJIT_MOV, TMP3, 0, char1_reg, 0); + OP1(SLJIT_MOV, RETURN_ADDR, 0, char2_reg, 0); + } -JUMPHERE(jump); -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -OP1(SLJIT_MOV, CHAR1, 0, TMP3, 0); -OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); -sljit_emit_fast_return(compiler, RETURN_ADDR, 0); +if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) + { + label = LABEL(); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); + OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); + JUMPTO(SLJIT_NOT_ZERO, label); + + JUMPHERE(jump); + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); + } +else if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) + { + OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); + OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + + label = LABEL(); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); + OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); + JUMPTO(SLJIT_NOT_ZERO, label); + + JUMPHERE(jump); + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); + OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + } +else + { + label = LABEL(); + OP1(MOV_UCHAR, char1_reg, 0, SLJIT_MEM1(TMP1), 0); + OP1(MOV_UCHAR, char2_reg, 0, SLJIT_MEM1(STR_PTR), 0); + OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); + OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); + OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); + JUMPTO(SLJIT_NOT_ZERO, label); + + JUMPHERE(jump); + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); + } + +if (char1_reg == STR_END) + { + OP1(SLJIT_MOV, char1_reg, 0, TMP3, 0); + OP1(SLJIT_MOV, char2_reg, 0, RETURN_ADDR, 0); + } + +sljit_emit_fast_return(compiler, TMP1, 0); } -#define LCC_TABLE STACK_LIMIT - static void do_caselesscmp(compiler_common *common) { DEFINE_COMPILER; struct sljit_jump *jump; struct sljit_label *label; +int char1_reg = STR_END; +int char2_reg; +int lcc_table; +int opt_type = 0; -sljit_emit_fast_enter(compiler, RETURN_ADDR, 0); +if (sljit_get_register_index(TMP3) < 0) + { + char2_reg = STACK_TOP; + lcc_table = STACK_LIMIT; + } +else + { + char2_reg = RETURN_ADDR; + lcc_table = TMP3; + } + +if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) + opt_type = 1; +else if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) + opt_type = 2; + +sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0); OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0); -OP1(SLJIT_MOV, TMP3, 0, LCC_TABLE, 0); -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, CHAR1, 0); -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, CHAR2, 0); -OP1(SLJIT_MOV, LCC_TABLE, 0, SLJIT_IMM, common->lcc); -OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); +OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, char1_reg, 0); + +if (char2_reg == STACK_TOP) + { + OP1(SLJIT_MOV, TMP3, 0, char2_reg, 0); + OP1(SLJIT_MOV, RETURN_ADDR, 0, lcc_table, 0); + } + +OP1(SLJIT_MOV, lcc_table, 0, SLJIT_IMM, common->lcc); + +if (opt_type == 1) + { + label = LABEL(); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + } +else if (opt_type == 2) + { + OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); + OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + + label = LABEL(); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + } +else + { + label = LABEL(); + OP1(MOV_UCHAR, char1_reg, 0, SLJIT_MEM1(TMP1), 0); + OP1(MOV_UCHAR, char2_reg, 0, SLJIT_MEM1(STR_PTR), 0); + OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); + } -label = LABEL(); -OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1)); -OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); #ifndef COMPILE_PCRE8 -jump = CMP(SLJIT_GREATER, CHAR1, 0, SLJIT_IMM, 255); +jump = CMP(SLJIT_GREATER, char1_reg, 0, SLJIT_IMM, 255); #endif -OP1(SLJIT_MOV_U8, CHAR1, 0, SLJIT_MEM2(LCC_TABLE, CHAR1), 0); +OP1(SLJIT_MOV_U8, char1_reg, 0, SLJIT_MEM2(lcc_table, char1_reg), 0); #ifndef COMPILE_PCRE8 JUMPHERE(jump); -jump = CMP(SLJIT_GREATER, CHAR2, 0, SLJIT_IMM, 255); +jump = CMP(SLJIT_GREATER, char2_reg, 0, SLJIT_IMM, 255); #endif -OP1(SLJIT_MOV_U8, CHAR2, 0, SLJIT_MEM2(LCC_TABLE, CHAR2), 0); +OP1(SLJIT_MOV_U8, char2_reg, 0, SLJIT_MEM2(lcc_table, char2_reg), 0); #ifndef COMPILE_PCRE8 JUMPHERE(jump); #endif -jump = CMP(SLJIT_NOT_EQUAL, CHAR1, 0, CHAR2, 0); + +if (opt_type == 0) + OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + +jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); JUMPTO(SLJIT_NOT_ZERO, label); JUMPHERE(jump); -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -OP1(SLJIT_MOV, LCC_TABLE, 0, TMP3, 0); -OP1(SLJIT_MOV, CHAR1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); -OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1); -sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -} +OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); -#undef LCC_TABLE -#undef CHAR1 -#undef CHAR2 +if (opt_type == 2) + OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + +if (char2_reg == STACK_TOP) + { + OP1(SLJIT_MOV, char2_reg, 0, TMP3, 0); + OP1(SLJIT_MOV, lcc_table, 0, RETURN_ADDR, 0); + } + +OP1(SLJIT_MOV, char1_reg, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1); +sljit_emit_fast_return(compiler, TMP1, 0); +} #if defined SUPPORT_UTF && defined SUPPORT_UCP -static const pcre_uchar * SLJIT_CALL do_utf_caselesscmp(pcre_uchar *src1, jit_arguments *args, pcre_uchar *end1) +static const pcre_uchar * SLJIT_FUNC do_utf_caselesscmp(pcre_uchar *src1, pcre_uchar *src2, pcre_uchar *end1, pcre_uchar *end2) { /* This function would be ineffective to do in JIT level. */ sljit_u32 c1, c2; -const pcre_uchar *src2 = args->uchar_ptr; -const pcre_uchar *end2 = args->end; const ucd_record *ur; const sljit_u32 *pp; @@ -6776,32 +6939,37 @@ else #if defined SUPPORT_UTF && defined SUPPORT_UCP if (common->utf && *cc == OP_REFI) { - SLJIT_ASSERT(TMP1 == SLJIT_R0 && STACK_TOP == SLJIT_R1 && TMP2 == SLJIT_R2); + SLJIT_ASSERT(TMP1 == SLJIT_R0 && STACK_TOP == SLJIT_R1); if (ref) - OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1)); + OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1)); else - OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); if (withchecks) - jump = CMP(SLJIT_EQUAL, TMP1, 0, TMP2, 0); + jump = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_R2, 0); - /* Needed to save important temporary registers. */ + /* No free saved registers so save data on stack. */ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0); - OP1(SLJIT_MOV, SLJIT_R1, 0, ARGUMENTS, 0); - OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_R1), SLJIT_OFFSETOF(jit_arguments, uchar_ptr), STR_PTR, 0); - sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_utf_caselesscmp)); + OP1(SLJIT_MOV, SLJIT_R1, 0, STR_PTR, 0); + OP1(SLJIT_MOV, SLJIT_R3, 0, STR_END, 0); + sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), SLJIT_IMM, SLJIT_FUNC_OFFSET(do_utf_caselesscmp)); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); + OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_RETURN_REG, 0); + if (common->mode == JIT_COMPILE) add_jump(compiler, backtracks, CMP(SLJIT_LESS_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1)); else { - add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0)); - nopartial = CMP(SLJIT_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1); + OP2(SLJIT_SUB | SLJIT_SET_Z | SLJIT_SET_LESS, SLJIT_UNUSED, 0, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1); + + add_jump(compiler, backtracks, JUMP(SLJIT_LESS)); + + nopartial = JUMP(SLJIT_NOT_EQUAL); + OP1(SLJIT_MOV, STR_PTR, 0, STR_END, 0); check_partial(common, FALSE); add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); JUMPHERE(nopartial); } - OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_RETURN_REG, 0); } else #endif /* SUPPORT_UTF && SUPPORT_UCP */ @@ -7125,7 +7293,7 @@ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IM return cc + 1 + LINK_SIZE; } -static int SLJIT_CALL do_callout(struct jit_arguments *arguments, PUBL(callout_block) *callout_block, pcre_uchar **jit_ovector) +static sljit_s32 SLJIT_FUNC do_callout(struct jit_arguments *arguments, PUBL(callout_block) *callout_block, pcre_uchar **jit_ovector) { const pcre_uchar *begin = arguments->begin; int *offset_vector = arguments->offsets; @@ -7207,18 +7375,17 @@ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0); /* SLJIT_R0 = arguments */ OP1(SLJIT_MOV, SLJIT_R1, 0, STACK_TOP, 0); GET_LOCAL_BASE(SLJIT_R2, 0, OVECTOR_START); -sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_callout)); -OP1(SLJIT_MOV_S32, SLJIT_RETURN_REG, 0, SLJIT_RETURN_REG, 0); +sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(S32) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW), SLJIT_IMM, SLJIT_FUNC_OFFSET(do_callout)); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); free_stack(common, CALLOUT_ARG_SIZE / sizeof(sljit_sw)); /* Check return value. */ -OP2(SLJIT_SUB | SLJIT_SET_Z | SLJIT_SET_SIG_GREATER, SLJIT_UNUSED, 0, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); -add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_SIG_GREATER)); +OP2(SLJIT_SUB32 | SLJIT_SET_Z | SLJIT_SET_SIG_GREATER, SLJIT_UNUSED, 0, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); +add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_SIG_GREATER32)); if (common->forced_quit_label == NULL) - add_jump(compiler, &common->forced_quit, JUMP(SLJIT_NOT_EQUAL) /* SIG_LESS */); + add_jump(compiler, &common->forced_quit, JUMP(SLJIT_NOT_EQUAL32) /* SIG_LESS */); else - JUMPTO(SLJIT_NOT_EQUAL /* SIG_LESS */, common->forced_quit_label); + JUMPTO(SLJIT_NOT_EQUAL32 /* SIG_LESS */, common->forced_quit_label); return cc + 2 + 2 * LINK_SIZE; } @@ -10439,11 +10606,11 @@ if (opcode == OP_SKIP_ARG) OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr); OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, (sljit_sw)(current->cc + 2)); - sljit_emit_ijump(compiler, SLJIT_CALL2, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_search_mark)); + sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW), SLJIT_IMM, SLJIT_FUNC_OFFSET(do_search_mark)); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); OP1(SLJIT_MOV, STR_PTR, 0, TMP1, 0); - add_jump(compiler, &common->reset_match, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, -1)); + add_jump(compiler, &common->reset_match, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0)); return; } @@ -11031,7 +11198,7 @@ if (!compiler) common->compiler = compiler; /* Main pcre_jit_exec entry. */ -sljit_emit_enter(compiler, 0, 1, 5, 5, 0, 0, private_data_size); +sljit_emit_enter(compiler, 0, SLJIT_ARG1(SW), 5, 5, 0, 0, private_data_size); /* Register init. */ reset_ovector(common, (re->top_bracket + 1) * 2); @@ -11044,8 +11211,8 @@ OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str)) OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, end)); OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack)); OP1(SLJIT_MOV_U32, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, limit_match)); -OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, base)); -OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, limit)); +OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, end)); +OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, start)); OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1); OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LIMIT_MATCH, TMP1, 0); @@ -11251,20 +11418,22 @@ common->quit_label = quit_label; set_jumps(common->stackalloc, LABEL()); /* RETURN_ADDR is not a saved register. */ sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0); -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP2, 0); -OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0); -OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack)); -OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top), STACK_TOP, 0); -OP2(SLJIT_SUB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit), SLJIT_IMM, STACK_GROWTH_RATE); -sljit_emit_ijump(compiler, SLJIT_CALL2, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_stack_resize)); -jump = CMP(SLJIT_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); -OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0); -OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack)); -OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top)); -OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit)); -OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1); -sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0); +SLJIT_ASSERT(TMP1 == SLJIT_R0 && STACK_TOP == SLJIT_R1); + +OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, STACK_TOP, 0); +OP1(SLJIT_MOV, SLJIT_R0, 0, ARGUMENTS, 0); +OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_LIMIT, 0, SLJIT_IMM, STACK_GROWTH_RATE); +OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, stack)); +OP1(SLJIT_MOV, STACK_LIMIT, 0, TMP2, 0); + +sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW), SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_stack_resize)); +jump = CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); +OP1(SLJIT_MOV, TMP2, 0, STACK_LIMIT, 0); +OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_RETURN_REG, 0); +OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); +OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1); +sljit_emit_fast_return(compiler, TMP1, 0); /* Allocation failed. */ JUMPHERE(jump); @@ -11409,9 +11578,9 @@ union { sljit_u8 local_space[MACHINE_STACK_SIZE]; struct sljit_stack local_stack; -local_stack.max_limit = local_space; -local_stack.limit = local_space; -local_stack.base = local_space + MACHINE_STACK_SIZE; +local_stack.min_start = local_space; +local_stack.start = local_space; +local_stack.end = local_space + MACHINE_STACK_SIZE; local_stack.top = local_space + MACHINE_STACK_SIZE; arguments->stack = &local_stack; convert_executable_func.executable_func = executable_func; @@ -11529,7 +11698,7 @@ if ((options & PCRE_PARTIAL_HARD) != 0) else if ((options & PCRE_PARTIAL_SOFT) != 0) mode = JIT_PARTIAL_SOFT_COMPILE; -if (functions->executable_funcs[mode] == NULL) +if (functions == NULL || functions->executable_funcs[mode] == NULL) return PCRE_ERROR_JIT_BADOPTION; /* Sanity checks should be handled by pcre_exec. */ diff --git a/pcre/pcregrep.c b/pcre/pcregrep.c index 317f7454e13..a406be962d7 100644 --- a/pcre/pcregrep.c +++ b/pcre/pcregrep.c @@ -1387,8 +1387,8 @@ Returns: nothing */ static void -do_after_lines(int lastmatchnumber, char *lastmatchrestart, char *endptr, - char *printname) +do_after_lines(unsigned long int lastmatchnumber, char *lastmatchrestart, + char *endptr, char *printname) { if (after_context > 0 && lastmatchnumber > 0) { @@ -1398,7 +1398,7 @@ if (after_context > 0 && lastmatchnumber > 0) int ellength; char *pp = lastmatchrestart; if (printname != NULL) fprintf(stdout, "%s-", printname); - if (number) fprintf(stdout, "%d-", lastmatchnumber++); + if (number) fprintf(stdout, "%lu-", lastmatchnumber++); pp = end_of_line(pp, endptr, &ellength); FWRITE(lastmatchrestart, 1, pp - lastmatchrestart, stdout); lastmatchrestart = pp; @@ -1502,11 +1502,11 @@ static int pcregrep(void *handle, int frtype, char *filename, char *printname) { int rc = 1; -int linenumber = 1; -int lastmatchnumber = 0; -int count = 0; int filepos = 0; int offsets[OFFSET_SIZE]; +unsigned long int linenumber = 1; +unsigned long int lastmatchnumber = 0; +unsigned long int count = 0; char *lastmatchrestart = NULL; char *ptr = main_buffer; char *endptr; @@ -1609,7 +1609,7 @@ while (ptr < endptr) if (endlinelength == 0 && t == main_buffer + bufsize) { - fprintf(stderr, "pcregrep: line %d%s%s is too long for the internal buffer\n" + fprintf(stderr, "pcregrep: line %lu%s%s is too long for the internal buffer\n" "pcregrep: check the --buffer-size option\n", linenumber, (filename == NULL)? "" : " of file ", @@ -1747,7 +1747,7 @@ while (ptr < endptr) prevoffsets[1] = offsets[1]; if (printname != NULL) fprintf(stdout, "%s:", printname); - if (number) fprintf(stdout, "%d:", linenumber); + if (number) fprintf(stdout, "%lu:", linenumber); /* Handle --line-offsets */ @@ -1862,7 +1862,7 @@ while (ptr < endptr) { char *pp = lastmatchrestart; if (printname != NULL) fprintf(stdout, "%s-", printname); - if (number) fprintf(stdout, "%d-", lastmatchnumber++); + if (number) fprintf(stdout, "%lu-", lastmatchnumber++); pp = end_of_line(pp, endptr, &ellength); FWRITE(lastmatchrestart, 1, pp - lastmatchrestart, stdout); lastmatchrestart = pp; @@ -1902,7 +1902,7 @@ while (ptr < endptr) int ellength; char *pp = p; if (printname != NULL) fprintf(stdout, "%s-", printname); - if (number) fprintf(stdout, "%d-", linenumber - linecount--); + if (number) fprintf(stdout, "%lu-", linenumber - linecount--); pp = end_of_line(pp, endptr, &ellength); FWRITE(p, 1, pp - p, stdout); p = pp; @@ -1916,7 +1916,7 @@ while (ptr < endptr) endhyphenpending = TRUE; if (printname != NULL) fprintf(stdout, "%s:", printname); - if (number) fprintf(stdout, "%d:", linenumber); + if (number) fprintf(stdout, "%lu:", linenumber); /* In multiline mode, we want to print to the end of the line in which the end of the matched string is found, so we adjust linelength and the @@ -2112,7 +2112,7 @@ if (count_only && !quiet) { if (printname != NULL && filenames != FN_NONE) fprintf(stdout, "%s:", printname); - fprintf(stdout, "%d\n", count); + fprintf(stdout, "%lu\n", count); } } @@ -2234,7 +2234,7 @@ if (isdirectory(pathname)) if (dee_action == dee_RECURSE) { - char buffer[1024]; + char buffer[2048]; char *nextfile; directory_type *dir = opendirectory(pathname); @@ -2249,7 +2249,14 @@ if (isdirectory(pathname)) while ((nextfile = readdirectory(dir)) != NULL) { int frc; - sprintf(buffer, "%.512s%c%.128s", pathname, FILESEP, nextfile); + int fnlength = strlen(pathname) + strlen(nextfile) + 2; + if (fnlength > 2048) + { + fprintf(stderr, "pcre2grep: recursive filename is too long\n"); + rc = 2; + break; + } + sprintf(buffer, "%s%c%s", pathname, FILESEP, nextfile); frc = grep_or_recurse(buffer, dir_recurse, FALSE); if (frc > 1) rc = frc; else if (frc == 0 && rc == 1) rc = 0; @@ -2520,7 +2527,14 @@ if ((popts & PO_FIXED_STRINGS) != 0) } } -sprintf(buffer, "%s%.*s%s", prefix[popts], patlen, ps, suffix[popts]); +if (snprintf(buffer, PATBUFSIZE, "%s%.*s%s", prefix[popts], patlen, ps, + suffix[popts]) > PATBUFSIZE) + { + fprintf(stderr, "pcregrep: Buffer overflow while compiling \"%s\"\n", + ps); + return FALSE; + } + p->compiled = pcre_compile(buffer, options, &error, &errptr, pcretables); if (p->compiled != NULL) return TRUE; @@ -2756,8 +2770,15 @@ for (i = 1; i < argc; i++) int arglen = (argequals == NULL || equals == NULL)? (int)strlen(arg) : (int)(argequals - arg); - sprintf(buff1, "%.*s", baselen, op->long_name); - sprintf(buff2, "%s%.*s", buff1, fulllen - baselen - 2, opbra + 1); + if (snprintf(buff1, sizeof(buff1), "%.*s", baselen, op->long_name) > + (int)sizeof(buff1) || + snprintf(buff2, sizeof(buff2), "%s%.*s", buff1, + fulllen - baselen - 2, opbra + 1) > (int)sizeof(buff2)) + { + fprintf(stderr, "pcregrep: Buffer overflow when parsing %s option\n", + op->long_name); + pcregrep_exit(2); + } if (strncmp(arg, buff1, arglen) == 0 || strncmp(arg, buff2, arglen) == 0) diff --git a/pcre/pcreposix.c b/pcre/pcreposix.c index 7b404a71100..a76d6bfca45 100644 --- a/pcre/pcreposix.c +++ b/pcre/pcreposix.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2017 University of Cambridge + Copyright (c) 1997-2018 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -389,8 +389,8 @@ if (rc >= 0) { for (i = 0; i < (size_t)rc; i++) { - pmatch[i].rm_so = ovector[i*2] + so; - pmatch[i].rm_eo = ovector[i*2+1] + so; + pmatch[i].rm_so = (ovector[i*2] < 0)? -1 : ovector[i*2] + so; + pmatch[i].rm_eo = (ovector[i*2+1] < 0)? -1: ovector[i*2+1] + so; } if (allocated_ovector) free(ovector); for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1; diff --git a/pcre/sljit/sljitConfig.h b/pcre/sljit/sljitConfig.h index b65584a4afd..d54b5e6f544 100644 --- a/pcre/sljit/sljitConfig.h +++ b/pcre/sljit/sljitConfig.h @@ -108,8 +108,10 @@ /* Force cdecl calling convention even if a better calling convention (e.g. fastcall) is supported by the C compiler. - If this option is enabled, C functions without - SLJIT_CALL can also be called from JIT code. */ + If this option is disabled (this is the default), functions + called from JIT should be defined with SLJIT_FUNC attribute. + Standard C functions can still be called by using the + SLJIT_CALL_CDECL jump type. */ #ifndef SLJIT_USE_CDECL_CALLING_CONVENTION /* Disabled by default */ #define SLJIT_USE_CDECL_CALLING_CONVENTION 0 diff --git a/pcre/sljit/sljitConfigInternal.h b/pcre/sljit/sljitConfigInternal.h index cc0810fbd7a..00525de854f 100644 --- a/pcre/sljit/sljitConfigInternal.h +++ b/pcre/sljit/sljitConfigInternal.h @@ -60,11 +60,13 @@ a single precision floating point array by index SLJIT_F64_SHIFT : the shift required to apply when accessing a double precision floating point array by index + SLJIT_PREF_SHIFT_REG : x86 systems prefers ecx for shifting by register + the scratch register index of ecx is stored in this variable SLJIT_LOCALS_OFFSET : local space starting offset (SLJIT_SP + SLJIT_LOCALS_OFFSET) SLJIT_RETURN_ADDRESS_OFFSET : a return instruction always adds this offset to the return address Other macros: - SLJIT_CALL : C calling convention define for both calling JIT form C and C callbacks for JIT + SLJIT_FUNC : calling convention attribute for both calling JIT form C and C calling back from JIT SLJIT_W(number) : defining 64 bit constants on 64 bit architectures (compiler independent helper) */ @@ -145,17 +147,23 @@ #define SLJIT_CONFIG_UNSUPPORTED 1 #endif -#else /* !_WIN32 */ +#else /* _WIN32 */ #if defined(_M_X64) || defined(__x86_64__) #define SLJIT_CONFIG_X86_64 1 +#elif (defined(_M_ARM) && _M_ARM >= 7 && defined(_M_ARMT)) || defined(__thumb2__) +#define SLJIT_CONFIG_ARM_THUMB2 1 +#elif (defined(_M_ARM) && _M_ARM >= 7) +#define SLJIT_CONFIG_ARM_V7 1 #elif defined(_ARM_) #define SLJIT_CONFIG_ARM_V5 1 +#elif defined(_M_ARM64) || defined(__aarch64__) +#define SLJIT_CONFIG_ARM_64 1 #else #define SLJIT_CONFIG_X86_32 1 #endif -#endif /* !WIN32 */ +#endif /* !_WIN32 */ #endif /* SLJIT_CONFIG_AUTO */ #if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) @@ -322,6 +330,11 @@ sparc_cache_flush((from), (to)) #define SLJIT_CACHE_FLUSH_OWN_IMPL 1 +#elif defined _WIN32 + +#define SLJIT_CACHE_FLUSH(from, to) \ + FlushInstructionCache(GetCurrentProcess(), (char*)(from), (char*)(to) - (char*)(from)) + #else /* Calls __ARM_NR_cacheflush on ARM-Linux. */ @@ -369,12 +382,18 @@ typedef int sljit_sw; #define SLJIT_64BIT_ARCHITECTURE 1 #define SLJIT_WORD_SHIFT 3 #ifdef _WIN32 +#ifdef __GNUC__ +/* These types do not require windows.h */ +typedef unsigned long long sljit_uw; +typedef long long sljit_sw; +#else typedef unsigned __int64 sljit_uw; typedef __int64 sljit_sw; -#else +#endif +#else /* !_WIN32 */ typedef unsigned long int sljit_uw; typedef long int sljit_sw; -#endif +#endif /* _WIN32 */ #endif typedef sljit_uw sljit_p; @@ -471,44 +490,44 @@ typedef double sljit_f64; /* Calling convention of functions generated by SLJIT or called from the generated code. */ /*****************************************************************************************/ -#ifndef SLJIT_CALL +#ifndef SLJIT_FUNC #if (defined SLJIT_USE_CDECL_CALLING_CONVENTION && SLJIT_USE_CDECL_CALLING_CONVENTION) /* Force cdecl. */ -#define SLJIT_CALL +#define SLJIT_FUNC #elif (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) #if defined(__GNUC__) && !defined(__APPLE__) -#define SLJIT_CALL __attribute__ ((fastcall)) +#define SLJIT_FUNC __attribute__ ((fastcall)) #define SLJIT_X86_32_FASTCALL 1 #elif defined(_MSC_VER) -#define SLJIT_CALL __fastcall +#define SLJIT_FUNC __fastcall #define SLJIT_X86_32_FASTCALL 1 #elif defined(__BORLANDC__) -#define SLJIT_CALL __msfastcall +#define SLJIT_FUNC __msfastcall #define SLJIT_X86_32_FASTCALL 1 #else /* Unknown compiler. */ /* The cdecl attribute is the default. */ -#define SLJIT_CALL +#define SLJIT_FUNC #endif #else /* Non x86-32 architectures. */ -#define SLJIT_CALL +#define SLJIT_FUNC #endif /* SLJIT_CONFIG_X86_32 */ -#endif /* !SLJIT_CALL */ +#endif /* !SLJIT_FUNC */ #ifndef SLJIT_INDIRECT_CALL #if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN)) \ @@ -557,24 +576,20 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void* ptr); #define SLJIT_NUMBER_OF_REGISTERS 12 #define SLJIT_NUMBER_OF_SAVED_REGISTERS 9 -#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) #define SLJIT_LOCALS_OFFSET_BASE (compiler->locals_offset) -#else -/* Maximum 3 arguments are passed on the stack, +1 for double alignment. */ -#define SLJIT_LOCALS_OFFSET_BASE (compiler->locals_offset) -#endif /* SLJIT_X86_32_FASTCALL */ +#define SLJIT_PREF_SHIFT_REG SLJIT_R2 #elif (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -#ifndef _WIN64 #define SLJIT_NUMBER_OF_REGISTERS 13 +#ifndef _WIN64 #define SLJIT_NUMBER_OF_SAVED_REGISTERS 6 #define SLJIT_LOCALS_OFFSET_BASE 0 -#else -#define SLJIT_NUMBER_OF_REGISTERS 13 +#else /* _WIN64 */ #define SLJIT_NUMBER_OF_SAVED_REGISTERS 8 #define SLJIT_LOCALS_OFFSET_BASE (compiler->locals_offset) -#endif /* _WIN64 */ +#endif /* !_WIN64 */ +#define SLJIT_PREF_SHIFT_REG SLJIT_R3 #elif (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) @@ -590,13 +605,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void* ptr); #elif (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) -#define SLJIT_NUMBER_OF_REGISTERS 25 +#define SLJIT_NUMBER_OF_REGISTERS 26 #define SLJIT_NUMBER_OF_SAVED_REGISTERS 10 -#define SLJIT_LOCALS_OFFSET_BASE (2 * sizeof(sljit_sw)) +#define SLJIT_LOCALS_OFFSET_BASE 0 #elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) -#define SLJIT_NUMBER_OF_REGISTERS 22 +#define SLJIT_NUMBER_OF_REGISTERS 23 #define SLJIT_NUMBER_OF_SAVED_REGISTERS 17 #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) || (defined _AIX) #define SLJIT_LOCALS_OFFSET_BASE ((6 + 8) * sizeof(sljit_sw)) @@ -622,8 +637,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void* ptr); #define SLJIT_NUMBER_OF_REGISTERS 18 #define SLJIT_NUMBER_OF_SAVED_REGISTERS 14 #if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32) -/* Add +1 for double alignment. */ -#define SLJIT_LOCALS_OFFSET_BASE ((23 + 1) * sizeof(sljit_sw)) +/* saved registers (16), return struct pointer (1), space for 6 argument words (1), + 4th double arg (2), double alignment (1). */ +#define SLJIT_LOCALS_OFFSET_BASE ((16 + 1 + 6 + 2 + 1) * sizeof(sljit_sw)) #endif #elif (defined SLJIT_CONFIG_TILEGX && SLJIT_CONFIG_TILEGX) diff --git a/pcre/sljit/sljitLir.c b/pcre/sljit/sljitLir.c index 66cdda3db42..5bdddc10cff 100644 --- a/pcre/sljit/sljitLir.c +++ b/pcre/sljit/sljitLir.c @@ -26,6 +26,13 @@ #include "sljitLir.h" +#ifdef _WIN32 + +/* For SLJIT_CACHE_FLUSH, which can expand to FlushInstructionCache. */ +#include + +#endif /* _WIN32 */ + #if !(defined SLJIT_STD_MACROS_DEFINED && SLJIT_STD_MACROS_DEFINED) /* These libraries are needed for the macros below. */ @@ -97,8 +104,13 @@ #define GET_ALL_FLAGS(op) \ ((op) & (SLJIT_I32_OP | SLJIT_SET_Z | VARIABLE_FLAG_MASK)) +#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE) #define TYPE_CAST_NEEDED(op) \ - (((op) >= SLJIT_MOV_U8 && (op) <= SLJIT_MOV_S16) || ((op) >= SLJIT_MOVU_U8 && (op) <= SLJIT_MOVU_S16)) + ((op) >= SLJIT_MOV_U8 && (op) <= SLJIT_MOV_S32) +#else +#define TYPE_CAST_NEEDED(op) \ + ((op) >= SLJIT_MOV_U8 && (op) <= SLJIT_MOV_S16) +#endif #define BUF_SIZE 4096 @@ -118,16 +130,19 @@ /* When reg can be unused. */ #define SLOW_IS_REG(reg) ((reg) > 0 && (reg) <= REG_MASK) +/* Mask for argument types. */ +#define SLJIT_DEF_MASK ((1 << SLJIT_DEF_SHIFT) - 1) + /* Jump flags. */ #define JUMP_LABEL 0x1 #define JUMP_ADDR 0x2 /* SLJIT_REWRITABLE_JUMP is 0x1000. */ #if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) -# define PATCH_MB 0x4 -# define PATCH_MW 0x8 +# define PATCH_MB 0x4 +# define PATCH_MW 0x8 #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -# define PATCH_MD 0x10 +# define PATCH_MD 0x10 #endif #endif @@ -591,6 +606,19 @@ static SLJIT_INLINE void reverse_buf(struct sljit_compiler *compiler) compiler->buf = prev; } +static SLJIT_INLINE sljit_s32 get_arg_count(sljit_s32 arg_types) +{ + sljit_s32 arg_count = 0; + + arg_types >>= SLJIT_DEF_SHIFT; + while (arg_types) { + arg_count++; + arg_types >>= SLJIT_DEF_SHIFT; + } + + return arg_count; +} + static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler, sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) @@ -664,80 +692,106 @@ static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_comp #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) #define FUNCTION_CHECK_IS_REG(r) \ - (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) || \ - ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0)) + (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \ + || ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0)) -#define FUNCTION_CHECK_IS_REG_OR_UNUSED(r) \ - ((r) == SLJIT_UNUSED || \ - ((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) || \ - ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0)) +#define FUNCTION_CHECK_IS_FREG(fr) \ + (((fr) >= SLJIT_FR0 && (fr) < (SLJIT_FR0 + compiler->fscratches)) \ + || ((fr) > (SLJIT_FS0 - compiler->fsaveds) && (fr) <= SLJIT_FS0)) #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -#define CHECK_NOT_VIRTUAL_REGISTER(p) \ - CHECK_ARGUMENT((p) < SLJIT_R3 || (p) > SLJIT_R6); +#define CHECK_IF_VIRTUAL_REGISTER(p) ((p) <= SLJIT_S3 && (p) >= SLJIT_S8) #else -#define CHECK_NOT_VIRTUAL_REGISTER(p) +#define CHECK_IF_VIRTUAL_REGISTER(p) 0 #endif -#define FUNCTION_CHECK_SRC(p, i) \ - CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); \ - if (FUNCTION_CHECK_IS_REG(p)) \ - CHECK_ARGUMENT((i) == 0); \ - else if ((p) == SLJIT_IMM) \ - ; \ - else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \ - CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \ - else { \ - CHECK_ARGUMENT((p) & SLJIT_MEM); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \ - CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \ - if ((p) & OFFS_REG_MASK) { \ - CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \ - CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \ - CHECK_ARGUMENT(!((i) & ~0x3)); \ - } \ - CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | REG_MASK | OFFS_REG_MASK))); \ +static sljit_s32 function_check_src_mem(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) +{ + if (compiler->scratches == -1 || compiler->saveds == -1) + return 0; + + if (!(p & SLJIT_MEM)) + return 0; + + if (!((p & REG_MASK) == SLJIT_UNUSED || FUNCTION_CHECK_IS_REG(p & REG_MASK))) + return 0; + + if (CHECK_IF_VIRTUAL_REGISTER(p & REG_MASK)) + return 0; + + if (p & OFFS_REG_MASK) { + if ((p & REG_MASK) == SLJIT_UNUSED) + return 0; + + if (!(FUNCTION_CHECK_IS_REG(OFFS_REG(p)))) + return 0; + + if (CHECK_IF_VIRTUAL_REGISTER(OFFS_REG(p))) + return 0; + + if ((i & ~0x3) != 0) + return 0; } + return (p & ~(SLJIT_MEM | REG_MASK | OFFS_REG_MASK)) == 0; +} + +#define FUNCTION_CHECK_SRC_MEM(p, i) \ + CHECK_ARGUMENT(function_check_src_mem(compiler, p, i)); + +static sljit_s32 function_check_src(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) +{ + if (compiler->scratches == -1 || compiler->saveds == -1) + return 0; + + if (FUNCTION_CHECK_IS_REG(p)) + return (i == 0); + + if (p == SLJIT_IMM) + return 1; + + if (p == SLJIT_MEM1(SLJIT_SP)) + return (i >= 0 && i < compiler->logical_local_size); + + return function_check_src_mem(compiler, p, i); +} + +#define FUNCTION_CHECK_SRC(p, i) \ + CHECK_ARGUMENT(function_check_src(compiler, p, i)); + +static sljit_s32 function_check_dst(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i, sljit_s32 unused) +{ + if (compiler->scratches == -1 || compiler->saveds == -1) + return 0; + + if (FUNCTION_CHECK_IS_REG(p) || ((unused) && (p) == SLJIT_UNUSED)) + return (i == 0); + + if (p == SLJIT_MEM1(SLJIT_SP)) + return (i >= 0 && i < compiler->logical_local_size); + + return function_check_src_mem(compiler, p, i); +} + #define FUNCTION_CHECK_DST(p, i, unused) \ - CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); \ - if (FUNCTION_CHECK_IS_REG(p) || ((unused) && (p) == SLJIT_UNUSED)) \ - CHECK_ARGUMENT((i) == 0); \ - else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \ - CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \ - else { \ - CHECK_ARGUMENT((p) & SLJIT_MEM); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \ - CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \ - if ((p) & OFFS_REG_MASK) { \ - CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \ - CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \ - CHECK_ARGUMENT(!((i) & ~0x3)); \ - } \ - CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | REG_MASK | OFFS_REG_MASK))); \ - } + CHECK_ARGUMENT(function_check_dst(compiler, p, i, unused)); + +static sljit_s32 function_fcheck(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) +{ + if (compiler->scratches == -1 || compiler->saveds == -1) + return 0; + + if (FUNCTION_CHECK_IS_FREG(p)) + return (i == 0); + + if (p == SLJIT_MEM1(SLJIT_SP)) + return (i >= 0 && i < compiler->logical_local_size); + + return function_check_src_mem(compiler, p, i); +} #define FUNCTION_FCHECK(p, i) \ - CHECK_ARGUMENT(compiler->fscratches != -1 && compiler->fsaveds != -1); \ - if (((p) >= SLJIT_FR0 && (p) < (SLJIT_FR0 + compiler->fscratches)) || \ - ((p) > (SLJIT_FS0 - compiler->fsaveds) && (p) <= SLJIT_FS0)) \ - CHECK_ARGUMENT(i == 0); \ - else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \ - CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \ - else { \ - CHECK_ARGUMENT((p) & SLJIT_MEM); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \ - CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \ - if ((p) & OFFS_REG_MASK) { \ - CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \ - CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \ - CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \ - CHECK_ARGUMENT(((p) & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_SP) && !(i & ~0x3)); \ - } \ - CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | REG_MASK | OFFS_REG_MASK))); \ - } + CHECK_ARGUMENT(function_fcheck(compiler, p, i)); #endif /* SLJIT_ARGUMENT_CHECKS */ @@ -758,64 +812,72 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *comp # define SLJIT_PRINT_D "" #endif -#define sljit_verbose_reg(compiler, r) \ - do { \ - if ((r) < (SLJIT_R0 + compiler->scratches)) \ - fprintf(compiler->verbose, "r%d", (r) - SLJIT_R0); \ - else if ((r) != SLJIT_SP) \ - fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - (r)); \ - else \ - fprintf(compiler->verbose, "sp"); \ - } while (0) +static void sljit_verbose_reg(struct sljit_compiler *compiler, sljit_s32 r) +{ + if (r < (SLJIT_R0 + compiler->scratches)) + fprintf(compiler->verbose, "r%d", r - SLJIT_R0); + else if (r != SLJIT_SP) + fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - r); + else + fprintf(compiler->verbose, "sp"); +} -#define sljit_verbose_param(compiler, p, i) \ - if ((p) & SLJIT_IMM) \ - fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); \ - else if ((p) & SLJIT_MEM) { \ - if ((p) & REG_MASK) { \ - fputc('[', compiler->verbose); \ - sljit_verbose_reg(compiler, (p) & REG_MASK); \ - if ((p) & OFFS_REG_MASK) { \ - fprintf(compiler->verbose, " + "); \ - sljit_verbose_reg(compiler, OFFS_REG(p)); \ - if (i) \ - fprintf(compiler->verbose, " * %d", 1 << (i)); \ - } \ - else if (i) \ - fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); \ - fputc(']', compiler->verbose); \ - } \ - else \ - fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); \ - } else if (p) \ - sljit_verbose_reg(compiler, p); \ - else \ +static void sljit_verbose_freg(struct sljit_compiler *compiler, sljit_s32 r) +{ + if (r < (SLJIT_FR0 + compiler->fscratches)) + fprintf(compiler->verbose, "fr%d", r - SLJIT_FR0); + else + fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - r); +} + +static void sljit_verbose_param(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) +{ + if ((p) & SLJIT_IMM) + fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); + else if ((p) & SLJIT_MEM) { + if ((p) & REG_MASK) { + fputc('[', compiler->verbose); + sljit_verbose_reg(compiler, (p) & REG_MASK); + if ((p) & OFFS_REG_MASK) { + fprintf(compiler->verbose, " + "); + sljit_verbose_reg(compiler, OFFS_REG(p)); + if (i) + fprintf(compiler->verbose, " * %d", 1 << (i)); + } + else if (i) + fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); + fputc(']', compiler->verbose); + } + else + fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); + } else if (p) + sljit_verbose_reg(compiler, p); + else fprintf(compiler->verbose, "unused"); +} -#define sljit_verbose_fparam(compiler, p, i) \ - if ((p) & SLJIT_MEM) { \ - if ((p) & REG_MASK) { \ - fputc('[', compiler->verbose); \ - sljit_verbose_reg(compiler, (p) & REG_MASK); \ - if ((p) & OFFS_REG_MASK) { \ - fprintf(compiler->verbose, " + "); \ - sljit_verbose_reg(compiler, OFFS_REG(p)); \ - if (i) \ - fprintf(compiler->verbose, "%d", 1 << (i)); \ - } \ - else if (i) \ - fprintf(compiler->verbose, "%" SLJIT_PRINT_D "d", (i)); \ - fputc(']', compiler->verbose); \ - } \ - else \ - fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); \ - } \ - else { \ - if ((p) < (SLJIT_FR0 + compiler->fscratches)) \ - fprintf(compiler->verbose, "fr%d", (p) - SLJIT_FR0); \ - else \ - fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - (p)); \ +static void sljit_verbose_fparam(struct sljit_compiler *compiler, sljit_s32 p, sljit_sw i) +{ + if ((p) & SLJIT_MEM) { + if ((p) & REG_MASK) { + fputc('[', compiler->verbose); + sljit_verbose_reg(compiler, (p) & REG_MASK); + if ((p) & OFFS_REG_MASK) { + fprintf(compiler->verbose, " + "); + sljit_verbose_reg(compiler, OFFS_REG(p)); + if (i) + fprintf(compiler->verbose, "%d", 1 << (i)); + } + else if (i) + fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); + fputc(']', compiler->verbose); + } + else + fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); } + else + sljit_verbose_freg(compiler, p); +} static const char* op0_names[] = { (char*)"breakpoint", (char*)"nop", (char*)"lmul.uw", (char*)"lmul.sw", @@ -864,7 +926,11 @@ static char* jump_names[] = { (char*)"greater", (char*)"less_equal", (char*)"unordered", (char*)"ordered", (char*)"jump", (char*)"fast_call", - (char*)"call0", (char*)"call1", (char*)"call2", (char*)"call3" + (char*)"call", (char*)"call.cdecl" +}; + +static char* call_arg_names[] = { + (char*)"void", (char*)"sw", (char*)"uw", (char*)"s32", (char*)"u32", (char*)"f32", (char*)"f64" }; #endif /* SLJIT_VERBOSE */ @@ -897,53 +963,104 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_com } static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + sljit_s32 types, arg_count, curr_type; +#endif + SLJIT_UNUSED_ARG(compiler); #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) CHECK_ARGUMENT(!(options & ~SLJIT_F64_ALIGNMENT)); - CHECK_ARGUMENT(args >= 0 && args <= 3); CHECK_ARGUMENT(scratches >= 0 && scratches <= SLJIT_NUMBER_OF_REGISTERS); CHECK_ARGUMENT(saveds >= 0 && saveds <= SLJIT_NUMBER_OF_REGISTERS); CHECK_ARGUMENT(scratches + saveds <= SLJIT_NUMBER_OF_REGISTERS); - CHECK_ARGUMENT(args <= saveds); CHECK_ARGUMENT(fscratches >= 0 && fscratches <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(fsaveds >= 0 && fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(fscratches + fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE); + CHECK_ARGUMENT((arg_types & SLJIT_DEF_MASK) == 0); + + types = (arg_types >> SLJIT_DEF_SHIFT); + arg_count = 0; + while (types != 0 && arg_count < 3) { + curr_type = (types & SLJIT_DEF_MASK); + CHECK_ARGUMENT(curr_type == SLJIT_ARG_TYPE_SW || curr_type == SLJIT_ARG_TYPE_UW); + arg_count++; + types >>= SLJIT_DEF_SHIFT; + } + CHECK_ARGUMENT(arg_count <= saveds && types == 0); + compiler->last_flags = 0; #endif #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) - if (SLJIT_UNLIKELY(!!compiler->verbose)) - fprintf(compiler->verbose, " enter options:none args:%d scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", - args, scratches, saveds, fscratches, fsaveds, local_size); + if (SLJIT_UNLIKELY(!!compiler->verbose)) { + fprintf(compiler->verbose, " enter options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f64_align" : ""); + + arg_types >>= SLJIT_DEF_SHIFT; + while (arg_types) { + fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) + fprintf(compiler->verbose, ","); + } + + fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", + scratches, saveds, fscratches, fsaveds, local_size); + } #endif CHECK_RETURN_OK; } static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + sljit_s32 types, arg_count, curr_type; +#endif + + SLJIT_UNUSED_ARG(compiler); + #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) CHECK_ARGUMENT(!(options & ~SLJIT_F64_ALIGNMENT)); - CHECK_ARGUMENT(args >= 0 && args <= 3); CHECK_ARGUMENT(scratches >= 0 && scratches <= SLJIT_NUMBER_OF_REGISTERS); CHECK_ARGUMENT(saveds >= 0 && saveds <= SLJIT_NUMBER_OF_REGISTERS); CHECK_ARGUMENT(scratches + saveds <= SLJIT_NUMBER_OF_REGISTERS); - CHECK_ARGUMENT(args <= saveds); CHECK_ARGUMENT(fscratches >= 0 && fscratches <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(fsaveds >= 0 && fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(fscratches + fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS); CHECK_ARGUMENT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE); + + types = (arg_types >> SLJIT_DEF_SHIFT); + arg_count = 0; + while (types != 0 && arg_count < 3) { + curr_type = (types & SLJIT_DEF_MASK); + CHECK_ARGUMENT(curr_type == SLJIT_ARG_TYPE_SW || curr_type == SLJIT_ARG_TYPE_UW); + arg_count++; + types >>= SLJIT_DEF_SHIFT; + } + CHECK_ARGUMENT(arg_count <= saveds && types == 0); + compiler->last_flags = 0; #endif #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) - if (SLJIT_UNLIKELY(!!compiler->verbose)) - fprintf(compiler->verbose, " set_context options:none args:%d scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", - args, scratches, saveds, fscratches, fsaveds, local_size); + if (SLJIT_UNLIKELY(!!compiler->verbose)) { + fprintf(compiler->verbose, " set_context options:%s args[", (options & SLJIT_F64_ALIGNMENT) ? "f64_align" : ""); + + arg_types >>= SLJIT_DEF_SHIFT; + while (arg_types) { + fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) + fprintf(compiler->verbose, ","); + } + + fprintf(compiler->verbose, "] scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n", + scratches, saveds, fscratches, fsaveds, local_size); + } #endif CHECK_RETURN_OK; } @@ -994,6 +1111,7 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_return(struct sljit_ { #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) FUNCTION_CHECK_SRC(src, srcw); + CHECK_ARGUMENT(src != SLJIT_IMM); compiler->last_flags = 0; #endif #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) @@ -1052,9 +1170,6 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler case SLJIT_MOV: case SLJIT_MOV_U32: case SLJIT_MOV_P: - case SLJIT_MOVU: - case SLJIT_MOVU_U32: - case SLJIT_MOVU_P: /* Nothing allowed */ CHECK_ARGUMENT(!(op & (SLJIT_I32_OP | SLJIT_SET_Z | VARIABLE_FLAG_MASK))); break; @@ -1067,28 +1182,17 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler FUNCTION_CHECK_DST(dst, dstw, 1); FUNCTION_CHECK_SRC(src, srcw); - if (GET_OPCODE(op) >= SLJIT_NOT) + if (GET_OPCODE(op) >= SLJIT_NOT) { + CHECK_ARGUMENT(src != SLJIT_IMM); compiler->last_flags = GET_FLAG_TYPE(op) | (op & (SLJIT_I32_OP | SLJIT_SET_Z)); - else if (GET_OPCODE(op) >= SLJIT_MOVU) { - CHECK_ARGUMENT(!(src & SLJIT_MEM) || (src & REG_MASK) != SLJIT_SP); - CHECK_ARGUMENT(!(dst & SLJIT_MEM) || (dst & REG_MASK) != SLJIT_SP); - if ((src & REG_MASK) != SLJIT_UNUSED) { - CHECK_ARGUMENT((src & REG_MASK) != (dst & REG_MASK) && (src & REG_MASK) != OFFS_REG(dst)); - CHECK_ARGUMENT((src & OFFS_REG_MASK) == SLJIT_UNUSED || srcw == 0); - } - if ((dst & REG_MASK) != SLJIT_UNUSED) { - CHECK_ARGUMENT((dst & REG_MASK) != OFFS_REG(src)); - CHECK_ARGUMENT((dst & OFFS_REG_MASK) == SLJIT_UNUSED || dstw == 0); - } - compiler->last_flags = 0; } #endif #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) if (SLJIT_UNLIKELY(!!compiler->verbose)) { - if (GET_OPCODE(op) <= SLJIT_MOVU_P) + if (GET_OPCODE(op) <= SLJIT_MOV_P) { - fprintf(compiler->verbose, " mov%s%s%s ", (GET_OPCODE(op) >= SLJIT_MOVU) ? "u" : "", - !(op & SLJIT_I32_OP) ? "" : "32", (op != SLJIT_MOV32 && op != SLJIT_MOVU32) ? op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE] : ""); + fprintf(compiler->verbose, " mov%s%s ", !(op & SLJIT_I32_OP) ? "" : "32", + (op != SLJIT_MOV32) ? op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE] : ""); } else { @@ -1417,9 +1521,8 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compile #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_I32_OP))); CHECK_ARGUMENT((type & 0xff) != GET_FLAG_TYPE(SLJIT_SET_CARRY) && (type & 0xff) != (GET_FLAG_TYPE(SLJIT_SET_CARRY) + 1)); - CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_CALL3); + CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_FAST_CALL); CHECK_ARGUMENT((type & 0xff) < SLJIT_JUMP || !(type & SLJIT_I32_OP)); - CHECK_ARGUMENT((type & 0xff) <= SLJIT_CALL0 || ((type & 0xff) - SLJIT_CALL0) <= compiler->scratches); if ((type & 0xff) < SLJIT_JUMP) { if ((type & 0xff) <= SLJIT_NOT_ZERO) @@ -1439,6 +1542,63 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compile CHECK_RETURN_OK; } +static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + sljit_s32 i, types, curr_type, scratches, fscratches; + + CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP))); + CHECK_ARGUMENT((type & 0xff) == SLJIT_CALL || (type & 0xff) == SLJIT_CALL_CDECL); + + types = arg_types; + scratches = 0; + fscratches = 0; + for (i = 0; i < 5; i++) { + curr_type = (types & SLJIT_DEF_MASK); + CHECK_ARGUMENT(curr_type <= SLJIT_ARG_TYPE_F64); + if (i > 0) { + if (curr_type == 0) { + break; + } + if (curr_type >= SLJIT_ARG_TYPE_F32) + fscratches++; + else + scratches++; + } else { + if (curr_type >= SLJIT_ARG_TYPE_F32) { + CHECK_ARGUMENT(compiler->fscratches > 0); + } else if (curr_type >= SLJIT_ARG_TYPE_SW) { + CHECK_ARGUMENT(compiler->scratches > 0); + } + } + types >>= SLJIT_DEF_SHIFT; + } + CHECK_ARGUMENT(compiler->scratches >= scratches); + CHECK_ARGUMENT(compiler->fscratches >= fscratches); + CHECK_ARGUMENT(types == 0); +#endif +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) + if (SLJIT_UNLIKELY(!!compiler->verbose)) { + fprintf(compiler->verbose, " %s%s ret[%s", jump_names[type & 0xff], + !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", call_arg_names[arg_types & SLJIT_DEF_MASK]); + + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) { + fprintf(compiler->verbose, "], args["); + do { + fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) + fprintf(compiler->verbose, ","); + } while (arg_types); + } + fprintf(compiler->verbose, "]\n"); + } +#endif + CHECK_RETURN_OK; +} + static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w) @@ -1488,20 +1648,16 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compile CHECK_RETURN_OK; } -static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) +static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 src, sljit_sw srcw) { -#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - compiler->last_flags = 0; -#endif - if (SLJIT_UNLIKELY(compiler->skip_checks)) { compiler->skip_checks = 0; CHECK_RETURN_OK; } #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - CHECK_ARGUMENT(type >= SLJIT_JUMP && type <= SLJIT_CALL3); - CHECK_ARGUMENT(type <= SLJIT_CALL0 || (type - SLJIT_CALL0) <= compiler->scratches); + CHECK_ARGUMENT(type >= SLJIT_JUMP && type <= SLJIT_FAST_CALL); FUNCTION_CHECK_SRC(src, srcw); #endif #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) @@ -1514,6 +1670,66 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compil CHECK_RETURN_OK; } +static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + sljit_s32 i, types, curr_type, scratches, fscratches; + + CHECK_ARGUMENT(type == SLJIT_CALL || type == SLJIT_CALL_CDECL); + FUNCTION_CHECK_SRC(src, srcw); + + types = arg_types; + scratches = 0; + fscratches = 0; + for (i = 0; i < 5; i++) { + curr_type = (types & SLJIT_DEF_MASK); + CHECK_ARGUMENT(curr_type <= SLJIT_ARG_TYPE_F64); + if (i > 0) { + if (curr_type == 0) { + break; + } + if (curr_type >= SLJIT_ARG_TYPE_F32) + fscratches++; + else + scratches++; + } else { + if (curr_type >= SLJIT_ARG_TYPE_F32) { + CHECK_ARGUMENT(compiler->fscratches > 0); + } else if (curr_type >= SLJIT_ARG_TYPE_SW) { + CHECK_ARGUMENT(compiler->scratches > 0); + } + } + types >>= SLJIT_DEF_SHIFT; + } + CHECK_ARGUMENT(compiler->scratches >= scratches); + CHECK_ARGUMENT(compiler->fscratches >= fscratches); + CHECK_ARGUMENT(types == 0); +#endif +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) + if (SLJIT_UNLIKELY(!!compiler->verbose)) { + fprintf(compiler->verbose, " i%s%s ret[%s", jump_names[type & 0xff], + !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", call_arg_names[arg_types & SLJIT_DEF_MASK]); + + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) { + fprintf(compiler->verbose, "], args["); + do { + fprintf(compiler->verbose, "%s", call_arg_names[arg_types & SLJIT_DEF_MASK]); + arg_types >>= SLJIT_DEF_SHIFT; + if (arg_types) + fprintf(compiler->verbose, ","); + } while (arg_types); + } + fprintf(compiler->verbose, "], "); + sljit_verbose_param(compiler, src, srcw); + fprintf(compiler->verbose, "\n"); + } +#endif + CHECK_RETURN_OK; +} + static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) @@ -1558,9 +1774,12 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compile #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_I32_OP))); CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_ORDERED_F64); + + CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(dst_reg & ~SLJIT_I32_OP)); if (src != SLJIT_IMM) { CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(src)); + CHECK_ARGUMENT(srcw == 0); } if ((type & 0xff) <= SLJIT_NOT_ZERO) @@ -1573,7 +1792,7 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compile #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) if (SLJIT_UNLIKELY(!!compiler->verbose)) { fprintf(compiler->verbose, " cmov%s %s%s, ", - !(dst_reg & SLJIT_I32_OP) ? "" : ".i", + !(dst_reg & SLJIT_I32_OP) ? "" : "32", jump_names[type & 0xff], JUMP_POSTFIX(type)); sljit_verbose_reg(compiler, dst_reg & ~SLJIT_I32_OP); fprintf(compiler->verbose, ", "); @@ -1584,8 +1803,75 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compile CHECK_RETURN_OK; } +static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + CHECK_ARGUMENT((type & 0xff) >= SLJIT_MOV && (type & 0xff) <= SLJIT_MOV_P); + CHECK_ARGUMENT(!(type & SLJIT_I32_OP) || ((type & 0xff) != SLJIT_MOV && (type & 0xff) != SLJIT_MOV_U32 && (type & 0xff) != SLJIT_MOV_P)); + CHECK_ARGUMENT((type & SLJIT_MEM_PRE) || (type & SLJIT_MEM_POST)); + CHECK_ARGUMENT((type & (SLJIT_MEM_PRE | SLJIT_MEM_POST)) != (SLJIT_MEM_PRE | SLJIT_MEM_POST)); + CHECK_ARGUMENT((type & ~(0xff | SLJIT_I32_OP | SLJIT_MEM_STORE | SLJIT_MEM_SUPP | SLJIT_MEM_PRE | SLJIT_MEM_POST)) == 0); + + FUNCTION_CHECK_SRC_MEM(mem, memw); + CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(reg)); + + CHECK_ARGUMENT((mem & REG_MASK) != SLJIT_UNUSED && (mem & REG_MASK) != reg); +#endif +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) + if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { + if (sljit_emit_mem(compiler, type | SLJIT_MEM_SUPP, reg, mem, memw) == SLJIT_ERR_UNSUPPORTED) + fprintf(compiler->verbose, " //"); + + fprintf(compiler->verbose, " mem%s.%s%s%s ", + !(type & SLJIT_I32_OP) ? "" : "32", + (type & SLJIT_MEM_STORE) ? "st" : "ld", + op1_names[(type & 0xff) - SLJIT_OP1_BASE], + (type & SLJIT_MEM_PRE) ? ".pre" : ".post"); + sljit_verbose_reg(compiler, reg); + fprintf(compiler->verbose, ", "); + sljit_verbose_param(compiler, mem, memw); + fprintf(compiler->verbose, "\n"); + } +#endif + CHECK_RETURN_OK; +} + +static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 freg, + sljit_s32 mem, sljit_sw memw) +{ +#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + CHECK_ARGUMENT((type & 0xff) == SLJIT_MOV_F64); + CHECK_ARGUMENT((type & SLJIT_MEM_PRE) || (type & SLJIT_MEM_POST)); + CHECK_ARGUMENT((type & (SLJIT_MEM_PRE | SLJIT_MEM_POST)) != (SLJIT_MEM_PRE | SLJIT_MEM_POST)); + CHECK_ARGUMENT((type & ~(0xff | SLJIT_I32_OP | SLJIT_MEM_STORE | SLJIT_MEM_SUPP | SLJIT_MEM_PRE | SLJIT_MEM_POST)) == 0); + + FUNCTION_CHECK_SRC_MEM(mem, memw); + CHECK_ARGUMENT(FUNCTION_CHECK_IS_FREG(freg)); +#endif +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) + if (!(type & SLJIT_MEM_SUPP) && SLJIT_UNLIKELY(!!compiler->verbose)) { + if (sljit_emit_fmem(compiler, type | SLJIT_MEM_SUPP, freg, mem, memw) == SLJIT_ERR_UNSUPPORTED) + fprintf(compiler->verbose, " //"); + + fprintf(compiler->verbose, " fmem.%s%s%s ", + (type & SLJIT_MEM_STORE) ? "st" : "ld", + !(type & SLJIT_I32_OP) ? ".f64" : ".f32", + (type & SLJIT_MEM_PRE) ? ".pre" : ".post"); + sljit_verbose_freg(compiler, freg); + fprintf(compiler->verbose, ", "); + sljit_verbose_param(compiler, mem, memw); + fprintf(compiler->verbose, "\n"); + } +#endif + CHECK_RETURN_OK; +} + static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset) { + /* Any offset is allowed. */ SLJIT_UNUSED_ARG(offset); #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) @@ -1856,7 +2142,51 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compile return sljit_emit_jump(compiler, type); } -#if !(defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) +#if !(defined SLJIT_CONFIG_ARM_32 && SLJIT_CONFIG_ARM_32) \ + && !(defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) \ + && !(defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(reg); + SLJIT_UNUSED_ARG(mem); + SLJIT_UNUSED_ARG(memw); + + CHECK_ERROR(); + CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); + + return SLJIT_ERR_UNSUPPORTED; +} + +#endif + +#if !(defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) \ + && !(defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 freg, + sljit_s32 mem, sljit_sw memw) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(freg); + SLJIT_UNUSED_ARG(mem); + SLJIT_UNUSED_ARG(memw); + + CHECK_ERROR(); + CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); + + return SLJIT_ERR_UNSUPPORTED; +} + +#endif + +#if !(defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) \ + && !(defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset) { @@ -1941,12 +2271,12 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_code(void* code) } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { SLJIT_UNUSED_ARG(compiler); SLJIT_UNUSED_ARG(options); - SLJIT_UNUSED_ARG(args); + SLJIT_UNUSED_ARG(arg_types); SLJIT_UNUSED_ARG(scratches); SLJIT_UNUSED_ARG(saveds); SLJIT_UNUSED_ARG(fscratches); @@ -1957,12 +2287,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { SLJIT_UNUSED_ARG(compiler); SLJIT_UNUSED_ARG(options); - SLJIT_UNUSED_ARG(args); + SLJIT_UNUSED_ARG(arg_types); SLJIT_UNUSED_ARG(scratches); SLJIT_UNUSED_ARG(saveds); SLJIT_UNUSED_ARG(fscratches); @@ -2107,6 +2437,16 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile return NULL; } +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(arg_types); + SLJIT_UNREACHABLE(); + return NULL; +} + SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w) @@ -2159,6 +2499,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi return SLJIT_ERR_UNSUPPORTED; } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(arg_types); + SLJIT_UNUSED_ARG(src); + SLJIT_UNUSED_ARG(srcw); + SLJIT_UNREACHABLE(); + return SLJIT_ERR_UNSUPPORTED; +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) @@ -2185,6 +2538,28 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil return SLJIT_ERR_UNSUPPORTED; } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 reg, sljit_s32 mem, sljit_sw memw) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(reg); + SLJIT_UNUSED_ARG(mem); + SLJIT_UNUSED_ARG(memw); + SLJIT_UNREACHABLE(); + return SLJIT_ERR_UNSUPPORTED; +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, sljit_s32 mem, sljit_sw memw) +{ + SLJIT_UNUSED_ARG(compiler); + SLJIT_UNUSED_ARG(type); + SLJIT_UNUSED_ARG(freg); + SLJIT_UNUSED_ARG(mem); + SLJIT_UNUSED_ARG(memw); + SLJIT_UNREACHABLE(); + return SLJIT_ERR_UNSUPPORTED; +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset) { SLJIT_UNUSED_ARG(compiler); diff --git a/pcre/sljit/sljitLir.h b/pcre/sljit/sljitLir.h index a58ad6e6387..920f6d4f783 100644 --- a/pcre/sljit/sljitLir.h +++ b/pcre/sljit/sljitLir.h @@ -153,8 +153,8 @@ of sljitConfigInternal.h */ is not available at all. */ -/* When SLJIT_UNUSED is specified as the destination of sljit_emit_op1 and - and sljit_emit_op2 operations the result is discarded. If no status +/* When SLJIT_UNUSED is specified as the destination of sljit_emit_op1 + or sljit_emit_op2 operations the result is discarded. If no status flags are set, no instructions are emitted for these operations. Data prefetch is a special exception, see SLJIT_MOV operation. Other SLJIT operations do not support SLJIT_UNUSED as a destination operand. */ @@ -213,14 +213,6 @@ of sljitConfigInternal.h */ #define SLJIT_RETURN_REG SLJIT_R0 -/* x86 prefers specific registers for special purposes. In case of shift - by register it supports only SLJIT_R2 for shift argument - (which is the src2 argument of sljit_emit_op2). If another register is - used, sljit must exchange data between registers which cause a minor - slowdown. Other architectures has no such limitation. */ - -#define SLJIT_PREF_SHIFT_REG SLJIT_R2 - /* --------------------------------------------------------------------- */ /* Floating point registers */ /* --------------------------------------------------------------------- */ @@ -257,6 +249,79 @@ of sljitConfigInternal.h */ /* Float registers >= SLJIT_FIRST_SAVED_FLOAT_REG are saved registers. */ #define SLJIT_FIRST_SAVED_FLOAT_REG (SLJIT_FS0 - SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS + 1) +/* --------------------------------------------------------------------- */ +/* Argument type definitions */ +/* --------------------------------------------------------------------- */ + +/* Argument type definitions. + Used by SLJIT_[DEF_]ARGx and SLJIT_[DEF]_RET macros. */ + +#define SLJIT_ARG_TYPE_VOID 0 +#define SLJIT_ARG_TYPE_SW 1 +#define SLJIT_ARG_TYPE_UW 2 +#define SLJIT_ARG_TYPE_S32 3 +#define SLJIT_ARG_TYPE_U32 4 +#define SLJIT_ARG_TYPE_F32 5 +#define SLJIT_ARG_TYPE_F64 6 + +/* The following argument type definitions are used by sljit_emit_enter, + sljit_set_context, sljit_emit_call, and sljit_emit_icall functions. + The following return type definitions are used by sljit_emit_call + and sljit_emit_icall functions. + + When a function is called, the first integer argument must be placed + in SLJIT_R0, the second in SLJIT_R1, and so on. Similarly the first + floating point argument must be placed in SLJIT_FR0, the second in + SLJIT_FR1, and so on. + + Example function definition: + sljit_f32 SLJIT_FUNC example_c_callback(sljit_sw arg_a, + sljit_f64 arg_b, sljit_u32 arg_c, sljit_f32 arg_d); + + Argument type definition: + SLJIT_DEF_RET(SLJIT_ARG_TYPE_F32) + | SLJIT_DEF_ARG1(SLJIT_ARG_TYPE_SW) | SLJIT_DEF_ARG2(SLJIT_ARG_TYPE_F64) + | SLJIT_DEF_ARG3(SLJIT_ARG_TYPE_U32) | SLJIT_DEF_ARG2(SLJIT_ARG_TYPE_F32) + + Short form of argument type definition: + SLJIT_RET(F32) | SLJIT_ARG1(SW) | SLJIT_ARG2(F64) + | SLJIT_ARG3(S32) | SLJIT_ARG4(F32) + + Argument passing: + arg_a must be placed in SLJIT_R0 + arg_c must be placed in SLJIT_R1 + arg_b must be placed in SLJIT_FR0 + arg_d must be placed in SLJIT_FR1 + +Note: + The SLJIT_ARG_TYPE_VOID type is only supported by + SLJIT_DEF_RET, and SLJIT_ARG_TYPE_VOID is also the + default value when SLJIT_DEF_RET is not specified. */ +#define SLJIT_DEF_SHIFT 4 +#define SLJIT_DEF_RET(type) (type) +#define SLJIT_DEF_ARG1(type) ((type) << SLJIT_DEF_SHIFT) +#define SLJIT_DEF_ARG2(type) ((type) << (2 * SLJIT_DEF_SHIFT)) +#define SLJIT_DEF_ARG3(type) ((type) << (3 * SLJIT_DEF_SHIFT)) +#define SLJIT_DEF_ARG4(type) ((type) << (4 * SLJIT_DEF_SHIFT)) + +/* Short form of the macros above. + + For example the following definition: + SLJIT_DEF_RET(SLJIT_ARG_TYPE_SW) | SLJIT_DEF_ARG1(SLJIT_ARG_TYPE_F32) + + can be shortened to: + SLJIT_RET(SW) | SLJIT_ARG1(F32) + +Note: + The VOID type is only supported by SLJIT_RET, and + VOID is also the default value when SLJIT_RET is + not specified. */ +#define SLJIT_RET(type) SLJIT_DEF_RET(SLJIT_ARG_TYPE_ ## type) +#define SLJIT_ARG1(type) SLJIT_DEF_ARG1(SLJIT_ARG_TYPE_ ## type) +#define SLJIT_ARG2(type) SLJIT_DEF_ARG2(SLJIT_ARG_TYPE_ ## type) +#define SLJIT_ARG3(type) SLJIT_DEF_ARG3(SLJIT_ARG_TYPE_ ## type) +#define SLJIT_ARG4(type) SLJIT_DEF_ARG4(SLJIT_ARG_TYPE_ ## type) + /* --------------------------------------------------------------------- */ /* Main structures and functions */ /* --------------------------------------------------------------------- */ @@ -331,6 +396,7 @@ struct sljit_compiler { sljit_s32 args; sljit_s32 locals_offset; sljit_s32 saveds_offset; + sljit_s32 stack_tmp_size; #endif #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -356,15 +422,8 @@ struct sljit_compiler { sljit_uw shift_imm; #endif -#if (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) - sljit_s32 cache_arg; - sljit_sw cache_argw; -#endif - #if (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) sljit_sw imm; - sljit_s32 cache_arg; - sljit_sw cache_argw; #endif #if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) @@ -499,14 +558,10 @@ static SLJIT_INLINE sljit_uw sljit_get_generated_code_size(struct sljit_compiler #define SLJIT_HAS_FPU 0 /* [Limitation] Some registers are virtual registers. */ #define SLJIT_HAS_VIRTUAL_REGISTERS 1 -/* [Emulated] Some forms of move with pre update is supported. */ -#define SLJIT_HAS_PRE_UPDATE 2 /* [Emulated] Count leading zero is supported. */ -#define SLJIT_HAS_CLZ 3 +#define SLJIT_HAS_CLZ 2 /* [Emulated] Conditional move is supported. */ -#define SLJIT_HAS_CMOV 4 -/* [Limitation] [Emulated] Shifting with register is limited to SLJIT_PREF_SHIFT_REG. */ -#define SLJIT_HAS_PREF_SHIFT_REG 5 +#define SLJIT_HAS_CMOV 3 #if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) /* [Not emulated] SSE2 support is available on x86. */ @@ -519,27 +574,28 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) error, they return with SLJIT_SUCCESS. */ /* - The executable code is a function call from the viewpoint of the C + The executable code is a function from the viewpoint of the C language. The function calls must obey to the ABI (Application Binary Interface) of the platform, which specify the purpose of - all machine registers and stack handling among other things. The + machine registers and stack handling among other things. The sljit_emit_enter function emits the necessary instructions for setting up a new context for the executable code and moves function arguments to the saved registers. Furthermore the options argument can be used to pass configuration options to the compiler. The available options are listed before sljit_emit_enter. - The number of sljit_sw arguments passed to the generated function - are specified in the "args" parameter. The number of arguments must - be less than or equal to 3. The first argument goes to SLJIT_S0, - the second goes to SLJIT_S1 and so on. The register set used by - the function must be declared as well. The number of scratch and - saved registers used by the function must be passed to sljit_emit_enter. - Only R registers between R0 and "scratches" argument can be used - later. E.g. if "scratches" is set to 2, the register set will be - limited to R0 and R1. The S registers and the floating point + The function argument list is the combination of SLJIT_ARGx + (SLJIT_DEF_ARG1) macros. Currently maximum 3 SW / UW + (SLJIT_ARG_TYPE_SW / LJIT_ARG_TYPE_UW) arguments are supported. + The first argument goes to SLJIT_S0, the second goes to SLJIT_S1 + and so on. The register set used by the function must be declared + as well. The number of scratch and saved registers used by the + function must be passed to sljit_emit_enter. Only R registers + between R0 and "scratches" argument can be used later. E.g. if + "scratches" is set to 2, the scratch register set will be limited + to SLJIT_R0 and SLJIT_R1. The S registers and the floating point registers ("fscratches" and "fsaveds") are specified in a similar - way. The sljit_emit_enter is also capable of allocating a stack + manner. The sljit_emit_enter is also capable of allocating a stack space for local variables. The "local_size" argument contains the size in bytes of this local area and its staring address is stored in SLJIT_SP. The memory area between SLJIT_SP (inclusive) and @@ -566,7 +622,7 @@ offset 0 is aligned to sljit_f64. Otherwise it is aligned to sljit_sw. */ #define SLJIT_MAX_LOCAL_SIZE 65536 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size); /* The machine code has a context (which contains the local stack space size, @@ -580,7 +636,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi the previous context. */ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size); /* Return from machine code. The op argument can be SLJIT_UNUSED which means the @@ -592,26 +648,31 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *comp SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw); -/* Fast calling mechanism for utility functions (see SLJIT_FAST_CALL). All registers and - even the stack frame is passed to the callee. The return address is preserved in - dst/dstw by sljit_emit_fast_enter (the type of the value stored by this function - is sljit_p), and sljit_emit_fast_return can use this as a return value later. */ +/* Generating entry and exit points for fast call functions (see SLJIT_FAST_CALL). + Both sljit_emit_fast_enter and sljit_emit_fast_return functions preserve the + values of all registers and stack frame. The return address is stored in the + dst argument of sljit_emit_fast_enter, and this return address can be passed + to sljit_emit_fast_return to continue the execution after the fast call. -/* Note: only for sljit specific, non ABI compilant calls. Fast, since only a few machine - instructions are needed. Excellent for small uility functions, where saving registers - and setting up a new stack frame would cost too much performance. However, it is still - possible to return to the address of the caller (or anywhere else). */ + Fast calls are cheap operations (usually only a single call instruction is + emitted) but they do not preserve any registers. However the callee function + can freely use / update any registers and stack values which can be + efficiently exploited by various optimizations. Registers can be saved + manually by the callee function if needed. -/* Note: may destroy flags. */ + Although returning to different address by sljit_emit_fast_return is possible, + this address usually cannot be predicted by the return address predictor of + modern CPUs which may reduce performance. Furthermore using sljit_emit_ijump + to return is also inefficient since return address prediction is usually + triggered by a specific form of ijump. -/* Note: although sljit_emit_fast_return could be replaced by an ijump, it is not suggested, - since many architectures do clever branch prediction on call / return instruction pairs. */ + Flags: - (does not modify flags). */ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw); SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw); /* - Source and destination values for arithmetical instructions + Source and destination operands for arithmetical instructions imm - a simple immediate value (cannot be used as a destination) reg - any of the registers (immediate argument must be 0) [imm] - absolute immediate memory address @@ -652,6 +713,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler arm-t2: [reg+imm], -255 <= imm <= 4095 [reg+(reg<cpool_diff == CONST_POOL_EMPTY || compiler->size - compiler->cpool_diff < MAX_DIFFERENCE(4092)); - return push_inst(compiler, BLX | RM(TMP_REG2)); + SLJIT_ASSERT(reg_map[TMP_REG1] != 14); + + return push_inst(compiler, BLX | RM(TMP_REG1)); } static sljit_uw patch_pc_relative_loads(sljit_uw *last_pc_patch, sljit_uw *code_ptr, sljit_uw* const_pool, sljit_uw cpool_size) @@ -825,7 +837,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) return 1; #endif - case SLJIT_HAS_PRE_UPDATE: case SLJIT_HAS_CLZ: case SLJIT_HAS_CMOV: return 1; @@ -840,18 +851,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) /* --------------------------------------------------------------------- */ /* Creates an index in data_transfer_insts array. */ -#define WORD_DATA 0x00 -#define BYTE_DATA 0x01 -#define HALF_DATA 0x02 -#define PRELOAD_DATA 0x03 -#define SIGNED_DATA 0x04 +#define WORD_SIZE 0x00 +#define BYTE_SIZE 0x01 +#define HALF_SIZE 0x02 +#define PRELOAD 0x03 +#define SIGNED 0x04 #define LOAD_DATA 0x08 -/* emit_op inp_flags. - WRITE_BACK must be the first, since it is a flag. */ -#define WRITE_BACK 0x10 -#define ALLOW_IMM 0x20 -#define ALLOW_INV_IMM 0x40 +/* Flag bits for emit_op. */ +#define ALLOW_IMM 0x10 +#define ALLOW_INV_IMM 0x20 #define ALLOW_ANY_IMM (ALLOW_IMM | ALLOW_INV_IMM) /* s/l - store/load (1 bit) @@ -872,15 +881,15 @@ static const sljit_uw data_transfer_insts[16] = { /* l u w */ 0xe5100000 /* ldr */, /* l u b */ 0xe5500000 /* ldrb */, /* l u h */ 0xe11000b0 /* ldrh */, -/* l u p */ 0xf5500000 /* preload data */, +/* l u p */ 0xf5500000 /* preload */, /* l s w */ 0xe5100000 /* ldr */, /* l s b */ 0xe11000d0 /* ldrsb */, /* l s h */ 0xe11000f0 /* ldrsh */, /* l s N */ 0x00000000 /* not allowed */, }; -#define EMIT_DATA_TRANSFER(type, add, wb, target_reg, base_reg, arg) \ - (data_transfer_insts[(type) & 0xf] | ((add) << 23) | ((wb) << (21 - 4)) | RD(target_reg) | RN(base_reg) | (arg)) +#define EMIT_DATA_TRANSFER(type, add, target_reg, base_reg, arg) \ + (data_transfer_insts[(type) & 0xf] | ((add) << 23) | RD(target_reg) | RN(base_reg) | (arg)) /* Normal ldr/str instruction. Type2: ldrsb, ldrh, ldrsh */ @@ -889,25 +898,21 @@ static const sljit_uw data_transfer_insts[16] = { #define TYPE2_TRANSFER_IMM(imm) \ (((imm) & 0xf) | (((imm) & 0xf0) << 4) | (1 << 22)) -/* Condition: AL. */ -#define EMIT_DATA_PROCESS_INS(opcode, set_flags, dst, src1, src2) \ - (0xe0000000 | ((opcode) << 21) | (set_flags) | RD(dst) | RN(src1) | (src2)) - static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 inp_flags, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w); SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 size, i, tmp; + sljit_s32 args, size, i, tmp; sljit_uw push; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); /* Push saved registers, temporary registers stmdb sp!, {..., lr} */ @@ -929,25 +934,27 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi if (local_size > 0) FAIL_IF(emit_op(compiler, SLJIT_SUB, ALLOW_IMM, SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size)); + args = get_arg_count(arg_types); + if (args >= 1) - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S0, SLJIT_UNUSED, RM(SLJIT_R0)))); + FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S0) | RM(SLJIT_R0))); if (args >= 2) - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S1, SLJIT_UNUSED, RM(SLJIT_R1)))); + FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S1) | RM(SLJIT_R1))); if (args >= 3) - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S2, SLJIT_UNUSED, RM(SLJIT_R2)))); + FAIL_IF(push_inst(compiler, MOV | RD(SLJIT_S2) | RM(SLJIT_R2))); return SLJIT_SUCCESS; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { sljit_s32 size; CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); compiler->local_size = ((size + local_size + 7) & ~7) - size; @@ -1009,12 +1016,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp SLJIT_ASSERT(!(flags & ARGS_SWAPPED)); \ \ if (compiler->shift_imm != 0) \ - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, flags & SET_FLAGS, \ - dst, SLJIT_UNUSED, (compiler->shift_imm << 7) | (opcode << 5) | RM(src2))); \ - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, flags & SET_FLAGS, dst, SLJIT_UNUSED, RM(src2))); \ + return push_inst(compiler, MOV | (flags & SET_FLAGS) | \ + RD(dst) | (compiler->shift_imm << 7) | (opcode << 5) | RM(src2)); \ + return push_inst(compiler, MOV | (flags & SET_FLAGS) | RD(dst) | RM(src2)); \ } \ - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, flags & SET_FLAGS, \ - dst, SLJIT_UNUSED, (reg_map[(flags & ARGS_SWAPPED) ? src1 : src2] << 8) | (opcode << 5) | 0x10 | RM((flags & ARGS_SWAPPED) ? src2 : src1))); + return push_inst(compiler, MOV | (flags & SET_FLAGS) | RD(dst) | \ + (reg_map[(flags & ARGS_SWAPPED) ? src1 : src2] << 8) | (opcode << 5) | 0x10 | RM((flags & ARGS_SWAPPED) ? src2 : src1)); static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 flags, sljit_s32 dst, sljit_s32 src1, sljit_s32 src2) @@ -1024,10 +1031,9 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & ARGS_SWAPPED)); if (dst != src2) { if (src2 & SRC2_IMM) { - return push_inst(compiler, EMIT_DATA_PROCESS_INS((flags & INV_IMM) ? MVN_DP : MOV_DP, 0, - dst, SLJIT_UNUSED, src2)); + return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); } - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, RM(src2))); + return push_inst(compiler, MOV | RD(dst) | RM(src2)); } return SLJIT_SUCCESS; @@ -1037,17 +1043,16 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl if (flags & MOVE_REG_CONV) { #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) if (op == SLJIT_MOV_U8) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(AND_DP, 0, dst, src2, SRC2_IMM | 0xff)); - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (24 << 7) | RM(src2)))); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (24 << 7) | (op == SLJIT_MOV_U8 ? 0x20 : 0x40) | RM(dst))); + return push_inst(compiler, AND | RD(dst) | RN(src2) | SRC2_IMM | 0xff); + FAIL_IF(push_inst(compiler, MOV | RD(dst) | (24 << 7) | RM(src2))); + return push_inst(compiler, MOV | RD(dst) | (24 << 7) | (op == SLJIT_MOV_U8 ? 0x20 : 0x40) | RM(dst)); #else return push_inst(compiler, (op == SLJIT_MOV_U8 ? UXTB : SXTB) | RD(dst) | RM(src2)); #endif } else if (dst != src2) { SLJIT_ASSERT(src2 & SRC2_IMM); - return push_inst(compiler, EMIT_DATA_PROCESS_INS((flags & INV_IMM) ? MVN_DP : MOV_DP, 0, - dst, SLJIT_UNUSED, src2)); + return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); } return SLJIT_SUCCESS; @@ -1056,25 +1061,23 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & ARGS_SWAPPED)); if (flags & MOVE_REG_CONV) { #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (16 << 7) | RM(src2)))); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (16 << 7) | (op == SLJIT_MOV_U16 ? 0x20 : 0x40) | RM(dst))); + FAIL_IF(push_inst(compiler, MOV | RD(dst) | (16 << 7) | RM(src2))); + return push_inst(compiler, MOV | RD(dst) | (16 << 7) | (op == SLJIT_MOV_U16 ? 0x20 : 0x40) | RM(dst)); #else return push_inst(compiler, (op == SLJIT_MOV_U16 ? UXTH : SXTH) | RD(dst) | RM(src2)); #endif } else if (dst != src2) { SLJIT_ASSERT(src2 & SRC2_IMM); - return push_inst(compiler, EMIT_DATA_PROCESS_INS((flags & INV_IMM) ? MVN_DP : MOV_DP, 0, - dst, SLJIT_UNUSED, src2)); + return push_inst(compiler, ((flags & INV_IMM) ? MVN : MOV) | RD(dst) | src2); } return SLJIT_SUCCESS; case SLJIT_NOT: if (src2 & SRC2_IMM) { - return push_inst(compiler, EMIT_DATA_PROCESS_INS((flags & INV_IMM) ? MOV_DP : MVN_DP, flags & SET_FLAGS, - dst, SLJIT_UNUSED, src2)); + return push_inst(compiler, ((flags & INV_IMM) ? MOV : MVN) | (flags & SET_FLAGS) | RD(dst) | src2); } - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MVN_DP, flags & SET_FLAGS, dst, SLJIT_UNUSED, RM(src2))); + return push_inst(compiler, MVN | (flags & SET_FLAGS) | RD(dst) | RM(src2)); case SLJIT_CLZ: SLJIT_ASSERT(!(flags & INV_IMM)); @@ -1085,28 +1088,24 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl case SLJIT_ADD: SLJIT_ASSERT(!(flags & INV_IMM)); if ((flags & (UNUSED_RETURN | SET_FLAGS)) == (UNUSED_RETURN | SET_FLAGS) && !(flags & ARGS_SWAPPED)) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(CMN_DP, SET_FLAGS, - SLJIT_UNUSED, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, flags & SET_FLAGS, - dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, CMN | SET_FLAGS | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, ADD | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_ADDC: SLJIT_ASSERT(!(flags & INV_IMM)); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(ADC_DP, flags & SET_FLAGS, - dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, ADC | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_SUB: SLJIT_ASSERT(!(flags & INV_IMM)); if ((flags & (UNUSED_RETURN | SET_FLAGS)) == (UNUSED_RETURN | SET_FLAGS) && !(flags & ARGS_SWAPPED)) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(CMP_DP, SET_FLAGS, - SLJIT_UNUSED, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(!(flags & ARGS_SWAPPED) ? SUB_DP : RSB_DP, flags & SET_FLAGS, - dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, CMP | SET_FLAGS | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, (!(flags & ARGS_SWAPPED) ? SUB : RSB) | (flags & SET_FLAGS) + | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_SUBC: SLJIT_ASSERT(!(flags & INV_IMM)); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(!(flags & ARGS_SWAPPED) ? SBC_DP : RSC_DP, flags & SET_FLAGS, - dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, (!(flags & ARGS_SWAPPED) ? SBC : RSC) | (flags & SET_FLAGS) + | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_MUL: SLJIT_ASSERT(!(flags & INV_IMM)); @@ -1118,19 +1117,19 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl FAIL_IF(push_inst(compiler, SMULL | (reg_map[TMP_REG1] << 16) | (reg_map[dst] << 12) | (reg_map[src2] << 8) | reg_map[src1])); /* cmp TMP_REG1, dst asr #31. */ - return push_inst(compiler, EMIT_DATA_PROCESS_INS(CMP_DP, SET_FLAGS, SLJIT_UNUSED, TMP_REG1, RM(dst) | 0xfc0)); + return push_inst(compiler, CMP | SET_FLAGS | RN(TMP_REG1) | RM(dst) | 0xfc0); case SLJIT_AND: - return push_inst(compiler, EMIT_DATA_PROCESS_INS(!(flags & INV_IMM) ? AND_DP : BIC_DP, flags & SET_FLAGS, - dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, (!(flags & INV_IMM) ? AND : BIC) | (flags & SET_FLAGS) + | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_OR: SLJIT_ASSERT(!(flags & INV_IMM)); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(ORR_DP, flags & SET_FLAGS, dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, ORR | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_XOR: SLJIT_ASSERT(!(flags & INV_IMM)); - return push_inst(compiler, EMIT_DATA_PROCESS_INS(EOR_DP, flags & SET_FLAGS, dst, src1, (src2 & SRC2_IMM) ? src2 : RM(src2))); + return push_inst(compiler, EOR | (flags & SET_FLAGS) | RD(dst) | RN(src1) | ((src2 & SRC2_IMM) ? src2 : RM(src2))); case SLJIT_SHL: EMIT_SHIFT_INS_AND_RETURN(0); @@ -1293,8 +1292,8 @@ static sljit_s32 generate_int(struct sljit_compiler *compiler, sljit_s32 reg, sl return 0; } - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(positive ? MOV_DP : MVN_DP, 0, reg, SLJIT_UNUSED, imm1))); - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(positive ? ORR_DP : BIC_DP, 0, reg, reg, imm2))); + FAIL_IF(push_inst(compiler, (positive ? MOV : MVN) | RD(reg) | imm1)); + FAIL_IF(push_inst(compiler, (positive ? ORR : BIC) | RD(reg) | RN(reg) | imm2)); return 1; } #endif @@ -1311,11 +1310,11 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 reg, /* Create imm by 1 inst. */ tmp = get_imm(imm); if (tmp) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, reg, SLJIT_UNUSED, tmp)); + return push_inst(compiler, MOV | RD(reg) | tmp); tmp = get_imm(~imm); if (tmp) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MVN_DP, 0, reg, SLJIT_UNUSED, tmp)); + return push_inst(compiler, MVN | RD(reg) | tmp); #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) /* Create imm by 2 inst. */ @@ -1323,7 +1322,7 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 reg, FAIL_IF(generate_int(compiler, reg, ~imm, 0)); /* Load integer. */ - return push_inst_with_literal(compiler, EMIT_DATA_TRANSFER(WORD_DATA | LOAD_DATA, 1, 0, reg, TMP_PC, 0), imm); + return push_inst_with_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, reg, TMP_PC, 0), imm); #else FAIL_IF(push_inst(compiler, MOVW | RD(reg) | ((imm << 4) & 0xf0000) | (imm & 0xfff))); if (imm <= 0xffff) @@ -1335,16 +1334,13 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 reg, static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg) { - sljit_uw offset_reg, imm; + sljit_uw imm, offset_reg; sljit_uw is_type1_transfer = IS_TYPE1_TRANSFER(flags); SLJIT_ASSERT (arg & SLJIT_MEM); SLJIT_ASSERT((arg & REG_MASK) != tmp_reg); - SLJIT_COMPILE_ASSERT(WRITE_BACK == 0x10, optimized_for_emit_data_transfer); - if ((arg & REG_MASK) == SLJIT_UNUSED) { - /* Write back is not used. */ if (is_type1_transfer) { FAIL_IF(load_immediate(compiler, tmp_reg, argw & ~0xfff)); argw &= 0xfff; @@ -1354,7 +1350,8 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit argw &= 0xff; } - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, 0, reg, tmp_reg, is_type1_transfer ? argw : TYPE2_TRANSFER_IMM(argw))); + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, tmp_reg, + is_type1_transfer ? argw : TYPE2_TRANSFER_IMM(argw))); } if (arg & OFFS_REG_MASK) { @@ -1363,14 +1360,12 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit argw &= 0x3; if (argw != 0 && !is_type1_transfer) { - SLJIT_ASSERT(!(flags & WRITE_BACK)); - - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, tmp_reg, arg, RM(offset_reg) | (argw << 7)))); - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, 0, reg, tmp_reg, TYPE2_TRANSFER_IMM(0))); + FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | RM(offset_reg) | (argw << 7))); + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, tmp_reg, TYPE2_TRANSFER_IMM(0))); } /* Bit 25: RM is offset. */ - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, flags & WRITE_BACK, reg, arg, + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, RM(offset_reg) | (is_type1_transfer ? (1 << 25) : 0) | (argw << 7))); } @@ -1380,60 +1375,55 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit if (argw > 0xfff) { imm = get_imm(argw & ~0xfff); if (imm) { - offset_reg = (flags & WRITE_BACK) ? arg : tmp_reg; - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, offset_reg, arg, imm))); + FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | imm)); argw = argw & 0xfff; - arg = offset_reg; + arg = tmp_reg; } } else if (argw < -0xfff) { imm = get_imm(-argw & ~0xfff); if (imm) { - offset_reg = (flags & WRITE_BACK) ? arg : tmp_reg; - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(SUB_DP, 0, offset_reg, arg, imm))); + FAIL_IF(push_inst(compiler, SUB | RD(tmp_reg) | RN(arg) | imm)); argw = -(-argw & 0xfff); - arg = offset_reg; + arg = tmp_reg; } } - if (argw >= 0 && argw <= 0xfff) { - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, flags & WRITE_BACK, reg, arg & REG_MASK, argw)); - } - if (argw < 0 && argw >= -0xfff) { - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, flags & WRITE_BACK, reg, arg & REG_MASK, -argw)); - } + if (argw >= 0 && argw <= 0xfff) + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, argw)); + + if (argw < 0 && argw >= -0xfff) + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, reg, arg, -argw)); } else { if (argw > 0xff) { imm = get_imm(argw & ~0xff); if (imm) { - offset_reg = (flags & WRITE_BACK) ? arg : tmp_reg; - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, offset_reg, arg, imm))); + FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg) | imm)); argw = argw & 0xff; - arg = offset_reg; + arg = tmp_reg; } } else if (argw < -0xff) { imm = get_imm(-argw & ~0xff); if (imm) { - offset_reg = (flags & WRITE_BACK) ? arg : tmp_reg; - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(SUB_DP, 0, offset_reg, arg, imm))); + FAIL_IF(push_inst(compiler, SUB | RD(tmp_reg) | RN(arg) | imm)); argw = -(-argw & 0xff); - arg = offset_reg; + arg = tmp_reg; } } - if (argw >= 0 && argw <= 0xff) { - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, flags & WRITE_BACK, reg, arg, TYPE2_TRANSFER_IMM(argw))); - } + if (argw >= 0 && argw <= 0xff) + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, TYPE2_TRANSFER_IMM(argw))); + if (argw < 0 && argw >= -0xff) { argw = -argw; - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, flags & WRITE_BACK, reg, arg, TYPE2_TRANSFER_IMM(argw))); + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 0, reg, arg, TYPE2_TRANSFER_IMM(argw))); } } FAIL_IF(load_immediate(compiler, tmp_reg, argw)); - return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, flags & WRITE_BACK, reg, arg, + return push_inst(compiler, EMIT_DATA_TRANSFER(flags, 1, reg, arg, RM(tmp_reg) | (is_type1_transfer ? (1 << 25) : 0))); } @@ -1536,10 +1526,10 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 /* Destination. */ dst_reg = SLOW_IS_REG(dst) ? dst : TMP_REG2; - if (op <= SLJIT_MOVU_P) { + if (op <= SLJIT_MOV_P) { if (dst & SLJIT_MEM) { - if (inp_flags & BYTE_DATA) - inp_flags &= ~SIGNED_DATA; + if (inp_flags & BYTE_SIZE) + inp_flags &= ~SIGNED; if (FAST_IS_REG(src2)) return emit_op_mem(compiler, inp_flags, src2, dst, dstw, TMP_REG2); @@ -1551,7 +1541,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 /* Source 2. */ if (src2_reg == 0) { - src2_reg = (op <= SLJIT_MOVU_P) ? dst_reg : TMP_REG2; + src2_reg = (op <= SLJIT_MOV_P) ? dst_reg : TMP_REG2; if (FAST_IS_REG(src2)) src2_reg = src2; @@ -1672,7 +1662,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (dst == SLJIT_UNUSED && !HAS_FLAGS(op)) { #if (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) if (op <= SLJIT_MOV_P && (src & SLJIT_MEM)) - return emit_op_mem(compiler, PRELOAD_DATA | LOAD_DATA, TMP_PC, src, srcw, TMP_REG1); + return emit_op_mem(compiler, PRELOAD | LOAD_DATA, TMP_PC, src, srcw, TMP_REG1); #endif return SLJIT_SUCCESS; } @@ -1685,34 +1675,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile return emit_op(compiler, SLJIT_MOV, ALLOW_ANY_IMM, dst, dstw, TMP_REG1, 0, src, srcw); case SLJIT_MOV_U8: - return emit_op(compiler, SLJIT_MOV_U8, ALLOW_ANY_IMM | BYTE_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8)srcw : srcw); + return emit_op(compiler, SLJIT_MOV_U8, ALLOW_ANY_IMM | BYTE_SIZE, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8)srcw : srcw); case SLJIT_MOV_S8: - return emit_op(compiler, SLJIT_MOV_S8, ALLOW_ANY_IMM | SIGNED_DATA | BYTE_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8)srcw : srcw); + return emit_op(compiler, SLJIT_MOV_S8, ALLOW_ANY_IMM | SIGNED | BYTE_SIZE, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8)srcw : srcw); case SLJIT_MOV_U16: - return emit_op(compiler, SLJIT_MOV_U16, ALLOW_ANY_IMM | HALF_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16)srcw : srcw); + return emit_op(compiler, SLJIT_MOV_U16, ALLOW_ANY_IMM | HALF_SIZE, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16)srcw : srcw); case SLJIT_MOV_S16: - return emit_op(compiler, SLJIT_MOV_S16, ALLOW_ANY_IMM | SIGNED_DATA | HALF_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); - - case SLJIT_MOVU: - case SLJIT_MOVU_U32: - case SLJIT_MOVU_S32: - case SLJIT_MOVU_P: - return emit_op(compiler, SLJIT_MOV, ALLOW_ANY_IMM | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - - case SLJIT_MOVU_U8: - return emit_op(compiler, SLJIT_MOV_U8, ALLOW_ANY_IMM | BYTE_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8)srcw : srcw); - - case SLJIT_MOVU_S8: - return emit_op(compiler, SLJIT_MOV_S8, ALLOW_ANY_IMM | SIGNED_DATA | BYTE_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8)srcw : srcw); - - case SLJIT_MOVU_U16: - return emit_op(compiler, SLJIT_MOV_U16, ALLOW_ANY_IMM | HALF_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16)srcw : srcw); - - case SLJIT_MOVU_S16: - return emit_op(compiler, SLJIT_MOV_S16, ALLOW_ANY_IMM | SIGNED_DATA | HALF_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); + return emit_op(compiler, SLJIT_MOV_S16, ALLOW_ANY_IMM | SIGNED | HALF_SIZE, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); case SLJIT_NOT: return emit_op(compiler, op, ALLOW_ANY_IMM, dst, dstw, TMP_REG1, 0, src, srcw); @@ -1785,7 +1757,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg << 1; + return (freg_map[reg] << 1); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -1804,9 +1776,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *c #define FPU_LOAD (1 << 20) #define EMIT_FPU_DATA_TRANSFER(inst, add, base, freg, offs) \ - ((inst) | ((add) << 23) | (reg_map[base] << 16) | (freg << 12) | (offs)) + ((inst) | ((add) << 23) | (reg_map[base] << 16) | (freg_map[freg] << 12) | (offs)) #define EMIT_FPU_OPERATION(opcode, mode, dst, src1, src2) \ - ((opcode) | (mode) | ((dst) << 12) | (src1) | ((src2) << 16)) + ((opcode) | (mode) | (freg_map[dst] << 12) | freg_map[src1] | (freg_map[src2] << 16)) static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) { @@ -1817,7 +1789,7 @@ static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, arg &= ~SLJIT_MEM; if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG2, arg & REG_MASK, RM(OFFS_REG(arg)) | ((argw & 0x3) << 7)))); + FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | ((argw & 0x3) << 7))); arg = TMP_REG2; argw = 0; } @@ -1831,20 +1803,20 @@ static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, imm = get_imm(argw & ~0x3fc); if (imm) { - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG2, arg & REG_MASK, imm))); + FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | imm)); return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, TMP_REG2, reg, (argw & 0x3fc) >> 2)); } imm = get_imm(-argw & ~0x3fc); if (imm) { argw = -argw; - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(SUB_DP, 0, TMP_REG2, arg & REG_MASK, imm))); + FAIL_IF(push_inst(compiler, SUB | RD(TMP_REG2) | RN(arg & REG_MASK) | imm)); return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 0, TMP_REG2, reg, (argw & 0x3fc) >> 2)); } } if (arg) { FAIL_IF(load_immediate(compiler, TMP_REG2, argw)); - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG2, arg & REG_MASK, RM(TMP_REG2)))); + FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG2) | RN(arg & REG_MASK) | RM(TMP_REG2))); } else FAIL_IF(load_immediate(compiler, TMP_REG2, argw)); @@ -1866,7 +1838,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_S32_F32, op & SLJIT_F32_OP, TMP_FREG1, src, 0))); if (FAST_IS_REG(dst)) - return push_inst(compiler, VMOV | (1 << 20) | RD(dst) | (TMP_FREG1 << 16)); + return push_inst(compiler, VMOV | (1 << 20) | RD(dst) | (freg_map[TMP_FREG1] << 16)); /* Store the integer value from a VFP register. */ return emit_fop_mem(compiler, 0, TMP_FREG1, dst, dstw); @@ -1881,14 +1853,14 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp op ^= SLJIT_F32_OP; if (FAST_IS_REG(src)) - FAIL_IF(push_inst(compiler, VMOV | RD(src) | (TMP_FREG1 << 16))); + FAIL_IF(push_inst(compiler, VMOV | RD(src) | (freg_map[TMP_FREG1] << 16))); else if (src & SLJIT_MEM) { /* Load the integer value into a VFP register. */ FAIL_IF(emit_fop_mem(compiler, FPU_LOAD, TMP_FREG1, src, srcw)); } else { FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); - FAIL_IF(push_inst(compiler, VMOV | RD(TMP_REG1) | (TMP_FREG1 << 16))); + FAIL_IF(push_inst(compiler, VMOV | RD(TMP_REG1) | (freg_map[TMP_FREG1] << 16))); } FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_F32_S32, op & SLJIT_F32_OP, dst_r, TMP_FREG1, 0))); @@ -2018,7 +1990,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil #undef FPU_LOAD #undef EMIT_FPU_DATA_TRANSFER -#undef EMIT_FPU_OPERATION /* --------------------------------------------------------------------- */ /* Other instructions */ @@ -2030,13 +2001,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler * CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); ADJUST_LOCAL_OFFSET(dst, dstw); - SLJIT_ASSERT(reg_map[TMP_REG1] == 14); + SLJIT_ASSERT(reg_map[TMP_REG2] == 14); if (FAST_IS_REG(dst)) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, RM(TMP_REG1))); + return push_inst(compiler, MOV | RD(dst) | RM(TMP_REG2)); /* Memory. */ - return emit_op_mem(compiler, WORD_DATA, TMP_REG1, dst, dstw, TMP_REG2); + return emit_op_mem(compiler, WORD_SIZE, TMP_REG2, dst, dstw, TMP_REG1); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw) @@ -2045,16 +2016,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler CHECK(check_sljit_emit_fast_return(compiler, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - SLJIT_ASSERT(reg_map[TMP_REG1] == 14); + SLJIT_ASSERT(reg_map[TMP_REG2] == 14); if (FAST_IS_REG(src)) - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG1, 0, RM(src)))); - else if (src & SLJIT_MEM) - FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG2)); - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); + FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG2) | RM(src))); + else + FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG2, src, srcw, TMP_REG1)); - return push_inst(compiler, BX | RM(TMP_REG1)); + return push_inst(compiler, BX | RM(TMP_REG2)); } /* --------------------------------------------------------------------- */ @@ -2111,7 +2080,7 @@ static sljit_uw get_cc(sljit_s32 type) return 0x70000000; default: - SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL3); + SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL_CDECL); return 0xe0000000; } } @@ -2144,12 +2113,13 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); type &= 0xff; - /* In ARM, we don't need to touch the arguments. */ + SLJIT_ASSERT(reg_map[TMP_REG1] != 14); + #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) if (type >= SLJIT_FAST_CALL) PTR_FAIL_IF(prepare_blx(compiler)); - PTR_FAIL_IF(push_inst_with_unique_literal(compiler, ((EMIT_DATA_TRANSFER(WORD_DATA | LOAD_DATA, 1, 0, - type <= SLJIT_JUMP ? TMP_PC : TMP_REG2, TMP_PC, 0)) & ~COND_MASK) | get_cc(type), 0)); + PTR_FAIL_IF(push_inst_with_unique_literal(compiler, ((EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, + type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, TMP_PC, 0)) & ~COND_MASK) | get_cc(type), 0)); if (jump->flags & SLJIT_REWRITABLE_JUMP) { jump->addr = compiler->size; @@ -2166,13 +2136,248 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile #else if (type >= SLJIT_FAST_CALL) jump->flags |= IS_BL; - PTR_FAIL_IF(emit_imm(compiler, TMP_REG2, 0)); - PTR_FAIL_IF(push_inst(compiler, (((type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG2)) & ~COND_MASK) | get_cc(type))); + PTR_FAIL_IF(emit_imm(compiler, TMP_REG1, 0)); + PTR_FAIL_IF(push_inst(compiler, (((type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1)) & ~COND_MASK) | get_cc(type))); jump->addr = compiler->size; #endif return jump; } +#ifdef __SOFTFP__ + +static sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src) +{ + sljit_s32 stack_offset = 0; + sljit_s32 arg_count = 0; + sljit_s32 word_arg_offset = 0; + sljit_s32 float_arg_count = 0; + sljit_s32 types = 0; + sljit_s32 src_offset = 4 * sizeof(sljit_sw); + sljit_u8 offsets[4]; + + if (src && FAST_IS_REG(*src)) + src_offset = reg_map[*src] * sizeof(sljit_sw); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_f32); + arg_count++; + float_arg_count++; + break; + case SLJIT_ARG_TYPE_F64: + if (stack_offset & 0x7) + stack_offset += sizeof(sljit_sw); + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_f64); + arg_count++; + float_arg_count++; + break; + default: + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_sw); + arg_count++; + word_arg_offset += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (stack_offset > 16) + FAIL_IF(push_inst(compiler, SUB | RD(SLJIT_SP) | RN(SLJIT_SP) | SRC2_IMM | (((stack_offset - 16) + 0x7) & ~0x7))); + + /* Process arguments in reversed direction. */ + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + arg_count--; + float_arg_count--; + stack_offset = offsets[arg_count]; + + if (stack_offset < 16) { + if (src_offset == stack_offset) { + FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); + *src = TMP_REG1; + } + FAIL_IF(push_inst(compiler, VMOV | 0x100000 | (float_arg_count << 16) | (stack_offset << 10))); + } else + FAIL_IF(push_inst(compiler, VSTR_F32 | 0x800000 | RN(SLJIT_SP) | (float_arg_count << 12) | ((stack_offset - 16) >> 2))); + break; + case SLJIT_ARG_TYPE_F64: + arg_count--; + float_arg_count--; + stack_offset = offsets[arg_count]; + + SLJIT_ASSERT((stack_offset & 0x7) == 0); + + if (stack_offset < 16) { + if (src_offset == stack_offset || src_offset == stack_offset + sizeof(sljit_sw)) { + FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); + *src = TMP_REG1; + } + FAIL_IF(push_inst(compiler, VMOV2 | 0x100000 | (stack_offset << 10) | ((stack_offset + sizeof(sljit_sw)) << 14) | float_arg_count)); + } else + FAIL_IF(push_inst(compiler, VSTR_F32 | 0x800100 | RN(SLJIT_SP) | (float_arg_count << 12) | ((stack_offset - 16) >> 2))); + break; + default: + arg_count--; + word_arg_offset -= sizeof(sljit_sw); + stack_offset = offsets[arg_count]; + + SLJIT_ASSERT(stack_offset >= word_arg_offset); + + if (stack_offset != word_arg_offset) { + if (stack_offset < 16) { + if (src_offset == stack_offset) { + FAIL_IF(push_inst(compiler, MOV | RD(TMP_REG1) | (src_offset >> 2))); + *src = TMP_REG1; + } + else if (src_offset == word_arg_offset) { + *src = 1 + (stack_offset >> 2); + src_offset = stack_offset; + } + FAIL_IF(push_inst(compiler, MOV | (stack_offset << 10) | (word_arg_offset >> 2))); + } else + FAIL_IF(push_inst(compiler, data_transfer_insts[WORD_SIZE] | 0x800000 | RN(SLJIT_SP) | (word_arg_offset << 10) | (stack_offset - 16))); + } + break; + } + + types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + +static sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) +{ + sljit_s32 stack_size = 0; + + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F32) + FAIL_IF(push_inst(compiler, VMOV | (0 << 16) | (0 << 12))); + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F64) + FAIL_IF(push_inst(compiler, VMOV2 | (1 << 16) | (0 << 12) | 0)); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + if (stack_size & 0x7) + stack_size += sizeof(sljit_sw); + stack_size += sizeof(sljit_f64); + break; + default: + stack_size += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (stack_size <= 16) + return SLJIT_SUCCESS; + + return push_inst(compiler, ADD | RD(SLJIT_SP) | RN(SLJIT_SP) | SRC2_IMM | (((stack_size - 16) + 0x7) & ~0x7)); +} + +#else /* !__SOFTFP__ */ + +static sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) +{ + sljit_u32 remap = 0; + sljit_u32 offset = 0; + sljit_u32 new_offset, mask; + + /* Remove return value. */ + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F32) { + new_offset = 0; + mask = 1; + + while (remap & mask) { + new_offset++; + mask <<= 1; + } + remap |= mask; + + if (offset != new_offset) + FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, + 0, (new_offset >> 1) + 1, (offset >> 1) + 1, 0) | ((new_offset & 0x1) ? 0x400000 : 0))); + + offset += 2; + } + else if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F64) { + new_offset = 0; + mask = 3; + + while (remap & mask) { + new_offset += 2; + mask <<= 2; + } + remap |= mask; + + if (offset != new_offset) + FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, SLJIT_F32_OP, (new_offset >> 1) + 1, (offset >> 1) + 1, 0))); + + offset += 2; + } + arg_types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + +#endif /* __SOFTFP__ */ + +#undef EMIT_FPU_OPERATION + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ +#ifdef __SOFTFP__ + struct sljit_jump *jump; +#endif + + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + +#ifdef __SOFTFP__ + PTR_FAIL_IF(softfloat_call_with_args(compiler, arg_types, NULL)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + jump = sljit_emit_jump(compiler, type); + PTR_FAIL_IF(jump == NULL); + + PTR_FAIL_IF(softfloat_post_call_with_args(compiler, arg_types)); + return jump; +#else /* !__SOFTFP__ */ + PTR_FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +#endif /* __SOFTFP__ */ +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { struct sljit_jump *jump; @@ -2181,16 +2386,20 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - /* In ARM, we don't need to touch the arguments. */ + SLJIT_ASSERT(reg_map[TMP_REG1] != 14); + if (!(src & SLJIT_IMM)) { - if (FAST_IS_REG(src)) + if (FAST_IS_REG(src)) { + SLJIT_ASSERT(reg_map[src] != 14); return push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(src)); + } SLJIT_ASSERT(src & SLJIT_MEM); - FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG2, src, srcw, TMP_REG2)); - return push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG2)); + FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); + return push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1)); } + /* These jumps are converted to jump/call instructions when possible. */ jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF(!jump); set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); @@ -2199,22 +2408,57 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) if (type >= SLJIT_FAST_CALL) FAIL_IF(prepare_blx(compiler)); - FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_DATA | LOAD_DATA, 1, 0, type <= SLJIT_JUMP ? TMP_PC : TMP_REG2, TMP_PC, 0), 0)); + FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, TMP_PC, 0), 0)); if (type >= SLJIT_FAST_CALL) FAIL_IF(emit_blx(compiler)); #else - FAIL_IF(emit_imm(compiler, TMP_REG2, 0)); - FAIL_IF(push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG2))); + FAIL_IF(emit_imm(compiler, TMP_REG1, 0)); + FAIL_IF(push_inst(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RM(TMP_REG1))); #endif jump->addr = compiler->size; return SLJIT_SUCCESS; } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + +#ifdef __SOFTFP__ + if (src & SLJIT_MEM) { + FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); + src = TMP_REG1; + } + + FAIL_IF(softfloat_call_with_args(compiler, arg_types, &src)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); + + return softfloat_post_call_with_args(compiler, arg_types); +#else /* !__SOFTFP__ */ + FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +#endif /* __SOFTFP__ */ +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) { - sljit_s32 dst_r, flags = GET_ALL_FLAGS(op); + sljit_s32 dst_reg, flags = GET_ALL_FLAGS(op); sljit_uw cc, ins; CHECK_ERROR(); @@ -2223,31 +2467,31 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co op = GET_OPCODE(op); cc = get_cc(type & 0xff); - dst_r = FAST_IS_REG(dst) ? dst : TMP_REG1; + dst_reg = FAST_IS_REG(dst) ? dst : TMP_REG1; if (op < SLJIT_ADD) { - FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 0))); - FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 1) & ~COND_MASK) | cc)); + FAIL_IF(push_inst(compiler, MOV | RD(dst_reg) | SRC2_IMM | 0)); + FAIL_IF(push_inst(compiler, ((MOV | RD(dst_reg) | SRC2_IMM | 1) & ~COND_MASK) | cc)); if (dst & SLJIT_MEM) - return emit_op_mem(compiler, WORD_DATA, TMP_REG1, dst, dstw, TMP_REG2); + return emit_op_mem(compiler, WORD_SIZE, TMP_REG1, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } - ins = (op == SLJIT_AND ? AND_DP : (op == SLJIT_OR ? ORR_DP : EOR_DP)); + ins = (op == SLJIT_AND ? AND : (op == SLJIT_OR ? ORR : EOR)); if (dst & SLJIT_MEM) - FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG1, dst, dstw, TMP_REG2)); + FAIL_IF(emit_op_mem(compiler, WORD_SIZE | LOAD_DATA, TMP_REG1, dst, dstw, TMP_REG2)); - FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(ins, 0, dst_r, dst_r, SRC2_IMM | 1) & ~COND_MASK) | cc)); + FAIL_IF(push_inst(compiler, ((ins | RD(dst_reg) | RN(dst_reg) | SRC2_IMM | 1) & ~COND_MASK) | cc)); if (op == SLJIT_AND) - FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(ins, 0, dst_r, dst_r, SRC2_IMM | 0) & ~COND_MASK) | (cc ^ 0x10000000))); + FAIL_IF(push_inst(compiler, ((ins | RD(dst_reg) | RN(dst_reg) | SRC2_IMM | 0) & ~COND_MASK) | (cc ^ 0x10000000))); if (dst & SLJIT_MEM) - FAIL_IF(emit_op_mem(compiler, WORD_DATA, TMP_REG1, dst, dstw, TMP_REG2)); + FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, dst, dstw, TMP_REG2)); if (flags & SLJIT_SET_Z) - return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, SET_FLAGS, TMP_REG2, SLJIT_UNUSED, RM(dst_r))); + return push_inst(compiler, MOV | SET_FLAGS | RD(TMP_REG2) | RM(dst_reg)); return SLJIT_SUCCESS; } @@ -2267,11 +2511,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil if (SLJIT_UNLIKELY(src & SLJIT_IMM)) { tmp = get_imm(srcw); if (tmp) - return push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_reg, SLJIT_UNUSED, tmp) & ~COND_MASK) | cc); + return push_inst(compiler, ((MOV | RD(dst_reg) | tmp) & ~COND_MASK) | cc); tmp = get_imm(~srcw); if (tmp) - return push_inst(compiler, (EMIT_DATA_PROCESS_INS(MVN_DP, 0, dst_reg, SLJIT_UNUSED, tmp) & ~COND_MASK) | cc); + return push_inst(compiler, ((MVN | RD(dst_reg) | tmp) & ~COND_MASK) | cc); #if (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) tmp = (sljit_uw) srcw; @@ -2285,7 +2529,111 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil #endif } - return push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_reg, SLJIT_UNUSED, RM(src)) & ~COND_MASK) | cc); + return push_inst(compiler, ((MOV | RD(dst_reg) | RM(src)) & ~COND_MASK) | cc); +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_s32 flags; + sljit_uw is_type1_transfer, inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); + + is_type1_transfer = 1; + + switch (type & 0xff) { + case SLJIT_MOV: + case SLJIT_MOV_U32: + case SLJIT_MOV_S32: + case SLJIT_MOV_P: + flags = WORD_SIZE; + break; + case SLJIT_MOV_U8: + flags = BYTE_SIZE; + break; + case SLJIT_MOV_S8: + if (!(type & SLJIT_MEM_STORE)) + is_type1_transfer = 0; + flags = BYTE_SIZE | SIGNED; + break; + case SLJIT_MOV_U16: + is_type1_transfer = 0; + flags = HALF_SIZE; + break; + case SLJIT_MOV_S16: + is_type1_transfer = 0; + flags = HALF_SIZE | SIGNED; + break; + default: + SLJIT_UNREACHABLE(); + flags = WORD_SIZE; + break; + } + + if (!(type & SLJIT_MEM_STORE)) + flags |= LOAD_DATA; + + SLJIT_ASSERT(is_type1_transfer == !!IS_TYPE1_TRANSFER(flags)); + + if (SLJIT_UNLIKELY(mem & OFFS_REG_MASK)) { + if (!is_type1_transfer && memw != 0) + return SLJIT_ERR_UNSUPPORTED; + } + else { + if (is_type1_transfer) { + if (memw > 4095 && memw < -4095) + return SLJIT_ERR_UNSUPPORTED; + } + else { + if (memw > 255 && memw < -255) + return SLJIT_ERR_UNSUPPORTED; + } + } + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + if (SLJIT_UNLIKELY(mem & OFFS_REG_MASK)) { + memw &= 0x3; + + inst = EMIT_DATA_TRANSFER(flags, 1, reg, mem & REG_MASK, RM(OFFS_REG(mem)) | (memw << 7)); + + if (is_type1_transfer) + inst |= (1 << 25); + + if (type & SLJIT_MEM_PRE) + inst |= (1 << 21); + else + inst ^= (1 << 24); + + return push_inst(compiler, inst); + } + + inst = EMIT_DATA_TRANSFER(flags, 0, reg, mem & REG_MASK, 0); + + if (type & SLJIT_MEM_PRE) + inst |= (1 << 21); + else + inst ^= (1 << 24); + + if (is_type1_transfer) { + if (memw >= 0) + inst |= (1 << 23); + else + memw = -memw; + + return push_inst(compiler, inst | memw); + } + + if (memw >= 0) + inst |= (1 << 23); + else + memw = -memw; + + return push_inst(compiler, inst | TYPE2_TRANSFER_IMM(memw)); } SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value) @@ -2303,7 +2651,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi reg = SLOW_IS_REG(dst) ? dst : TMP_REG2; #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) - PTR_FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_DATA | LOAD_DATA, 1, 0, reg, TMP_PC, 0), init_value)); + PTR_FAIL_IF(push_inst_with_unique_literal(compiler, EMIT_DATA_TRANSFER(WORD_SIZE | LOAD_DATA, 1, reg, TMP_PC, 0), init_value)); compiler->patches++; #else PTR_FAIL_IF(emit_imm(compiler, reg, init_value)); @@ -2311,7 +2659,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi set_const(const_, compiler); if (dst & SLJIT_MEM) - PTR_FAIL_IF(emit_op_mem(compiler, WORD_DATA, TMP_REG2, dst, dstw, TMP_REG1)); + PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, dst, dstw, TMP_REG1)); return const_; } diff --git a/pcre/sljit/sljitNativeARM_64.c b/pcre/sljit/sljitNativeARM_64.c index fd67f502536..27af7414877 100644 --- a/pcre/sljit/sljitNativeARM_64.c +++ b/pcre/sljit/sljitNativeARM_64.c @@ -36,15 +36,19 @@ typedef sljit_u32 sljit_ins; #define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2) #define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) -#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4) -#define TMP_LR (SLJIT_NUMBER_OF_REGISTERS + 5) -#define TMP_SP (SLJIT_NUMBER_OF_REGISTERS + 6) +#define TMP_LR (SLJIT_NUMBER_OF_REGISTERS + 4) +#define TMP_FP (SLJIT_NUMBER_OF_REGISTERS + 5) -#define TMP_FREG1 (0) -#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2) +/* r18 - platform register, currently not used */ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = { - 31, 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 16, 17, 8, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 29, 9, 10, 11, 30, 31 + 31, 0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 17, 8, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 31, 9, 10, 30, 29 +}; + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 0, 1, 2, 3, 4, 5, 6, 7 }; #define W_OP (1 << 31) @@ -53,10 +57,10 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = { #define RN(rn) (reg_map[rn] << 5) #define RT2(rt2) (reg_map[rt2] << 10) #define RM(rm) (reg_map[rm] << 16) -#define VD(vd) (vd) -#define VT(vt) (vt) -#define VN(vn) ((vn) << 5) -#define VM(vm) ((vm) << 16) +#define VD(vd) (freg_map[vd]) +#define VT(vt) (freg_map[vt]) +#define VN(vn) (freg_map[vn] << 5) +#define VM(vm) (freg_map[vm] << 16) /* --------------------------------------------------------------------- */ /* Instrucion forms */ @@ -64,6 +68,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = { #define ADC 0x9a000000 #define ADD 0x8b000000 +#define ADDE 0x8b200000 #define ADDI 0x91000000 #define AND 0x8a000000 #define ANDI 0x92000000 @@ -92,7 +97,8 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = { #define FSUB 0x1e603800 #define LDRI 0xf9400000 #define LDP 0xa9400000 -#define LDP_PST 0xa8c00000 +#define LDP_PRE 0xa9c00000 +#define LDR_PRE 0xf8400c00 #define LSLV 0x9ac02000 #define LSRV 0x9ac02400 #define MADD 0x9b000000 @@ -112,10 +118,13 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = { #define SMULH 0x9b403c00 #define STP 0xa9000000 #define STP_PRE 0xa9800000 +#define STRB 0x38206800 +#define STRBI 0x39000000 #define STRI 0xf9000000 #define STR_FI 0x3d000000 #define STR_FR 0x3c206800 #define STUR_FI 0x3c000000 +#define STURBI 0x38000000 #define SUB 0xcb000000 #define SUBI 0xd1000000 #define SUBS 0xeb000000 @@ -193,6 +202,7 @@ static SLJIT_INLINE sljit_s32 detect_jump_type(struct sljit_jump *jump, sljit_in code_ptr[-2] = code_ptr[0]; return 2; } + if (target_addr <= 0xffffffffffffl) { if (jump->flags & IS_COND) code_ptr[-5] -= (1 << 5); @@ -335,7 +345,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) return 1; #endif - case SLJIT_HAS_PRE_UPDATE: case SLJIT_HAS_CLZ: case SLJIT_HAS_CMOV: return 1; @@ -394,12 +403,14 @@ static sljit_ins logical_imm(sljit_sw imm, sljit_s32 len) SLJIT_ASSERT((len == 32 && imm != 0 && imm != -1) || (len == 16 && (sljit_s32)imm != 0 && (sljit_s32)imm != -1)); + uimm = (sljit_uw)imm; while (1) { if (len <= 0) { SLJIT_UNREACHABLE(); return 0; } + mask = ((sljit_uw)1 << len) - 1; if ((uimm & mask) != ((uimm >> len) & mask)) break; @@ -448,39 +459,42 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, sljit_s32 i, zeros, ones, first; sljit_ins bitmask; + /* Handling simple immediates first. */ if (imm <= 0xffff) return push_inst(compiler, MOVZ | RD(dst) | (imm << 5)); - if (simm >= -0x10000 && simm < 0) + if (simm < 0 && simm >= -0x10000) return push_inst(compiler, MOVN | RD(dst) | ((~imm & 0xffff) << 5)); if (imm <= 0xffffffffl) { + if ((imm & 0xffff) == 0) + return push_inst(compiler, MOVZ | RD(dst) | ((imm >> 16) << 5) | (1 << 21)); if ((imm & 0xffff0000l) == 0xffff0000) return push_inst(compiler, (MOVN ^ W_OP) | RD(dst) | ((~imm & 0xffff) << 5)); if ((imm & 0xffff) == 0xffff) return push_inst(compiler, (MOVN ^ W_OP) | RD(dst) | ((~imm & 0xffff0000l) >> (16 - 5)) | (1 << 21)); + bitmask = logical_imm(simm, 16); if (bitmask != 0) return push_inst(compiler, (ORRI ^ W_OP) | RD(dst) | RN(TMP_ZERO) | bitmask); - } - else { - bitmask = logical_imm(simm, 32); - if (bitmask != 0) - return push_inst(compiler, ORRI | RD(dst) | RN(TMP_ZERO) | bitmask); - } - if (imm <= 0xffffffffl) { FAIL_IF(push_inst(compiler, MOVZ | RD(dst) | ((imm & 0xffff) << 5))); return push_inst(compiler, MOVK | RD(dst) | ((imm & 0xffff0000l) >> (16 - 5)) | (1 << 21)); } - if (simm >= -0x100000000l && simm < 0) { + bitmask = logical_imm(simm, 32); + if (bitmask != 0) + return push_inst(compiler, ORRI | RD(dst) | RN(TMP_ZERO) | bitmask); + + if (simm < 0 && simm >= -0x100000000l) { + if ((imm & 0xffff) == 0xffff) + return push_inst(compiler, MOVN | RD(dst) | ((~imm & 0xffff0000l) >> (16 - 5)) | (1 << 21)); + FAIL_IF(push_inst(compiler, MOVN | RD(dst) | ((~imm & 0xffff) << 5))); return push_inst(compiler, MOVK | RD(dst) | ((imm & 0xffff0000l) >> (16 - 5)) | (1 << 21)); } - /* A large amount of number can be constructed from ORR and MOVx, - but computing them is costly. We don't */ + /* A large amount of number can be constructed from ORR and MOVx, but computing them is costly. */ zeros = 0; ones = 0; @@ -533,9 +547,6 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, #define INT_OP 0x0040000 #define SET_FLAGS 0x0080000 #define UNUSED_RETURN 0x0100000 -#define SLOW_DEST 0x0200000 -#define SLOW_SRC1 0x0400000 -#define SLOW_SRC2 0x0800000 #define CHECK_FLAGS(flag_bits) \ if (flags & SET_FLAGS) { \ @@ -693,40 +704,32 @@ static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, s switch (op) { case SLJIT_MOV: case SLJIT_MOV_P: - case SLJIT_MOVU: - case SLJIT_MOVU_P: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); if (dst == arg2) return SLJIT_SUCCESS; return push_inst(compiler, ORR | RD(dst) | RN(TMP_ZERO) | RM(arg2)); case SLJIT_MOV_U8: - case SLJIT_MOVU_U8: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); return push_inst(compiler, (UBFM ^ (1 << 31)) | RD(dst) | RN(arg2) | (7 << 10)); case SLJIT_MOV_S8: - case SLJIT_MOVU_S8: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); if (!(flags & INT_OP)) inv_bits |= 1 << 22; return push_inst(compiler, (SBFM ^ inv_bits) | RD(dst) | RN(arg2) | (7 << 10)); case SLJIT_MOV_U16: - case SLJIT_MOVU_U16: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); return push_inst(compiler, (UBFM ^ (1 << 31)) | RD(dst) | RN(arg2) | (15 << 10)); case SLJIT_MOV_S16: - case SLJIT_MOVU_S16: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); if (!(flags & INT_OP)) inv_bits |= 1 << 22; return push_inst(compiler, (SBFM ^ inv_bits) | RD(dst) | RN(arg2) | (15 << 10)); case SLJIT_MOV_U32: - case SLJIT_MOVU_U32: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); if ((flags & INT_OP) && dst == arg2) return SLJIT_SUCCESS; return push_inst(compiler, (ORR ^ (1 << 31)) | RD(dst) | RN(TMP_ZERO) | RM(arg2)); case SLJIT_MOV_S32: - case SLJIT_MOVU_S32: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1); if ((flags & INT_OP) && dst == arg2) return SLJIT_SUCCESS; @@ -795,292 +798,67 @@ set_flags: return SLJIT_SUCCESS; } -#define STORE 0x01 -#define SIGNED 0x02 +#define STORE 0x10 +#define SIGNED 0x20 -#define UPDATE 0x04 -#define ARG_TEST 0x08 +#define BYTE_SIZE 0x0 +#define HALF_SIZE 0x1 +#define INT_SIZE 0x2 +#define WORD_SIZE 0x3 -#define BYTE_SIZE 0x000 -#define HALF_SIZE 0x100 -#define INT_SIZE 0x200 -#define WORD_SIZE 0x300 +#define MEM_SIZE_SHIFT(flags) ((flags) & 0x3) -#define MEM_SIZE_SHIFT(flags) ((flags) >> 8) - -static const sljit_ins sljit_mem_imm[4] = { -/* u l */ 0x39400000 /* ldrb [reg,imm] */, -/* u s */ 0x39000000 /* strb [reg,imm] */, -/* s l */ 0x39800000 /* ldrsb [reg,imm] */, -/* s s */ 0x39000000 /* strb [reg,imm] */, -}; - -static const sljit_ins sljit_mem_simm[4] = { -/* u l */ 0x38400000 /* ldurb [reg,imm] */, -/* u s */ 0x38000000 /* sturb [reg,imm] */, -/* s l */ 0x38800000 /* ldursb [reg,imm] */, -/* s s */ 0x38000000 /* sturb [reg,imm] */, -}; - -static const sljit_ins sljit_mem_pre_simm[4] = { -/* u l */ 0x38400c00 /* ldrb [reg,imm]! */, -/* u s */ 0x38000c00 /* strb [reg,imm]! */, -/* s l */ 0x38800c00 /* ldrsb [reg,imm]! */, -/* s s */ 0x38000c00 /* strb [reg,imm]! */, -}; - -static const sljit_ins sljit_mem_reg[4] = { -/* u l */ 0x38606800 /* ldrb [reg,reg] */, -/* u s */ 0x38206800 /* strb [reg,reg] */, -/* s l */ 0x38a06800 /* ldrsb [reg,reg] */, -/* s s */ 0x38206800 /* strb [reg,reg] */, -}; - -/* Helper function. Dst should be reg + value, using at most 1 instruction, flags does not set. */ -static sljit_s32 emit_set_delta(struct sljit_compiler *compiler, sljit_s32 dst, sljit_s32 reg, sljit_sw value) -{ - if (value >= 0) { - if (value <= 0xfff) - return push_inst(compiler, ADDI | RD(dst) | RN(reg) | (value << 10)); - if (value <= 0xffffff && !(value & 0xfff)) - return push_inst(compiler, ADDI | (1 << 22) | RD(dst) | RN(reg) | (value >> 2)); - } - else { - value = -value; - if (value <= 0xfff) - return push_inst(compiler, SUBI | RD(dst) | RN(reg) | (value << 10)); - if (value <= 0xffffff && !(value & 0xfff)) - return push_inst(compiler, SUBI | (1 << 22) | RD(dst) | RN(reg) | (value >> 2)); - } - return SLJIT_ERR_UNSUPPORTED; -} - -/* Can perform an operation using at most 1 instruction. */ -static sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) +static sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, + sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg) { sljit_u32 shift = MEM_SIZE_SHIFT(flags); + sljit_u32 type = (shift << 30); + + if (!(flags & STORE)) + type |= (flags & SIGNED) ? 0x00800000 : 0x00400000; SLJIT_ASSERT(arg & SLJIT_MEM); - if (SLJIT_UNLIKELY(flags & UPDATE)) { - if ((arg & REG_MASK) && !(arg & OFFS_REG_MASK) && argw <= 255 && argw >= -256) { - if (SLJIT_UNLIKELY(flags & ARG_TEST)) - return 1; - - arg &= REG_MASK; - argw &= 0x1ff; - FAIL_IF(push_inst(compiler, sljit_mem_pre_simm[flags & 0x3] - | (shift << 30) | RT(reg) | RN(arg) | (argw << 12))); - return -1; - } - return 0; - } - if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { argw &= 0x3; - if (argw && argw != shift) - return 0; - if (SLJIT_UNLIKELY(flags & ARG_TEST)) - return 1; + if (argw == 0 || argw == shift) + return push_inst(compiler, STRB | type | RT(reg) + | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | (argw ? (1 << 12) : 0)); - FAIL_IF(push_inst(compiler, sljit_mem_reg[flags & 0x3] | (shift << 30) | RT(reg) - | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | (argw ? (1 << 12) : 0))); - return -1; + FAIL_IF(push_inst(compiler, ADD | RD(tmp_reg) | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | (argw << 10))); + return push_inst(compiler, STRBI | type | RT(reg) | RN(tmp_reg)); } arg &= REG_MASK; - if (arg == SLJIT_UNUSED) - return 0; + if (arg == SLJIT_UNUSED) { + FAIL_IF(load_immediate(compiler, tmp_reg, argw & ~(0xfff << shift))); - if (argw >= 0 && (argw >> shift) <= 0xfff && (argw & ((1 << shift) - 1)) == 0) { - if (SLJIT_UNLIKELY(flags & ARG_TEST)) - return 1; + argw = (argw >> shift) & 0xfff; - FAIL_IF(push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) - | RT(reg) | RN(arg) | (argw << (10 - shift)))); - return -1; + return push_inst(compiler, STRBI | type | RT(reg) | RN(tmp_reg) | (argw << 10)); } - if (argw > 255 || argw < -256) - return 0; - - if (SLJIT_UNLIKELY(flags & ARG_TEST)) - return 1; - - FAIL_IF(push_inst(compiler, sljit_mem_simm[flags & 0x3] | (shift << 30) - | RT(reg) | RN(arg) | ((argw & 0x1ff) << 12))); - return -1; -} - -/* see getput_arg below. - Note: can_cache is called only for binary operators. Those - operators always uses word arguments without write back. */ -static sljit_s32 can_cache(sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw) -{ - sljit_sw diff; - if ((arg & OFFS_REG_MASK) || !(next_arg & SLJIT_MEM)) - return 0; - - if (!(arg & REG_MASK)) { - diff = argw - next_argw; - if (diff <= 0xfff && diff >= -0xfff) - return 1; - return 0; - } - - if (argw == next_argw) - return 1; - - diff = argw - next_argw; - if (arg == next_arg && diff <= 0xfff && diff >= -0xfff) - return 1; - - return 0; -} - -/* Emit the necessary instructions. See can_cache above. */ -static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, - sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw) -{ - sljit_u32 shift = MEM_SIZE_SHIFT(flags); - sljit_s32 tmp_r, other_r; - sljit_sw diff; - - SLJIT_ASSERT(arg & SLJIT_MEM); - if (!(next_arg & SLJIT_MEM)) { - next_arg = 0; - next_argw = 0; - } - - tmp_r = ((flags & STORE) || (flags == (WORD_SIZE | SIGNED))) ? TMP_REG3 : reg; - - if (SLJIT_UNLIKELY((flags & UPDATE) && (arg & REG_MASK))) { - /* Update only applies if a base register exists. */ - other_r = OFFS_REG(arg); - if (!other_r) { - other_r = arg & REG_MASK; - SLJIT_ASSERT(other_r != reg); - - if (argw >= 0 && argw <= 0xffffff) { - if ((argw & 0xfff) != 0) - FAIL_IF(push_inst(compiler, ADDI | RD(other_r) | RN(other_r) | ((argw & 0xfff) << 10))); - if (argw >> 12) - FAIL_IF(push_inst(compiler, ADDI | (1 << 22) | RD(other_r) | RN(other_r) | ((argw >> 12) << 10))); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(other_r)); - } - else if (argw < 0 && argw >= -0xffffff) { - argw = -argw; - if ((argw & 0xfff) != 0) - FAIL_IF(push_inst(compiler, SUBI | RD(other_r) | RN(other_r) | ((argw & 0xfff) << 10))); - if (argw >> 12) - FAIL_IF(push_inst(compiler, SUBI | (1 << 22) | RD(other_r) | RN(other_r) | ((argw >> 12) << 10))); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(other_r)); - } - - if (compiler->cache_arg == SLJIT_MEM) { - if (argw == compiler->cache_argw) { - other_r = TMP_REG3; - argw = 0; - } - else if (emit_set_delta(compiler, TMP_REG3, TMP_REG3, argw - compiler->cache_argw) != SLJIT_ERR_UNSUPPORTED) { - FAIL_IF(compiler->error); - compiler->cache_argw = argw; - other_r = TMP_REG3; - argw = 0; - } - } - - if (argw) { - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - compiler->cache_arg = SLJIT_MEM; - compiler->cache_argw = argw; - other_r = TMP_REG3; - argw = 0; - } + if (argw >= 0 && (argw & ((1 << shift) - 1)) == 0) { + if ((argw >> shift) <= 0xfff) { + return push_inst(compiler, STRBI | type | RT(reg) | RN(arg) | (argw << (10 - shift))); } - /* No caching here. */ - arg &= REG_MASK; - FAIL_IF(push_inst(compiler, sljit_mem_reg[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg) | RM(other_r))); - return push_inst(compiler, ADD | RD(arg) | RN(arg) | RM(other_r)); - } + if (argw <= 0xffffff) { + FAIL_IF(push_inst(compiler, ADDI | (1 << 22) | RD(tmp_reg) | RN(arg) | ((argw >> 12) << 10))); - if (arg & OFFS_REG_MASK) { - other_r = OFFS_REG(arg); - arg &= REG_MASK; - FAIL_IF(push_inst(compiler, ADD | RD(tmp_r) | RN(arg) | RM(other_r) | ((argw & 0x3) << 10))); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(tmp_r)); - } - - if (compiler->cache_arg == arg) { - diff = argw - compiler->cache_argw; - if (diff <= 255 && diff >= -256) - return push_inst(compiler, sljit_mem_simm[flags & 0x3] | (shift << 30) - | RT(reg) | RN(TMP_REG3) | ((diff & 0x1ff) << 12)); - if (emit_set_delta(compiler, TMP_REG3, TMP_REG3, diff) != SLJIT_ERR_UNSUPPORTED) { - FAIL_IF(compiler->error); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg)); + argw = ((argw & 0xfff) >> shift); + return push_inst(compiler, STRBI | type | RT(reg) | RN(tmp_reg) | (argw << 10)); } } - diff = argw - next_argw; - next_arg = (arg & REG_MASK) && (arg == next_arg) && diff <= 0xfff && diff >= -0xfff && diff != 0; - arg &= REG_MASK; + if (argw <= 255 && argw >= -256) + return push_inst(compiler, STURBI | type | RT(reg) | RN(arg) | ((argw & 0x1ff) << 12)); - if (arg != SLJIT_UNUSED && argw >= 0 && argw <= 0xffffff && (argw & ((1 << shift) - 1)) == 0) { - FAIL_IF(push_inst(compiler, ADDI | (1 << 22) | RD(tmp_r) | RN(arg) | ((argw >> 12) << 10))); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) - | RT(reg) | RN(tmp_r) | ((argw & 0xfff) << (10 - shift))); - } + FAIL_IF(load_immediate(compiler, tmp_reg, argw)); - if (arg && compiler->cache_arg == SLJIT_MEM) { - if (compiler->cache_argw == argw) - return push_inst(compiler, sljit_mem_reg[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg) | RM(TMP_REG3)); - if (emit_set_delta(compiler, TMP_REG3, TMP_REG3, argw - compiler->cache_argw) != SLJIT_ERR_UNSUPPORTED) { - FAIL_IF(compiler->error); - compiler->cache_argw = argw; - return push_inst(compiler, sljit_mem_reg[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg) | RM(TMP_REG3)); - } - } - - compiler->cache_argw = argw; - if (next_arg && emit_set_delta(compiler, TMP_REG3, arg, argw) != SLJIT_ERR_UNSUPPORTED) { - FAIL_IF(compiler->error); - compiler->cache_arg = SLJIT_MEM | arg; - arg = 0; - } - else { - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - compiler->cache_arg = SLJIT_MEM; - - if (next_arg) { - FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG3) | RN(TMP_REG3) | RM(arg))); - compiler->cache_arg = SLJIT_MEM | arg; - arg = 0; - } - } - - if (arg) - return push_inst(compiler, sljit_mem_reg[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg) | RM(TMP_REG3)); - return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(TMP_REG3)); -} - -static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) -{ - if (getput_arg_fast(compiler, flags, reg, arg, argw)) - return compiler->error; - compiler->cache_arg = 0; - compiler->cache_argw = 0; - return getput_arg(compiler, flags, reg, arg, argw, 0, 0); -} - -static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w) -{ - if (getput_arg_fast(compiler, flags, reg, arg1, arg1w)) - return compiler->error; - return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w); + return push_inst(compiler, STRB | type | RT(reg) | RN(arg) | RM(tmp_reg)); } /* --------------------------------------------------------------------- */ @@ -1088,82 +866,62 @@ static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, slji /* --------------------------------------------------------------------- */ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 i, tmp, offs, prev, saved_regs_size; + sljit_s32 args, i, tmp, offs, prev, saved_regs_size; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); + + saved_regs_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2); + if (saved_regs_size & 0x8) + saved_regs_size += sizeof(sljit_sw); - saved_regs_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 0); - local_size += saved_regs_size + SLJIT_LOCALS_OFFSET; local_size = (local_size + 15) & ~0xf; - compiler->local_size = local_size; + compiler->local_size = local_size + saved_regs_size; - if (local_size <= (63 * sizeof(sljit_sw))) { - FAIL_IF(push_inst(compiler, STP_PRE | 29 | RT2(TMP_LR) - | RN(TMP_SP) | ((-(local_size >> 3) & 0x7f) << 15))); - FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_SP) | (0 << 10))); - offs = (local_size - saved_regs_size) << (15 - 3); - } else { - offs = 0 << 15; - if (saved_regs_size & 0x8) { - offs = 1 << 15; - saved_regs_size += sizeof(sljit_sw); - } - local_size -= saved_regs_size + SLJIT_LOCALS_OFFSET; - if (saved_regs_size > 0) - FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } + FAIL_IF(push_inst(compiler, STP_PRE | RT(TMP_FP) | RT2(TMP_LR) + | RN(SLJIT_SP) | ((-(saved_regs_size >> 3) & 0x7f) << 15))); + +#ifdef _WIN32 + if (local_size >= 4096) + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(SLJIT_SP) | (1 << 10) | (1 << 22))); + else if (local_size > 256) + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(SLJIT_SP) | (local_size << 10))); +#endif tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; prev = -1; + offs = 2 << 15; for (i = SLJIT_S0; i >= tmp; i--) { if (prev == -1) { - if (!(offs & (1 << 15))) { - prev = i; - continue; - } - FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); - offs += 1 << 15; + prev = i; continue; } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); + FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(SLJIT_SP) | offs)); offs += 2 << 15; prev = -1; } for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { if (prev == -1) { - if (!(offs & (1 << 15))) { - prev = i; - continue; - } - FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); - offs += 1 << 15; + prev = i; continue; } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); + FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(SLJIT_SP) | offs)); offs += 2 << 15; prev = -1; } - SLJIT_ASSERT(prev == -1); + if (prev != -1) + FAIL_IF(push_inst(compiler, STRI | RT(prev) | RN(SLJIT_SP) | (offs >> 5))); - if (compiler->local_size > (63 * sizeof(sljit_sw))) { - /* The local_size is already adjusted by the saved registers. */ - if (local_size > 0xfff) { - FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | ((local_size >> 12) << 10) | (1 << 22))); - local_size &= 0xfff; - } - if (local_size) - FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (local_size << 10))); - FAIL_IF(push_inst(compiler, STP_PRE | 29 | RT2(TMP_LR) - | RN(TMP_SP) | ((-(16 >> 3) & 0x7f) << 15))); - FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_SP) | (0 << 10))); - } + + FAIL_IF(push_inst(compiler, ADDI | RD(TMP_FP) | RN(SLJIT_SP) | (0 << 10))); + + args = get_arg_count(arg_types); if (args >= 1) FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_S0) | RN(TMP_ZERO) | RM(SLJIT_R0))); @@ -1172,20 +930,82 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi if (args >= 3) FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_S2) | RN(TMP_ZERO) | RM(SLJIT_R2))); +#ifdef _WIN32 + if (local_size >= 4096) { + if (local_size < 4 * 4096) { + /* No need for a loop. */ + if (local_size >= 2 * 4096) { + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(TMP_REG1) | (1 << 10) | (1 << 22))); + local_size -= 4096; + } + + if (local_size >= 2 * 4096) { + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(TMP_REG1) | (1 << 10) | (1 << 22))); + local_size -= 4096; + } + + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + local_size -= 4096; + } + else { + FAIL_IF(push_inst(compiler, MOVZ | RD(TMP_REG2) | (((local_size >> 12) - 1) << 5))); + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(TMP_REG1) | (1 << 10) | (1 << 22))); + FAIL_IF(push_inst(compiler, SUBI | (1 << 29) | RD(TMP_REG2) | RN(TMP_REG2) | (1 << 10))); + FAIL_IF(push_inst(compiler, B_CC | ((((sljit_ins) -3) & 0x7ffff) << 5) | 0x1 /* not-equal */)); + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + + local_size &= 0xfff; + } + + if (local_size > 256) { + FAIL_IF(push_inst(compiler, SUBI | RD(TMP_REG1) | RN(TMP_REG1) | (local_size << 10))); + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + } + else if (local_size > 0) + FAIL_IF(push_inst(compiler, LDR_PRE | RT(TMP_ZERO) | RN(TMP_REG1) | ((-local_size & 0x1ff) << 12))); + + FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_REG1) | (0 << 10))); + } + else if (local_size > 256) { + FAIL_IF(push_inst(compiler, LDRI | RT(TMP_ZERO) | RN(TMP_REG1))); + FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_REG1) | (0 << 10))); + } + else if (local_size > 0) + FAIL_IF(push_inst(compiler, LDR_PRE | RT(TMP_ZERO) | RN(SLJIT_SP) | ((-local_size & 0x1ff) << 12))); + +#else /* !_WIN32 */ + + /* The local_size does not include saved registers size. */ + if (local_size > 0xfff) { + FAIL_IF(push_inst(compiler, SUBI | RD(SLJIT_SP) | RN(SLJIT_SP) | ((local_size >> 12) << 10) | (1 << 22))); + local_size &= 0xfff; + } + if (local_size != 0) + FAIL_IF(push_inst(compiler, SUBI | RD(SLJIT_SP) | RN(SLJIT_SP) | (local_size << 10))); + +#endif /* _WIN32 */ + return SLJIT_SUCCESS; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + sljit_s32 saved_regs_size; - local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 0) + SLJIT_LOCALS_OFFSET; - local_size = (local_size + 15) & ~0xf; - compiler->local_size = local_size; + CHECK_ERROR(); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); + + saved_regs_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2); + if (saved_regs_size & 0x8) + saved_regs_size += sizeof(sljit_sw); + + compiler->local_size = saved_regs_size + ((local_size + 15) & ~0xf); return SLJIT_SUCCESS; } @@ -1199,71 +1019,59 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); - local_size = compiler->local_size; + saved_regs_size = GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 2); + if (saved_regs_size & 0x8) + saved_regs_size += sizeof(sljit_sw); - saved_regs_size = GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 0); - if (local_size <= (63 * sizeof(sljit_sw))) - offs = (local_size - saved_regs_size) << (15 - 3); + local_size = compiler->local_size - saved_regs_size; + + /* Load LR as early as possible. */ + if (local_size == 0) + FAIL_IF(push_inst(compiler, LDP | RT(TMP_FP) | RT2(TMP_LR) | RN(SLJIT_SP))); + else if (local_size < 63 * sizeof(sljit_sw)) { + FAIL_IF(push_inst(compiler, LDP_PRE | RT(TMP_FP) | RT2(TMP_LR) + | RN(SLJIT_SP) | (local_size << (15 - 3)))); + } else { - FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR) - | RN(TMP_SP) | (((16 >> 3) & 0x7f) << 15))); - offs = 0 << 15; - if (saved_regs_size & 0x8) { - offs = 1 << 15; - saved_regs_size += sizeof(sljit_sw); - } - local_size -= saved_regs_size + SLJIT_LOCALS_OFFSET; if (local_size > 0xfff) { - FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | ((local_size >> 12) << 10) | (1 << 22))); + FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(SLJIT_SP) | ((local_size >> 12) << 10) | (1 << 22))); local_size &= 0xfff; } if (local_size) - FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | (local_size << 10))); + FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(SLJIT_SP) | (local_size << 10))); + + FAIL_IF(push_inst(compiler, LDP | RT(TMP_FP) | RT2(TMP_LR) | RN(SLJIT_SP))); } tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG; prev = -1; + offs = 2 << 15; for (i = SLJIT_S0; i >= tmp; i--) { if (prev == -1) { - if (!(offs & (1 << 15))) { - prev = i; - continue; - } - FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); - offs += 1 << 15; + prev = i; continue; } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); + FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(SLJIT_SP) | offs)); offs += 2 << 15; prev = -1; } for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { if (prev == -1) { - if (!(offs & (1 << 15))) { - prev = i; - continue; - } - FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); - offs += 1 << 15; + prev = i; continue; } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); + FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(SLJIT_SP) | offs)); offs += 2 << 15; prev = -1; } - SLJIT_ASSERT(prev == -1); + if (prev != -1) + FAIL_IF(push_inst(compiler, LDRI | RT(prev) | RN(SLJIT_SP) | (offs >> 5))); - if (compiler->local_size <= (63 * sizeof(sljit_sw))) { - FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR) - | RN(TMP_SP) | (((local_size >> 3) & 0x7f) << 15))); - } else if (saved_regs_size > 0) { - FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } - - FAIL_IF(push_inst(compiler, RET | RN(TMP_LR))); - return SLJIT_SUCCESS; + /* These two can be executed in parallel. */ + FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(SLJIT_SP) | (saved_regs_size << 10))); + return push_inst(compiler, RET | RN(TMP_LR)); } /* --------------------------------------------------------------------- */ @@ -1314,9 +1122,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile ADJUST_LOCAL_OFFSET(dst, dstw); ADJUST_LOCAL_OFFSET(src, srcw); - compiler->cache_arg = 0; - compiler->cache_argw = 0; - if (dst == SLJIT_UNUSED && !HAS_FLAGS(op)) { if (op <= SLJIT_MOV_P && (src & SLJIT_MEM)) { SLJIT_ASSERT(reg_map[1] == 0 && reg_map[3] == 2 && reg_map[5] == 4); @@ -1329,7 +1134,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile dst = 1; /* Signed word sized load is the prefetch instruction. */ - return emit_op_mem(compiler, WORD_SIZE | SIGNED, dst, src, srcw); + return emit_op_mem(compiler, WORD_SIZE | SIGNED, dst, src, srcw, TMP_REG1); } return SLJIT_SUCCESS; } @@ -1337,106 +1142,67 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile dst_r = SLOW_IS_REG(dst) ? dst : TMP_REG1; op = GET_OPCODE(op); - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_P) { + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) { + /* Both operands are registers. */ + if (dst_r != TMP_REG1 && FAST_IS_REG(src)) + return emit_op_imm(compiler, op | ((op_flags & SLJIT_I32_OP) ? INT_OP : 0), dst_r, TMP_REG1, src); + switch (op) { case SLJIT_MOV: case SLJIT_MOV_P: - flags = WORD_SIZE; + mem_flags = WORD_SIZE; break; case SLJIT_MOV_U8: - flags = BYTE_SIZE; + mem_flags = BYTE_SIZE; if (src & SLJIT_IMM) srcw = (sljit_u8)srcw; break; case SLJIT_MOV_S8: - flags = BYTE_SIZE | SIGNED; + mem_flags = BYTE_SIZE | SIGNED; if (src & SLJIT_IMM) srcw = (sljit_s8)srcw; break; case SLJIT_MOV_U16: - flags = HALF_SIZE; + mem_flags = HALF_SIZE; if (src & SLJIT_IMM) srcw = (sljit_u16)srcw; break; case SLJIT_MOV_S16: - flags = HALF_SIZE | SIGNED; + mem_flags = HALF_SIZE | SIGNED; if (src & SLJIT_IMM) srcw = (sljit_s16)srcw; break; case SLJIT_MOV_U32: - flags = INT_SIZE; + mem_flags = INT_SIZE; if (src & SLJIT_IMM) srcw = (sljit_u32)srcw; break; case SLJIT_MOV_S32: - flags = INT_SIZE | SIGNED; - if (src & SLJIT_IMM) - srcw = (sljit_s32)srcw; - break; - case SLJIT_MOVU: - case SLJIT_MOVU_P: - flags = WORD_SIZE | UPDATE; - break; - case SLJIT_MOVU_U8: - flags = BYTE_SIZE | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_u8)srcw; - break; - case SLJIT_MOVU_S8: - flags = BYTE_SIZE | SIGNED | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_s8)srcw; - break; - case SLJIT_MOVU_U16: - flags = HALF_SIZE | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_u16)srcw; - break; - case SLJIT_MOVU_S16: - flags = HALF_SIZE | SIGNED | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_s16)srcw; - break; - case SLJIT_MOVU_U32: - flags = INT_SIZE | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_u32)srcw; - break; - case SLJIT_MOVU_S32: - flags = INT_SIZE | SIGNED | UPDATE; + mem_flags = INT_SIZE | SIGNED; if (src & SLJIT_IMM) srcw = (sljit_s32)srcw; break; default: SLJIT_UNREACHABLE(); - flags = 0; + mem_flags = 0; break; } if (src & SLJIT_IMM) FAIL_IF(emit_op_imm(compiler, SLJIT_MOV | ARG2_IMM, dst_r, TMP_REG1, srcw)); - else if (src & SLJIT_MEM) { - if (getput_arg_fast(compiler, flags, dst_r, src, srcw)) - FAIL_IF(compiler->error); - else - FAIL_IF(getput_arg(compiler, flags, dst_r, src, srcw, dst, dstw)); - } else { - if (dst_r != TMP_REG1) - return emit_op_imm(compiler, op | ((op_flags & SLJIT_I32_OP) ? INT_OP : 0), dst_r, TMP_REG1, src); + else if (!(src & SLJIT_MEM)) dst_r = src; - } + else + FAIL_IF(emit_op_mem(compiler, mem_flags, dst_r, src, srcw, TMP_REG1)); - if (dst & SLJIT_MEM) { - if (getput_arg_fast(compiler, flags | STORE, dst_r, dst, dstw)) - return compiler->error; - else - return getput_arg(compiler, flags | STORE, dst_r, dst, dstw, 0, 0); - } + if (dst & SLJIT_MEM) + return emit_op_mem(compiler, mem_flags | STORE, dst_r, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } flags = HAS_FLAGS(op_flags) ? SET_FLAGS : 0; mem_flags = WORD_SIZE; + if (op_flags & SLJIT_I32_OP) { flags |= INT_OP; mem_flags = INT_SIZE; @@ -1446,28 +1212,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile flags |= UNUSED_RETURN; if (src & SLJIT_MEM) { - if (getput_arg_fast(compiler, mem_flags, TMP_REG2, src, srcw)) - FAIL_IF(compiler->error); - else - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG2, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, mem_flags, TMP_REG2, src, srcw, TMP_REG2)); src = TMP_REG2; } - if (src & SLJIT_IMM) { - flags |= ARG2_IMM; - if (op_flags & SLJIT_I32_OP) - srcw = (sljit_s32)srcw; - } else - srcw = src; + emit_op_imm(compiler, flags | op, dst_r, TMP_REG1, src); - emit_op_imm(compiler, flags | op, dst_r, TMP_REG1, srcw); - - if (dst & SLJIT_MEM) { - if (getput_arg_fast(compiler, mem_flags | STORE, dst_r, dst, dstw)) - return compiler->error; - else - return getput_arg(compiler, mem_flags | STORE, dst_r, dst, dstw, 0, 0); - } + if (SLJIT_UNLIKELY(dst & SLJIT_MEM)) + return emit_op_mem(compiler, mem_flags | STORE, dst_r, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } @@ -1484,15 +1236,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile ADJUST_LOCAL_OFFSET(src1, src1w); ADJUST_LOCAL_OFFSET(src2, src2w); - compiler->cache_arg = 0; - compiler->cache_argw = 0; - if (dst == SLJIT_UNUSED && !HAS_FLAGS(op)) return SLJIT_SUCCESS; dst_r = SLOW_IS_REG(dst) ? dst : TMP_REG1; flags = HAS_FLAGS(op) ? SET_FLAGS : 0; mem_flags = WORD_SIZE; + if (op & SLJIT_I32_OP) { flags |= INT_OP; mem_flags = INT_SIZE; @@ -1501,46 +1251,21 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile if (dst == SLJIT_UNUSED) flags |= UNUSED_RETURN; - if ((dst & SLJIT_MEM) && !getput_arg_fast(compiler, mem_flags | STORE | ARG_TEST, TMP_REG1, dst, dstw)) - flags |= SLOW_DEST; - if (src1 & SLJIT_MEM) { - if (getput_arg_fast(compiler, mem_flags, TMP_REG1, src1, src1w)) - FAIL_IF(compiler->error); - else - flags |= SLOW_SRC1; - } - if (src2 & SLJIT_MEM) { - if (getput_arg_fast(compiler, mem_flags, TMP_REG2, src2, src2w)) - FAIL_IF(compiler->error); - else - flags |= SLOW_SRC2; - } - - if ((flags & (SLOW_SRC1 | SLOW_SRC2)) == (SLOW_SRC1 | SLOW_SRC2)) { - if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) { - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG2, src2, src2w, src1, src1w)); - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG1, src1, src1w, dst, dstw)); - } - else { - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG1, src1, src1w, src2, src2w)); - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG2, src2, src2w, dst, dstw)); - } - } - else if (flags & SLOW_SRC1) - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG1, src1, src1w, dst, dstw)); - else if (flags & SLOW_SRC2) - FAIL_IF(getput_arg(compiler, mem_flags, TMP_REG2, src2, src2w, dst, dstw)); - - if (src1 & SLJIT_MEM) + FAIL_IF(emit_op_mem(compiler, mem_flags, TMP_REG1, src1, src1w, TMP_REG1)); src1 = TMP_REG1; - if (src2 & SLJIT_MEM) + } + + if (src2 & SLJIT_MEM) { + FAIL_IF(emit_op_mem(compiler, mem_flags, TMP_REG2, src2, src2w, TMP_REG2)); src2 = TMP_REG2; + } if (src1 & SLJIT_IMM) flags |= ARG1_IMM; else src1w = src1; + if (src2 & SLJIT_IMM) flags |= ARG2_IMM; else @@ -1548,14 +1273,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile emit_op_imm(compiler, flags | GET_OPCODE(op), dst_r, src1w, src2w); - if (dst & SLJIT_MEM) { - if (!(flags & SLOW_DEST)) { - getput_arg_fast(compiler, mem_flags | STORE, dst_r, dst, dstw); - return compiler->error; - } - return getput_arg(compiler, mem_flags | STORE, TMP_REG1, dst, dstw, 0, 0); - } - + if (dst & SLJIT_MEM) + return emit_op_mem(compiler, mem_flags | STORE, dst_r, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } @@ -1568,7 +1287,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg; + return freg_map[reg]; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -1587,54 +1306,50 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *c static sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) { sljit_u32 shift = MEM_SIZE_SHIFT(flags); - sljit_ins ins_bits = (shift << 30); - sljit_s32 other_r; - sljit_sw diff; + sljit_ins type = (shift << 30); SLJIT_ASSERT(arg & SLJIT_MEM); if (!(flags & STORE)) - ins_bits |= 1 << 22; + type |= 0x00400000; if (arg & OFFS_REG_MASK) { argw &= 3; - if (!argw || argw == shift) - return push_inst(compiler, STR_FR | ins_bits | VT(reg) + if (argw == 0 || argw == shift) + return push_inst(compiler, STR_FR | type | VT(reg) | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | (argw ? (1 << 12) : 0)); - other_r = OFFS_REG(arg); - arg &= REG_MASK; - FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG1) | RN(arg) | RM(other_r) | (argw << 10))); - arg = TMP_REG1; - argw = 0; + + FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG1) | RN(arg & REG_MASK) | RM(OFFS_REG(arg)) | (argw << 10))); + return push_inst(compiler, STR_FI | type | VT(reg) | RN(TMP_REG1)); } arg &= REG_MASK; - if (arg && argw >= 0 && ((argw >> shift) <= 0xfff) && (argw & ((1 << shift) - 1)) == 0) - return push_inst(compiler, STR_FI | ins_bits | VT(reg) | RN(arg) | (argw << (10 - shift))); - if (arg && argw <= 255 && argw >= -256) - return push_inst(compiler, STUR_FI | ins_bits | VT(reg) | RN(arg) | ((argw & 0x1ff) << 12)); + if (arg == SLJIT_UNUSED) { + FAIL_IF(load_immediate(compiler, TMP_REG1, argw & ~(0xfff << shift))); - /* Slow cases */ - if (compiler->cache_arg == SLJIT_MEM && argw != compiler->cache_argw) { - diff = argw - compiler->cache_argw; - if (!arg && diff <= 255 && diff >= -256) - return push_inst(compiler, STUR_FI | ins_bits | VT(reg) | RN(TMP_REG3) | ((diff & 0x1ff) << 12)); - if (emit_set_delta(compiler, TMP_REG3, TMP_REG3, argw - compiler->cache_argw) != SLJIT_ERR_UNSUPPORTED) { - FAIL_IF(compiler->error); - compiler->cache_argw = argw; + argw = (argw >> shift) & 0xfff; + + return push_inst(compiler, STR_FI | type | VT(reg) | RN(TMP_REG1) | (argw << 10)); + } + + if (argw >= 0 && (argw & ((1 << shift) - 1)) == 0) { + if ((argw >> shift) <= 0xfff) + return push_inst(compiler, STR_FI | type | VT(reg) | RN(arg) | (argw << (10 - shift))); + + if (argw <= 0xffffff) { + FAIL_IF(push_inst(compiler, ADDI | (1 << 22) | RD(TMP_REG1) | RN(arg) | ((argw >> 12) << 10))); + + argw = ((argw & 0xfff) >> shift); + return push_inst(compiler, STR_FI | type | VT(reg) | RN(TMP_REG1) | (argw << 10)); } } - if (compiler->cache_arg != SLJIT_MEM || argw != compiler->cache_argw) { - compiler->cache_arg = SLJIT_MEM; - compiler->cache_argw = argw; - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - } + if (argw <= 255 && argw >= -256) + return push_inst(compiler, STUR_FI | type | VT(reg) | RN(arg) | ((argw & 0x1ff) << 12)); - if (arg & REG_MASK) - return push_inst(compiler, STR_FR | ins_bits | VT(reg) | RN(arg) | RM(TMP_REG3)); - return push_inst(compiler, STR_FI | ins_bits | VT(reg) | RN(TMP_REG3)); + FAIL_IF(load_immediate(compiler, TMP_REG1, argw)); + return push_inst(compiler, STR_FR | type | VT(reg) | RN(arg) | RM(TMP_REG1)); } static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, sljit_s32 op, @@ -1655,7 +1370,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp FAIL_IF(push_inst(compiler, (FCVTZS ^ inv_bits) | RD(dst_r) | VN(src))); if (dst & SLJIT_MEM) - return emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONV_S32_FROM_F64) ? INT_SIZE : WORD_SIZE) | STORE, TMP_REG1, dst, dstw); + return emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONV_S32_FROM_F64) ? INT_SIZE : WORD_SIZE) | STORE, TMP_REG1, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } @@ -1670,7 +1385,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp inv_bits |= (1 << 31); if (src & SLJIT_MEM) { - emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONV_F64_FROM_S32) ? INT_SIZE : WORD_SIZE), TMP_REG1, src, srcw); + emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONV_F64_FROM_S32) ? INT_SIZE : WORD_SIZE), TMP_REG1, src, srcw, TMP_REG1); src = TMP_REG1; } else if (src & SLJIT_IMM) { #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -1716,17 +1431,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil sljit_ins inv_bits; CHECK_ERROR(); - compiler->cache_arg = 0; - compiler->cache_argw = 0; - SLJIT_COMPILE_ASSERT((INT_SIZE ^ 0x100) == WORD_SIZE, must_be_one_bit_difference); + SLJIT_COMPILE_ASSERT((INT_SIZE ^ 0x1) == WORD_SIZE, must_be_one_bit_difference); SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); inv_bits = (op & SLJIT_F32_OP) ? (1 << 22) : 0; dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src & SLJIT_MEM) { - emit_fop_mem(compiler, (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) ? (mem_flags ^ 0x100) : mem_flags, dst_r, src, srcw); + emit_fop_mem(compiler, (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) ? (mem_flags ^ 0x1) : mem_flags, dst_r, src, srcw); src = dst_r; } @@ -1769,9 +1482,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil ADJUST_LOCAL_OFFSET(src1, src1w); ADJUST_LOCAL_OFFSET(src2, src2w); - compiler->cache_arg = 0; - compiler->cache_argw = 0; - dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src1 & SLJIT_MEM) { emit_fop_mem(compiler, mem_flags, TMP_FREG1, src1, src1w); @@ -1816,7 +1526,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler * return push_inst(compiler, ORR | RD(dst) | RN(TMP_ZERO) | RM(TMP_LR)); /* Memory. */ - return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_LR, dst, dstw); + return emit_op_mem(compiler, WORD_SIZE | STORE, TMP_LR, dst, dstw, TMP_REG1); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw) @@ -1827,10 +1537,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, ORR | RD(TMP_LR) | RN(TMP_ZERO) | RM(src))); - else if (src & SLJIT_MEM) - FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_LR, src, srcw)); - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, TMP_LR, srcw)); + else + FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_LR, src, srcw, TMP_REG1)); return push_inst(compiler, RET | RN(TMP_LR)); } @@ -1936,6 +1644,20 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile return jump; } +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +} + static SLJIT_INLINE struct sljit_jump* emit_cmp_to0(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { @@ -1951,13 +1673,14 @@ static SLJIT_INLINE struct sljit_jump* emit_cmp_to0(struct sljit_compiler *compi jump->flags |= IS_CBZ | IS_COND; if (src & SLJIT_MEM) { - PTR_FAIL_IF(emit_op_mem(compiler, inv_bits ? INT_SIZE : WORD_SIZE, TMP_REG1, src, srcw)); + PTR_FAIL_IF(emit_op_mem(compiler, inv_bits ? INT_SIZE : WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); src = TMP_REG1; } else if (src & SLJIT_IMM) { PTR_FAIL_IF(load_immediate(compiler, TMP_REG1, srcw)); src = TMP_REG1; } + SLJIT_ASSERT(FAST_IS_REG(src)); if ((type & 0xff) == SLJIT_EQUAL) @@ -1978,15 +1701,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - /* In ARM, we don't need to touch the arguments. */ if (!(src & SLJIT_IMM)) { if (src & SLJIT_MEM) { - FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw)); + FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); src = TMP_REG1; } return push_inst(compiler, ((type >= SLJIT_FAST_CALL) ? BLR : BR) | RN(src)); } + /* These jumps are converted to jump/call instructions when possible. */ jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF(!jump); set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); @@ -1997,6 +1720,21 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi return push_inst(compiler, ((type >= SLJIT_FAST_CALL) ? BLR : BR) | RN(TMP_REG1)); } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) @@ -2013,15 +1751,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co if (GET_OPCODE(op) < SLJIT_ADD) { FAIL_IF(push_inst(compiler, CSINC | (cc << 12) | RD(dst_r) | RN(TMP_ZERO) | RM(TMP_ZERO))); - if (dst_r != TMP_REG1) - return SLJIT_SUCCESS; - return emit_op_mem(compiler, (GET_OPCODE(op) == SLJIT_MOV ? WORD_SIZE : INT_SIZE) | STORE, TMP_REG1, dst, dstw); + + if (dst_r == TMP_REG1) { + mem_flags = (GET_OPCODE(op) == SLJIT_MOV ? WORD_SIZE : INT_SIZE) | STORE; + return emit_op_mem(compiler, mem_flags, TMP_REG1, dst, dstw, TMP_REG2); + } + + return SLJIT_SUCCESS; } - compiler->cache_arg = 0; - compiler->cache_argw = 0; flags = HAS_FLAGS(op) ? SET_FLAGS : 0; mem_flags = WORD_SIZE; + if (op & SLJIT_I32_OP) { flags |= INT_OP; mem_flags = INT_SIZE; @@ -2030,7 +1771,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co src_r = dst; if (dst & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, mem_flags, TMP_REG1, dst, dstw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, mem_flags, TMP_REG1, dst, dstw, TMP_REG1)); src_r = TMP_REG1; } @@ -2038,7 +1779,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co emit_op_imm(compiler, flags | GET_OPCODE(op), dst_r, src_r, TMP_REG2); if (dst & SLJIT_MEM) - return emit_op_mem2(compiler, mem_flags | STORE, TMP_REG1, dst, dstw, 0, 0); + return emit_op_mem(compiler, mem_flags | STORE, TMP_REG1, dst, dstw, TMP_REG2); return SLJIT_SUCCESS; } @@ -2066,6 +1807,125 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil return push_inst(compiler, (CSEL ^ inv_bits) | (cc << 12) | RD(dst_reg) | RN(dst_reg) | RM(src)); } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_u32 sign = 0, inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); + + if ((mem & OFFS_REG_MASK) || (memw > 255 && memw < -256)) + return SLJIT_ERR_UNSUPPORTED; + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + switch (type & 0xff) { + case SLJIT_MOV: + case SLJIT_MOV_P: + inst = STURBI | (MEM_SIZE_SHIFT(WORD_SIZE) << 30) | 0x400; + break; + case SLJIT_MOV_S8: + sign = 1; + case SLJIT_MOV_U8: + inst = STURBI | (MEM_SIZE_SHIFT(BYTE_SIZE) << 30) | 0x400; + break; + case SLJIT_MOV_S16: + sign = 1; + case SLJIT_MOV_U16: + inst = STURBI | (MEM_SIZE_SHIFT(HALF_SIZE) << 30) | 0x400; + break; + case SLJIT_MOV_S32: + sign = 1; + case SLJIT_MOV_U32: + inst = STURBI | (MEM_SIZE_SHIFT(INT_SIZE) << 30) | 0x400; + break; + default: + SLJIT_UNREACHABLE(); + inst = STURBI | (MEM_SIZE_SHIFT(WORD_SIZE) << 30) | 0x400; + break; + } + + if (!(type & SLJIT_MEM_STORE)) + inst |= sign ? 0x00800000 : 0x00400000; + + if (type & SLJIT_MEM_PRE) + inst |= 0x800; + + return push_inst(compiler, inst | RT(reg) | RN(mem & REG_MASK) | ((memw & 0x1ff) << 12)); +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 freg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_u32 inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); + + if ((mem & OFFS_REG_MASK) || (memw > 255 && memw < -256)) + return SLJIT_ERR_UNSUPPORTED; + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + inst = STUR_FI | 0x80000400; + + if (!(type & SLJIT_F32_OP)) + inst |= 0x40000000; + + if (!(type & SLJIT_MEM_STORE)) + inst |= 0x00400000; + + if (type & SLJIT_MEM_PRE) + inst |= 0x800; + + return push_inst(compiler, inst | VT(freg) | RN(mem & REG_MASK) | ((memw & 0x1ff) << 12)); +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset) +{ + sljit_s32 dst_reg; + sljit_ins ins; + + CHECK_ERROR(); + CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset)); + + SLJIT_ASSERT (SLJIT_LOCALS_OFFSET_BASE == 0); + + dst_reg = FAST_IS_REG(dst) ? dst : TMP_REG1; + + if (offset <= 0xffffff && offset >= -0xffffff) { + ins = ADDI; + if (offset < 0) { + offset = -offset; + ins = SUBI; + } + + if (offset <= 0xfff) + FAIL_IF(push_inst(compiler, ins | RD(dst_reg) | RN(SLJIT_SP) | (offset << 10))); + else { + FAIL_IF(push_inst(compiler, ins | RD(dst_reg) | RN(SLJIT_SP) | ((offset & 0xfff000) >> (12 - 10)) | (1 << 22))); + + offset &= 0xfff; + if (offset != 0) + FAIL_IF(push_inst(compiler, ins | RD(dst_reg) | RN(dst_reg) | (offset << 10))); + } + } + else { + FAIL_IF(load_immediate (compiler, dst_reg, offset)); + /* Add extended register form. */ + FAIL_IF(push_inst(compiler, ADDE | (0x3 << 13) | RD(dst_reg) | RN(SLJIT_SP) | RM(dst_reg))); + } + + if (SLJIT_UNLIKELY(dst & SLJIT_MEM)) + return emit_op_mem(compiler, WORD_SIZE | STORE, dst_reg, dst, dstw, TMP_REG1); + return SLJIT_SUCCESS; +} + SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value) { struct sljit_const *const_; @@ -2083,7 +1943,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi PTR_FAIL_IF(emit_imm64_const(compiler, dst_r, init_value)); if (dst & SLJIT_MEM) - PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, dst_r, dst, dstw)); + PTR_FAIL_IF(emit_op_mem(compiler, WORD_SIZE | STORE, dst_r, dst, dstw, TMP_REG2)); return const_; } diff --git a/pcre/sljit/sljitNativeARM_T2_32.c b/pcre/sljit/sljitNativeARM_T2_32.c index 29e5566a820..d7024b6d7d4 100644 --- a/pcre/sljit/sljitNativeARM_T2_32.c +++ b/pcre/sljit/sljitNativeARM_T2_32.c @@ -26,7 +26,11 @@ SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name(void) { - return "ARM-Thumb2" SLJIT_CPUINFO; +#ifdef __SOFTFP__ + return "ARM-Thumb2" SLJIT_CPUINFO " ABI:softfp"; +#else + return "ARM-Thumb2" SLJIT_CPUINFO " ABI:hardfp"; +#endif } /* Length of an instruction word. */ @@ -37,12 +41,16 @@ typedef sljit_u32 sljit_ins; #define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) #define TMP_PC (SLJIT_NUMBER_OF_REGISTERS + 4) -#define TMP_FREG1 (0) -#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2) /* See sljit_emit_enter and sljit_emit_op0 if you want to change them. */ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { - 0, 0, 1, 2, 12, 11, 10, 9, 8, 7, 6, 5, 4, 13, 3, 14, 15 + 0, 0, 1, 2, 3, 11, 10, 9, 8, 7, 6, 5, 4, 13, 12, 14, 15 +}; + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 0, 1, 2, 3, 4, 5, 6, 7 }; #define COPY_BITS(src, from, to, bits) \ @@ -69,9 +77,9 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define RN4(rn) (reg_map[rn] << 16) #define RM4(rm) (reg_map[rm]) #define RT4(rt) (reg_map[rt] << 12) -#define DD4(dd) ((dd) << 12) -#define DN4(dn) ((dn) << 16) -#define DM4(dm) (dm) +#define DD4(dd) (freg_map[dd] << 12) +#define DN4(dn) (freg_map[dn] << 16) +#define DM4(dm) (freg_map[dm]) #define IMM5(imm) \ (COPY_BITS(imm, 2, 12, 3) | ((imm & 0x3) << 6)) #define IMM12(imm) \ @@ -102,6 +110,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define ASRSI 0x1000 #define ASR_W 0xfa40f000 #define ASR_WI 0xea4f0020 +#define BCC 0xd000 #define BICI 0xf0200000 #define BKPT 0xbe00 #define BLX 0x4780 @@ -117,6 +126,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define EORS 0x4040 #define EOR_W 0xea800000 #define IT 0xbf00 +#define LDRI 0xf8500800 #define LSLS 0x4080 #define LSLSI 0x0000 #define LSL_W 0xfa00f000 @@ -150,6 +160,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define SBCI 0xf1600000 #define SBCS 0x4180 #define SBC_W 0xeb600000 +#define SDIV 0xfb90f0f0 #define SMULL 0xfb800000 #define STR_SP 0x9000 #define SUBS 0x1a00 @@ -164,6 +175,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define SXTH 0xb200 #define SXTH_W 0xfa0ff080 #define TST 0x4200 +#define UDIV 0xfbb0f0f0 #define UMULL 0xfba00000 #define UXTB 0xb2c0 #define UXTB_W 0xfa5ff080 @@ -178,6 +190,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define VDIV_F32 0xee800a00 #define VMOV_F32 0xeeb00a40 #define VMOV 0xee000a10 +#define VMOV2 0xec400a10 #define VMRS 0xeef1fa10 #define VMUL_F32 0xee200a00 #define VNEG_F32 0xeeb10a40 @@ -208,10 +221,10 @@ static sljit_s32 push_inst32(struct sljit_compiler *compiler, sljit_ins inst) static SLJIT_INLINE sljit_s32 emit_imm32_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm) { - FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) | - COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))); - return push_inst32(compiler, MOVT | RD4(dst) | - COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) | ((imm & 0xff0000) >> 16)); + FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) + | COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))); + return push_inst32(compiler, MOVT | RD4(dst) + | COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) | ((imm & 0xff0000) >> 16)); } static SLJIT_INLINE void modify_imm32_const(sljit_u16 *inst, sljit_uw new_imm) @@ -330,8 +343,8 @@ static SLJIT_INLINE void set_jump_instruction(struct sljit_jump *jump, sljit_sw /* Really complex instruction form for branches. */ s = (diff >> 23) & 0x1; - j1 = (~(diff >> 21) ^ s) & 0x1; - j2 = (~(diff >> 22) ^ s) & 0x1; + j1 = (~(diff >> 22) ^ s) & 0x1; + j2 = (~(diff >> 21) ^ s) & 0x1; jump_inst[0] = 0xf000 | (s << 10) | COPY_BITS(diff, 11, 0, 10); jump_inst[1] = (j1 << 13) | (j2 << 11) | (diff & 0x7ff); @@ -444,7 +457,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) return 1; #endif - case SLJIT_HAS_PRE_UPDATE: case SLJIT_HAS_CLZ: case SLJIT_HAS_CMOV: return 1; @@ -512,6 +524,8 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, { sljit_uw tmp; + /* MOVS cannot be used since it destroy flags. */ + if (imm >= 0x10000) { tmp = get_imm(imm); if (tmp != INVALID_IMM) @@ -522,13 +536,13 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, } /* set low 16 bits, set hi 16 bits to 0. */ - FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) | - COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))); + FAIL_IF(push_inst32(compiler, MOVW | RD4(dst) + | COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))); /* set hi 16 bit if needed. */ if (imm >= 0x10000) - return push_inst32(compiler, MOVT | RD4(dst) | - COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) | ((imm & 0xff0000) >> 16)); + return push_inst32(compiler, MOVT | RD4(dst) + | COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) | ((imm & 0xff0000) >> 16)); return SLJIT_SUCCESS; } @@ -729,34 +743,26 @@ static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, s case SLJIT_MOV_U32: case SLJIT_MOV_S32: case SLJIT_MOV_P: - case SLJIT_MOVU: - case SLJIT_MOVU_U32: - case SLJIT_MOVU_S32: - case SLJIT_MOVU_P: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG2); if (dst == arg2) return SLJIT_SUCCESS; return push_inst16(compiler, MOV | SET_REGS44(dst, arg2)); case SLJIT_MOV_U8: - case SLJIT_MOVU_U8: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG2); if (IS_2_LO_REGS(dst, arg2)) return push_inst16(compiler, UXTB | RD3(dst) | RN3(arg2)); return push_inst32(compiler, UXTB_W | RD4(dst) | RM4(arg2)); case SLJIT_MOV_S8: - case SLJIT_MOVU_S8: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG2); if (IS_2_LO_REGS(dst, arg2)) return push_inst16(compiler, SXTB | RD3(dst) | RN3(arg2)); return push_inst32(compiler, SXTB_W | RD4(dst) | RM4(arg2)); case SLJIT_MOV_U16: - case SLJIT_MOVU_U16: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG2); if (IS_2_LO_REGS(dst, arg2)) return push_inst16(compiler, UXTH | RD3(dst) | RN3(arg2)); return push_inst32(compiler, UXTH_W | RD4(dst) | RM4(arg2)); case SLJIT_MOV_S16: - case SLJIT_MOVU_S16: SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG2); if (IS_2_LO_REGS(dst, arg2)) return push_inst16(compiler, SXTH | RD3(dst) | RN3(arg2)); @@ -840,8 +846,6 @@ static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, s #define HALF_SIZE 0x08 #define PRELOAD 0x0c -#define UPDATE 0x10 - #define IS_WORD_SIZE(flags) (!(flags & (BYTE_SIZE | HALF_SIZE))) #define OFFSET_CHECK(imm, shift) (!(argw & ~(imm << shift))) @@ -940,12 +944,10 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg) { sljit_s32 other_r; - sljit_s32 update = flags & UPDATE; sljit_uw tmp; SLJIT_ASSERT(arg & SLJIT_MEM); SLJIT_ASSERT((arg & REG_MASK) != tmp_reg); - flags &= ~UPDATE; arg &= ~SLJIT_MEM; if (SLJIT_UNLIKELY(!(arg & REG_MASK))) { @@ -961,63 +963,6 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM12 | RT4(reg) | RN4(tmp_reg)); } - if (SLJIT_UNLIKELY(update)) { - SLJIT_ASSERT(reg != arg); - - if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { - other_r = OFFS_REG(arg); - arg &= 0xf; - - if (IS_3_LO_REGS(reg, arg, other_r)) - FAIL_IF(push_inst16(compiler, sljit_mem16[flags] | RD3(reg) | RN3(arg) | RM3(other_r))); - else - FAIL_IF(push_inst32(compiler, sljit_mem32[flags] | RT4(reg) | RN4(arg) | RM4(other_r))); - return push_inst16(compiler, ADD | SET_REGS44(arg, other_r)); - } - - if (argw > 0xff) { - tmp = get_imm(argw & ~0xff); - if (tmp != INVALID_IMM) { - push_inst32(compiler, ADD_WI | RD4(arg) | RN4(arg) | tmp); - argw = argw & 0xff; - } - } - else if (argw < -0xff) { - tmp = get_imm(-argw & ~0xff); - if (tmp != INVALID_IMM) { - push_inst32(compiler, SUB_WI | RD4(arg) | RN4(arg) | tmp); - argw = -(-argw & 0xff); - } - } - - if (argw == 0) { - if (IS_2_LO_REGS(reg, arg) && sljit_mem16_imm5[flags]) - return push_inst16(compiler, sljit_mem16_imm5[flags] | RD3(reg) | RN3(arg)); - return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM12 | RT4(reg) | RN4(arg)); - } - - if (argw <= 0xff && argw >= -0xff) { - if (argw >= 0) - argw |= 0x200; - else { - argw = -argw; - } - - SLJIT_ASSERT(argw >= 0 && (argw & 0xff) <= 0xff); - return push_inst32(compiler, sljit_mem32[flags] | MEM_IMM8 | RT4(reg) | RN4(arg) | 0x100 | argw); - } - - FAIL_IF(load_immediate(compiler, tmp_reg, argw)); - - SLJIT_ASSERT(reg != tmp_reg); - - if (IS_3_LO_REGS(reg, arg, tmp_reg)) - FAIL_IF(push_inst16(compiler, sljit_mem16[flags] | RD3(reg) | RN3(arg) | RM3(tmp_reg))); - else - FAIL_IF(push_inst32(compiler, sljit_mem32[flags] | RT4(reg) | RN4(arg) | RM4(tmp_reg))); - return push_inst16(compiler, ADD | SET_REGS44(arg, tmp_reg)); - } - if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { argw &= 0x3; other_r = OFFS_REG(arg); @@ -1088,15 +1033,18 @@ static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit /* --------------------------------------------------------------------- */ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 size, i, tmp; + sljit_s32 args, size, i, tmp; sljit_ins push = 0; +#ifdef _WIN32 + sljit_uw imm; +#endif CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; for (i = SLJIT_S0; i >= tmp; i--) @@ -1113,12 +1061,27 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); local_size = ((size + local_size + 7) & ~7) - size; compiler->local_size = local_size; + +#ifdef _WIN32 + if (local_size >= 256) { + if (local_size > 4096) + imm = get_imm(4096); + else + imm = get_imm(local_size & ~0xff); + + SLJIT_ASSERT(imm != INVALID_IMM); + FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(SLJIT_SP) | imm)); + } +#else if (local_size > 0) { if (local_size <= (127 << 2)) FAIL_IF(push_inst16(compiler, SUB_SP | (local_size >> 2))); else FAIL_IF(emit_op_imm(compiler, SLJIT_SUB | ARG2_IMM, SLJIT_SP, SLJIT_SP, local_size)); } +#endif + + args = get_arg_count(arg_types); if (args >= 1) FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S0, SLJIT_R0))); @@ -1127,18 +1090,73 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi if (args >= 3) FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S2, SLJIT_R2))); +#ifdef _WIN32 + if (local_size >= 256) { + if (local_size > 4096) { + imm = get_imm(4096); + SLJIT_ASSERT(imm != INVALID_IMM); + + if (local_size < 4 * 4096) { + if (local_size > 2 * 4096) { + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG2) | RN4(TMP_REG1))); + FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); + local_size -= 4096; + } + + if (local_size > 2 * 4096) { + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG2) | RN4(TMP_REG1))); + FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); + local_size -= 4096; + } + + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG2) | RN4(TMP_REG1))); + local_size -= 4096; + + SLJIT_ASSERT(local_size > 0); + } + else { + FAIL_IF(load_immediate(compiler, SLJIT_R3, (local_size >> 12) - 1)); + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG2) | RN4(TMP_REG1))); + FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); + SLJIT_ASSERT(reg_map[SLJIT_R3] < 7); + FAIL_IF(push_inst16(compiler, SUBSI8 | RDN3(SLJIT_R3) | 1)); + FAIL_IF(push_inst16(compiler, BCC | (0x1 << 8) /* not-equal */ | (-7 & 0xff))); + + local_size &= 0xfff; + + if (local_size != 0) + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | RT4(TMP_REG2) | RN4(TMP_REG1))); + } + + if (local_size >= 256) { + imm = get_imm(local_size & ~0xff); + SLJIT_ASSERT(imm != INVALID_IMM); + + FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); + } + } + + local_size &= 0xff; + FAIL_IF(push_inst32(compiler, LDRI | 0x400 | (local_size > 0 ? 0x100 : 0) | RT4(TMP_REG2) | RN4(TMP_REG1) | local_size)); + + FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_SP, TMP_REG1))); + } + else if (local_size > 0) + FAIL_IF(push_inst32(compiler, LDRI | 0x500 | RT4(TMP_REG1) | RN4(SLJIT_SP) | local_size)); +#endif + return SLJIT_SUCCESS; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { sljit_s32 size; CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); compiler->local_size = ((size + local_size + 7) & ~7) - size; @@ -1178,11 +1196,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp /* Operators */ /* --------------------------------------------------------------------- */ +#if !(defined __ARM_FEATURE_IDIV) && !(defined __ARM_ARCH_EXT_IDIV__) + #ifdef __cplusplus extern "C" { #endif -#if defined(__GNUC__) +#ifdef _WIN32 +extern unsigned long long __rt_udiv(unsigned int denominator, unsigned int numerator); +extern long long __rt_sdiv(int denominator, int numerator); +#elif defined(__GNUC__) extern unsigned int __aeabi_uidivmod(unsigned int numerator, int unsigned denominator); extern int __aeabi_idivmod(int numerator, int denominator); #else @@ -1193,10 +1216,14 @@ extern int __aeabi_idivmod(int numerator, int denominator); } #endif +#endif /* !__ARM_FEATURE_IDIV && !__ARM_ARCH_EXT_IDIV__ */ + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) { +#if !(defined __ARM_FEATURE_IDIV) && !(defined __ARM_ARCH_EXT_IDIV__) sljit_sw saved_reg_list[3]; sljit_sw saved_reg_count; +#endif CHECK_ERROR(); CHECK(check_sljit_emit_op0(compiler, op)); @@ -1214,16 +1241,27 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compile | (reg_map[SLJIT_R0] << 12) | (reg_map[SLJIT_R0] << 16) | reg_map[SLJIT_R1]); +#if (defined __ARM_FEATURE_IDIV) || (defined __ARM_ARCH_EXT_IDIV__) + case SLJIT_DIVMOD_UW: + case SLJIT_DIVMOD_SW: + FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, SLJIT_R0))); + FAIL_IF(push_inst32(compiler, (op == SLJIT_DIVMOD_UW ? UDIV : SDIV) | RD4(SLJIT_R0) | RN4(SLJIT_R0) | RM4(SLJIT_R1))); + FAIL_IF(push_inst32(compiler, MUL | RD4(SLJIT_R1) | RN4(SLJIT_R0) | RM4(SLJIT_R1))); + return push_inst32(compiler, SUB_W | RD4(SLJIT_R1) | RN4(TMP_REG1) | RM4(SLJIT_R1)); + case SLJIT_DIV_UW: + case SLJIT_DIV_SW: + return push_inst32(compiler, (op == SLJIT_DIV_UW ? UDIV : SDIV) | RD4(SLJIT_R0) | RN4(SLJIT_R0) | RM4(SLJIT_R1)); +#else /* !__ARM_FEATURE_IDIV && !__ARM_ARCH_EXT_IDIV__ */ case SLJIT_DIVMOD_UW: case SLJIT_DIVMOD_SW: case SLJIT_DIV_UW: case SLJIT_DIV_SW: SLJIT_COMPILE_ASSERT((SLJIT_DIVMOD_UW & 0x2) == 0 && SLJIT_DIV_UW - 0x2 == SLJIT_DIVMOD_UW, bad_div_opcode_assignments); - SLJIT_ASSERT(reg_map[2] == 1 && reg_map[3] == 2 && reg_map[4] == 12); + SLJIT_ASSERT(reg_map[2] == 1 && reg_map[3] == 2 && reg_map[4] == 3); saved_reg_count = 0; if (compiler->scratches >= 4) - saved_reg_list[saved_reg_count++] = 12; + saved_reg_list[saved_reg_count++] = 3; if (compiler->scratches >= 3) saved_reg_list[saved_reg_count++] = 2; if (op >= SLJIT_DIV_UW) @@ -1242,7 +1280,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compile } } -#if defined(__GNUC__) +#ifdef _WIN32 + FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG1, SLJIT_R0))); + FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_R0, SLJIT_R1))); + FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_R1, TMP_REG1))); + FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, + ((op | 0x2) == SLJIT_DIV_UW ? SLJIT_FUNC_OFFSET(__rt_udiv) : SLJIT_FUNC_OFFSET(__rt_sdiv)))); +#elif defined(__GNUC__) FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, ((op | 0x2) == SLJIT_DIV_UW ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); #else @@ -1262,6 +1306,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compile | (saved_reg_list[0] << 12) /* ldr rX, [sp], #8/16 */); } return SLJIT_SUCCESS; +#endif /* __ARM_FEATURE_IDIV || __ARM_ARCH_EXT_IDIV__ */ } return SLJIT_SUCCESS; @@ -1289,7 +1334,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile dst_r = SLOW_IS_REG(dst) ? dst : TMP_REG1; op = GET_OPCODE(op); - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_P) { + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) { switch (op) { case SLJIT_MOV: case SLJIT_MOV_U32: @@ -1317,32 +1362,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (src & SLJIT_IMM) srcw = (sljit_s16)srcw; break; - case SLJIT_MOVU: - case SLJIT_MOVU_U32: - case SLJIT_MOVU_S32: - case SLJIT_MOVU_P: - flags = WORD_SIZE | UPDATE; - break; - case SLJIT_MOVU_U8: - flags = BYTE_SIZE | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_u8)srcw; - break; - case SLJIT_MOVU_S8: - flags = BYTE_SIZE | SIGNED | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_s8)srcw; - break; - case SLJIT_MOVU_U16: - flags = HALF_SIZE | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_u16)srcw; - break; - case SLJIT_MOVU_S16: - flags = HALF_SIZE | SIGNED | UPDATE; - if (src & SLJIT_IMM) - srcw = (sljit_s16)srcw; - break; default: SLJIT_UNREACHABLE(); flags = 0; @@ -1352,7 +1371,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (src & SLJIT_IMM) FAIL_IF(emit_op_imm(compiler, SLJIT_MOV | ARG2_IMM, dst_r, TMP_REG2, srcw)); else if (src & SLJIT_MEM) { - FAIL_IF(emit_op_mem(compiler, flags, dst_r, src, srcw, ((flags & UPDATE) && dst_r == TMP_REG1) ? TMP_REG2 : TMP_REG1)); + FAIL_IF(emit_op_mem(compiler, flags, dst_r, src, srcw, TMP_REG1)); } else { if (dst_r != TMP_REG1) return emit_op_imm(compiler, op, dst_r, TMP_REG2, src); @@ -1362,7 +1381,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (!(dst & SLJIT_MEM)) return SLJIT_SUCCESS; - return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, (dst_r == TMP_REG1) ? TMP_REG2 : TMP_REG1); + return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, TMP_REG2); } if (op == SLJIT_NEG) { @@ -1375,20 +1394,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile flags = HAS_FLAGS(op_flags) ? SET_FLAGS : 0; - if (src & SLJIT_IMM) - flags |= ARG2_IMM; - else if (src & SLJIT_MEM) { + if (src & SLJIT_MEM) { FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); - srcw = TMP_REG1; + src = TMP_REG1; } - else - srcw = src; - emit_op_imm(compiler, flags | op, dst_r, TMP_REG2, srcw); + emit_op_imm(compiler, flags | op, dst_r, TMP_REG2, src); - if (!(dst & SLJIT_MEM)) - return SLJIT_SUCCESS; - return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, TMP_REG2); + if (SLJIT_UNLIKELY(dst & SLJIT_MEM)) + return emit_op_mem(compiler, flags | STORE, dst_r, dst, dstw, TMP_REG2); + return SLJIT_SUCCESS; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, @@ -1448,7 +1463,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg << 1; + return (freg_map[reg] << 1); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -1702,11 +1717,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler if (FAST_IS_REG(src)) FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG2, src))); - else if (src & SLJIT_MEM) { + else FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG2, src, srcw, TMP_REG2)); - } - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, TMP_REG2, srcw)); + return push_inst16(compiler, BX | RN3(TMP_REG2)); } @@ -1798,7 +1811,6 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); type &= 0xff; - /* In ARM, we don't need to touch the arguments. */ PTR_FAIL_IF(emit_imm32_const(compiler, TMP_REG1, 0)); if (type < SLJIT_JUMP) { jump->flags |= IS_COND; @@ -1818,6 +1830,241 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile return jump; } +#ifdef __SOFTFP__ + +static sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src) +{ + sljit_s32 stack_offset = 0; + sljit_s32 arg_count = 0; + sljit_s32 word_arg_offset = 0; + sljit_s32 float_arg_count = 0; + sljit_s32 types = 0; + sljit_s32 src_offset = 4 * sizeof(sljit_sw); + sljit_u8 offsets[4]; + + if (src && FAST_IS_REG(*src)) + src_offset = reg_map[*src] * sizeof(sljit_sw); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_f32); + arg_count++; + float_arg_count++; + break; + case SLJIT_ARG_TYPE_F64: + if (stack_offset & 0x7) + stack_offset += sizeof(sljit_sw); + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_f64); + arg_count++; + float_arg_count++; + break; + default: + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_sw); + arg_count++; + word_arg_offset += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (stack_offset > 16) + FAIL_IF(push_inst16(compiler, SUB_SP | (((stack_offset - 16) + 0x7) & ~0x7) >> 2)); + + SLJIT_ASSERT(reg_map[TMP_REG1] == 12); + + /* Process arguments in reversed direction. */ + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + arg_count--; + float_arg_count--; + stack_offset = offsets[arg_count]; + + if (stack_offset < 16) { + if (src_offset == stack_offset) { + FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); + *src = TMP_REG1; + } + FAIL_IF(push_inst32(compiler, VMOV | 0x100000 | (float_arg_count << 16) | (stack_offset << 10))); + } else + FAIL_IF(push_inst32(compiler, VSTR_F32 | 0x800000 | RN4(SLJIT_SP) | (float_arg_count << 12) | ((stack_offset - 16) >> 2))); + break; + case SLJIT_ARG_TYPE_F64: + arg_count--; + float_arg_count--; + stack_offset = offsets[arg_count]; + + SLJIT_ASSERT((stack_offset & 0x7) == 0); + + if (stack_offset < 16) { + if (src_offset == stack_offset || src_offset == stack_offset + sizeof(sljit_sw)) { + FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); + *src = TMP_REG1; + } + FAIL_IF(push_inst32(compiler, VMOV2 | 0x100000 | (stack_offset << 10) | ((stack_offset + sizeof(sljit_sw)) << 14) | float_arg_count)); + } else + FAIL_IF(push_inst32(compiler, VSTR_F32 | 0x800100 | RN4(SLJIT_SP) | (float_arg_count << 12) | ((stack_offset - 16) >> 2))); + break; + default: + arg_count--; + word_arg_offset -= sizeof(sljit_sw); + stack_offset = offsets[arg_count]; + + SLJIT_ASSERT(stack_offset >= word_arg_offset); + + if (stack_offset != word_arg_offset) { + if (stack_offset < 16) { + if (src_offset == stack_offset) { + FAIL_IF(push_inst16(compiler, MOV | (src_offset << 1) | 4 | (1 << 7))); + *src = TMP_REG1; + } + else if (src_offset == word_arg_offset) { + *src = 1 + (stack_offset >> 2); + src_offset = stack_offset; + } + FAIL_IF(push_inst16(compiler, MOV | (stack_offset >> 2) | (word_arg_offset << 1))); + } else + FAIL_IF(push_inst16(compiler, STR_SP | (word_arg_offset << 6) | ((stack_offset - 16) >> 2))); + } + break; + } + + types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + +static sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) +{ + sljit_s32 stack_size = 0; + + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F32) + FAIL_IF(push_inst32(compiler, VMOV | (0 << 16) | (0 << 12))); + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F64) + FAIL_IF(push_inst32(compiler, VMOV2 | (1 << 16) | (0 << 12) | 0)); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + if (stack_size & 0x7) + stack_size += sizeof(sljit_sw); + stack_size += sizeof(sljit_f64); + break; + default: + stack_size += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (stack_size <= 16) + return SLJIT_SUCCESS; + + return push_inst16(compiler, ADD_SP | ((((stack_size - 16) + 0x7) & ~0x7) >> 2)); +} + +#else + +static sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) +{ + sljit_u32 remap = 0; + sljit_u32 offset = 0; + sljit_u32 new_offset, mask; + + /* Remove return value. */ + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F32) { + new_offset = 0; + mask = 1; + + while (remap & mask) { + new_offset++; + mask <<= 1; + } + remap |= mask; + + if (offset != new_offset) + FAIL_IF(push_inst32(compiler, VMOV_F32 | DD4((new_offset >> 1) + 1) + | ((new_offset & 0x1) ? 0x400000 : 0) | DM4((offset >> 1) + 1))); + + offset += 2; + } + else if ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F64) { + new_offset = 0; + mask = 3; + + while (remap & mask) { + new_offset += 2; + mask <<= 2; + } + remap |= mask; + + if (offset != new_offset) + FAIL_IF(push_inst32(compiler, VMOV_F32 | SLJIT_F32_OP | DD4((new_offset >> 1) + 1) | DM4((offset >> 1) + 1))); + + offset += 2; + } + arg_types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + +#endif + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ +#ifdef __SOFTFP__ + struct sljit_jump *jump; +#endif + + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + +#ifdef __SOFTFP__ + PTR_FAIL_IF(softfloat_call_with_args(compiler, arg_types, NULL)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + jump = sljit_emit_jump(compiler, type); + PTR_FAIL_IF(jump == NULL); + + PTR_FAIL_IF(softfloat_post_call_with_args(compiler, arg_types)); + return jump; +#else + PTR_FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +#endif +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { struct sljit_jump *jump; @@ -1826,16 +2073,20 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - /* In ARM, we don't need to touch the arguments. */ + SLJIT_ASSERT(reg_map[TMP_REG1] != 14); + if (!(src & SLJIT_IMM)) { - if (FAST_IS_REG(src)) + if (FAST_IS_REG(src)) { + SLJIT_ASSERT(reg_map[src] != 14); return push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(src)); + } FAIL_IF(emit_op_mem(compiler, WORD_SIZE, type <= SLJIT_JUMP ? TMP_PC : TMP_REG1, src, srcw, TMP_REG1)); if (type >= SLJIT_FAST_CALL) return push_inst16(compiler, BLX | RN3(TMP_REG1)); } + /* These jumps are converted to jump/call instructions when possible. */ jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF(!jump); set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); @@ -1846,6 +2097,41 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi return push_inst16(compiler, (type <= SLJIT_JUMP ? BX : BLX) | RN3(TMP_REG1)); } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + +#ifdef __SOFTFP__ + if (src & SLJIT_MEM) { + FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_REG1, src, srcw, TMP_REG1)); + src = TMP_REG1; + } + + FAIL_IF(softfloat_call_with_args(compiler, arg_types, &src)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); + + return softfloat_post_call_with_args(compiler, arg_types); +#else /* !__SOFTFP__ */ + FAIL_IF(hardfloat_call_with_args(compiler, arg_types)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +#endif /* __SOFTFP__ */ +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) @@ -1896,8 +2182,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co return SLJIT_SUCCESS; /* The condition must always be set, even if the ORR/EORI is not executed above. */ - if (reg_map[dst_r] <= 7) - return push_inst16(compiler, MOVS | RD3(TMP_REG1) | RN3(dst_r)); return push_inst32(compiler, MOV_W | SET_FLAGS | RD4(TMP_REG1) | RM4(dst_r)); } @@ -1924,8 +2208,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil if (tmp < 0x10000) { /* set low 16 bits, set hi 16 bits to 0. */ FAIL_IF(push_inst16(compiler, IT | (cc << 4) | 0x8)); - return push_inst32(compiler, MOVW | RD4(dst_reg) | - COPY_BITS(tmp, 12, 16, 4) | COPY_BITS(tmp, 11, 26, 1) | COPY_BITS(tmp, 8, 12, 3) | (tmp & 0xff)); + return push_inst32(compiler, MOVW | RD4(dst_reg) + | COPY_BITS(tmp, 12, 16, 4) | COPY_BITS(tmp, 11, 26, 1) | COPY_BITS(tmp, 8, 12, 3) | (tmp & 0xff)); } tmp = get_imm(srcw); @@ -1943,10 +2227,67 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil FAIL_IF(push_inst16(compiler, IT | (cc << 4) | ((cc & 0x1) << 3) | 0x4)); tmp = (sljit_uw) srcw; - FAIL_IF(push_inst32(compiler, MOVW | RD4(dst_reg) | - COPY_BITS(tmp, 12, 16, 4) | COPY_BITS(tmp, 11, 26, 1) | COPY_BITS(tmp, 8, 12, 3) | (tmp & 0xff))); - return push_inst32(compiler, MOVT | RD4(dst_reg) | - COPY_BITS(tmp, 12 + 16, 16, 4) | COPY_BITS(tmp, 11 + 16, 26, 1) | COPY_BITS(tmp, 8 + 16, 12, 3) | ((tmp & 0xff0000) >> 16)); + FAIL_IF(push_inst32(compiler, MOVW | RD4(dst_reg) + | COPY_BITS(tmp, 12, 16, 4) | COPY_BITS(tmp, 11, 26, 1) | COPY_BITS(tmp, 8, 12, 3) | (tmp & 0xff))); + return push_inst32(compiler, MOVT | RD4(dst_reg) + | COPY_BITS(tmp, 12 + 16, 16, 4) | COPY_BITS(tmp, 11 + 16, 26, 1) | COPY_BITS(tmp, 8 + 16, 12, 3) | ((tmp & 0xff0000) >> 16)); +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_s32 flags; + sljit_ins inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); + + if ((mem & OFFS_REG_MASK) || (memw > 255 && memw < -255)) + return SLJIT_ERR_UNSUPPORTED; + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + switch (type & 0xff) { + case SLJIT_MOV: + case SLJIT_MOV_U32: + case SLJIT_MOV_S32: + case SLJIT_MOV_P: + flags = WORD_SIZE; + break; + case SLJIT_MOV_U8: + flags = BYTE_SIZE; + break; + case SLJIT_MOV_S8: + flags = BYTE_SIZE | SIGNED; + break; + case SLJIT_MOV_U16: + flags = HALF_SIZE; + break; + case SLJIT_MOV_S16: + flags = HALF_SIZE | SIGNED; + break; + default: + SLJIT_UNREACHABLE(); + flags = WORD_SIZE; + break; + } + + if (type & SLJIT_MEM_STORE) + flags |= STORE; + + inst = sljit_mem32[flags] | 0x900; + + if (type & SLJIT_MEM_PRE) + inst |= 0x400; + + if (memw >= 0) + inst |= 0x200; + else + memw = -memw; + + return push_inst32(compiler, inst | RT4(reg) | RN4(mem & REG_MASK) | memw); } SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value) diff --git a/pcre/sljit/sljitNativeMIPS_32.c b/pcre/sljit/sljitNativeMIPS_32.c index 62e16106b12..094c9923bcd 100644 --- a/pcre/sljit/sljitNativeMIPS_32.c +++ b/pcre/sljit/sljitNativeMIPS_32.c @@ -435,3 +435,232 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_consta inst = (sljit_ins *)SLJIT_ADD_EXEC_OFFSET(inst, executable_offset); SLJIT_CACHE_FLUSH(inst, inst + 2); } + +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_ins *ins_ptr) +{ + sljit_s32 stack_offset = 0; + sljit_s32 arg_count = 0; + sljit_s32 float_arg_count = 0; + sljit_s32 word_arg_count = 0; + sljit_s32 types = 0; + sljit_s32 arg_count_save, types_save; + sljit_ins prev_ins = NOP; + sljit_ins ins = NOP; + sljit_u8 offsets[4]; + + SLJIT_ASSERT(reg_map[TMP_REG1] == 4 && freg_map[TMP_FREG1] == 12); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + offsets[arg_count] = (sljit_u8)stack_offset; + + if (word_arg_count == 0 && arg_count <= 1) + offsets[arg_count] = 254 + arg_count; + + stack_offset += sizeof(sljit_f32); + arg_count++; + float_arg_count++; + break; + case SLJIT_ARG_TYPE_F64: + if (stack_offset & 0x7) + stack_offset += sizeof(sljit_sw); + offsets[arg_count] = (sljit_u8)stack_offset; + + if (word_arg_count == 0 && arg_count <= 1) + offsets[arg_count] = 254 + arg_count; + + stack_offset += sizeof(sljit_f64); + arg_count++; + float_arg_count++; + break; + default: + offsets[arg_count] = (sljit_u8)stack_offset; + stack_offset += sizeof(sljit_sw); + arg_count++; + word_arg_count++; + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + /* Stack is aligned to 16 bytes, max two doubles can be placed on the stack. */ + if (stack_offset > 16) + FAIL_IF(push_inst(compiler, ADDIU | S(SLJIT_SP) | T(SLJIT_SP) | IMM(-16), DR(SLJIT_SP))); + + types_save = types; + arg_count_save = arg_count; + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + arg_count--; + if (offsets[arg_count] < 254) + ins = SWC1 | S(SLJIT_SP) | FT(float_arg_count) | IMM(offsets[arg_count]); + float_arg_count--; + break; + case SLJIT_ARG_TYPE_F64: + arg_count--; + if (offsets[arg_count] < 254) + ins = SDC1 | S(SLJIT_SP) | FT(float_arg_count) | IMM(offsets[arg_count]); + float_arg_count--; + break; + default: + if (offsets[arg_count - 1] >= 16) + ins = SW | S(SLJIT_SP) | T(word_arg_count) | IMM(offsets[arg_count - 1]); + else if (arg_count != word_arg_count) + ins = ADDU | S(word_arg_count) | TA(0) | DA(4 + (offsets[arg_count - 1] >> 2)); + else if (arg_count == 1) + ins = ADDU | S(SLJIT_R0) | TA(0) | DA(4); + + arg_count--; + word_arg_count--; + break; + } + + if (ins != NOP) { + if (prev_ins != NOP) + FAIL_IF(push_inst(compiler, prev_ins, MOVABLE_INS)); + prev_ins = ins; + ins = NOP; + } + + types >>= SLJIT_DEF_SHIFT; + } + + types = types_save; + arg_count = arg_count_save; + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + arg_count--; + if (offsets[arg_count] == 254) + ins = MOV_S | FMT_S | FS(SLJIT_FR0) | FD(TMP_FREG1); + else if (offsets[arg_count] < 16) + ins = LW | S(SLJIT_SP) | TA(4 + (offsets[arg_count] >> 2)) | IMM(offsets[arg_count]); + break; + case SLJIT_ARG_TYPE_F64: + arg_count--; + if (offsets[arg_count] == 254) + ins = MOV_S | FMT_D | FS(SLJIT_FR0) | FD(TMP_FREG1); + else if (offsets[arg_count] < 16) { + if (prev_ins != NOP) + FAIL_IF(push_inst(compiler, prev_ins, MOVABLE_INS)); + prev_ins = LW | S(SLJIT_SP) | TA(4 + (offsets[arg_count] >> 2)) | IMM(offsets[arg_count]); + ins = LW | S(SLJIT_SP) | TA(5 + (offsets[arg_count] >> 2)) | IMM(offsets[arg_count] + sizeof(sljit_sw)); + } + break; + default: + arg_count--; + break; + } + + if (ins != NOP) { + if (prev_ins != NOP) + FAIL_IF(push_inst(compiler, prev_ins, MOVABLE_INS)); + prev_ins = ins; + ins = NOP; + } + + types >>= SLJIT_DEF_SHIFT; + } + + *ins_ptr = prev_ins; + + return SLJIT_SUCCESS; +} + +static sljit_s32 post_call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types) +{ + sljit_s32 stack_offset = 0; + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + stack_offset += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + if (stack_offset & 0x7) + stack_offset += sizeof(sljit_sw); + stack_offset += sizeof(sljit_f64); + break; + default: + stack_offset += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + /* Stack is aligned to 16 bytes, max two doubles can be placed on the stack. */ + if (stack_offset > 16) + return push_inst(compiler, ADDIU | S(SLJIT_SP) | T(SLJIT_SP) | IMM(16), DR(SLJIT_SP)); + + return SLJIT_SUCCESS; +} + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + struct sljit_jump *jump; + sljit_ins ins; + + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + + jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); + PTR_FAIL_IF(!jump); + set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); + type &= 0xff; + + PTR_FAIL_IF(call_with_args(compiler, arg_types, &ins)); + + SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); + + PTR_FAIL_IF(emit_const(compiler, PIC_ADDR_REG, 0)); + + jump->flags |= IS_JAL | IS_CALL; + PTR_FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); + jump->addr = compiler->size; + PTR_FAIL_IF(push_inst(compiler, ins, UNMOVABLE_INS)); + + PTR_FAIL_IF(post_call_with_args(compiler, arg_types)); + + return jump; +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + sljit_ins ins; + + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + + SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); + + if (src & SLJIT_IMM) + FAIL_IF(load_immediate(compiler, DR(PIC_ADDR_REG), srcw)); + else if (FAST_IS_REG(src)) + FAIL_IF(push_inst(compiler, ADDU | S(src) | TA(0) | D(PIC_ADDR_REG), DR(PIC_ADDR_REG))); + else if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, DR(PIC_ADDR_REG), src, srcw)); + } + + FAIL_IF(call_with_args(compiler, arg_types, &ins)); + + /* Register input. */ + FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); + FAIL_IF(push_inst(compiler, ins, UNMOVABLE_INS)); + return post_call_with_args(compiler, arg_types); +} diff --git a/pcre/sljit/sljitNativeMIPS_64.c b/pcre/sljit/sljitNativeMIPS_64.c index dd114bb27af..f841aef5ddc 100644 --- a/pcre/sljit/sljitNativeMIPS_64.c +++ b/pcre/sljit/sljitNativeMIPS_64.c @@ -537,3 +537,132 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_consta inst = (sljit_ins *)SLJIT_ADD_EXEC_OFFSET(inst, executable_offset); SLJIT_CACHE_FLUSH(inst, inst + 6); } + +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_ins *ins_ptr) +{ + sljit_s32 arg_count = 0; + sljit_s32 word_arg_count = 0; + sljit_s32 float_arg_count = 0; + sljit_s32 types = 0; + sljit_ins prev_ins = NOP; + sljit_ins ins = NOP; + + SLJIT_ASSERT(reg_map[TMP_REG1] == 4 && freg_map[TMP_FREG1] == 12); + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + case SLJIT_ARG_TYPE_F64: + arg_count++; + float_arg_count++; + break; + default: + arg_count++; + word_arg_count++; + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + if (arg_count != float_arg_count) + ins = MOV_S | FMT_S | FS(float_arg_count) | FD(arg_count); + else if (arg_count == 1) + ins = MOV_S | FMT_S | FS(SLJIT_FR0) | FD(TMP_FREG1); + arg_count--; + float_arg_count--; + break; + case SLJIT_ARG_TYPE_F64: + if (arg_count != float_arg_count) + ins = MOV_S | FMT_D | FS(float_arg_count) | FD(arg_count); + else if (arg_count == 1) + ins = MOV_S | FMT_D | FS(SLJIT_FR0) | FD(TMP_FREG1); + arg_count--; + float_arg_count--; + break; + default: + if (arg_count != word_arg_count) + ins = DADDU | S(word_arg_count) | TA(0) | D(arg_count); + else if (arg_count == 1) + ins = DADDU | S(SLJIT_R0) | TA(0) | DA(4); + arg_count--; + word_arg_count--; + break; + } + + if (ins != NOP) { + if (prev_ins != NOP) + FAIL_IF(push_inst(compiler, prev_ins, MOVABLE_INS)); + prev_ins = ins; + ins = NOP; + } + + types >>= SLJIT_DEF_SHIFT; + } + + *ins_ptr = prev_ins; + + return SLJIT_SUCCESS; +} + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + struct sljit_jump *jump; + sljit_ins ins; + + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + + jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); + PTR_FAIL_IF(!jump); + set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); + type &= 0xff; + + PTR_FAIL_IF(call_with_args(compiler, arg_types, &ins)); + + SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); + + PTR_FAIL_IF(emit_const(compiler, PIC_ADDR_REG, 0)); + + jump->flags |= IS_JAL | IS_CALL; + PTR_FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); + jump->addr = compiler->size; + PTR_FAIL_IF(push_inst(compiler, ins, UNMOVABLE_INS)); + + return jump; +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + sljit_ins ins; + + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + + SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); + + if (src & SLJIT_IMM) + FAIL_IF(load_immediate(compiler, DR(PIC_ADDR_REG), srcw)); + else if (FAST_IS_REG(src)) + FAIL_IF(push_inst(compiler, DADDU | S(src) | TA(0) | D(PIC_ADDR_REG), DR(PIC_ADDR_REG))); + else if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, DR(PIC_ADDR_REG), src, srcw)); + } + + FAIL_IF(call_with_args(compiler, arg_types, &ins)); + + /* Register input. */ + FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); + return push_inst(compiler, ins, UNMOVABLE_INS); +} diff --git a/pcre/sljit/sljitNativeMIPS_common.c b/pcre/sljit/sljitNativeMIPS_common.c index ee207fe1191..894e21304bb 100644 --- a/pcre/sljit/sljitNativeMIPS_common.c +++ b/pcre/sljit/sljitNativeMIPS_common.c @@ -57,16 +57,30 @@ typedef sljit_u32 sljit_ins; #define RETURN_ADDR_REG 31 /* Flags are kept in volatile registers. */ -#define EQUAL_FLAG 31 +#define EQUAL_FLAG 3 #define OTHER_FLAG 1 -#define TMP_FREG1 (0) -#define TMP_FREG2 ((SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) << 1) +#define TMP_FREG1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2) static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { - 0, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29, 3, 25, 4 + 0, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29, 4, 25, 31 }; +#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 0, 14, 2, 4, 6, 8, 12, 10 +}; + +#else + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 0, 13, 14, 15, 16, 17, 12, 18 +}; + +#endif + /* --------------------------------------------------------------------- */ /* Instrucion forms */ /* --------------------------------------------------------------------- */ @@ -74,21 +88,23 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define S(s) (reg_map[s] << 21) #define T(t) (reg_map[t] << 16) #define D(d) (reg_map[d] << 11) +#define FT(t) (freg_map[t] << 16) +#define FS(s) (freg_map[s] << 11) +#define FD(d) (freg_map[d] << 6) /* Absolute registers. */ #define SA(s) ((s) << 21) #define TA(t) ((t) << 16) #define DA(d) ((d) << 11) -#define FT(t) ((t) << 16) -#define FS(s) ((s) << 11) -#define FD(d) ((d) << 6) #define IMM(imm) ((imm) & 0xffff) #define SH_IMM(imm) ((imm) << 6) #define DR(dr) (reg_map[dr]) +#define FR(dr) (freg_map[dr]) #define HI(opcode) ((opcode) << 26) #define LO(opcode) (opcode) /* S = (16 << 21) D = (17 << 21) */ #define FMT_S (16 << 21) +#define FMT_D (17 << 21) #define ABS_S (HI(17) | FMT_S | LO(5)) #define ADD_S (HI(17) | FMT_S | LO(0)) @@ -153,6 +169,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define OR (HI(0) | LO(37)) #define ORI (HI(13)) #define SD (HI(63)) +#define SDC1 (HI(61)) #define SLT (HI(0) | LO(42)) #define SLTI (HI(10)) #define SLTIU (HI(11)) @@ -166,6 +183,7 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = { #define SUB_S (HI(17) | FMT_S | LO(1)) #define SUBU (HI(0) | LO(35)) #define SW (HI(43)) +#define SWC1 (HI(57)) #define TRUNC_W_S (HI(17) | FMT_S | LO(13)) #define XOR (HI(0) | LO(38)) #define XORI (HI(14)) @@ -498,12 +516,13 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) { + sljit_sw fir = 0; + switch (feature_type) { case SLJIT_HAS_FPU: #ifdef SLJIT_IS_FPU_AVAILABLE return SLJIT_IS_FPU_AVAILABLE; #elif defined(__GNUC__) - sljit_sw fir; asm ("cfc1 %0, $0" : "=r"(fir)); return (fir >> 22) & 0x1; #else @@ -517,7 +536,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #endif default: - return 0; + return fir; } } @@ -539,21 +558,20 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #define MEM_MASK 0x1f -#define WRITE_BACK 0x00020 -#define ARG_TEST 0x00040 -#define ALT_KEEP_CACHE 0x00080 -#define CUMULATIVE_OP 0x00100 -#define LOGICAL_OP 0x00200 -#define IMM_OP 0x00400 -#define SRC2_IMM 0x00800 +#define ARG_TEST 0x00020 +#define ALT_KEEP_CACHE 0x00040 +#define CUMULATIVE_OP 0x00080 +#define LOGICAL_OP 0x00100 +#define IMM_OP 0x00200 +#define SRC2_IMM 0x00400 -#define UNUSED_DEST 0x01000 -#define REG_DEST 0x02000 -#define REG1_SOURCE 0x04000 -#define REG2_SOURCE 0x08000 -#define SLOW_SRC1 0x10000 -#define SLOW_SRC2 0x20000 -#define SLOW_DEST 0x40000 +#define UNUSED_DEST 0x00800 +#define REG_DEST 0x01000 +#define REG1_SOURCE 0x02000 +#define REG2_SOURCE 0x04000 +#define SLOW_SRC1 0x08000 +#define SLOW_SRC2 0x10000 +#define SLOW_DEST 0x20000 #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) #define STACK_STORE SW @@ -563,6 +581,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #define STACK_LOAD LD #endif +static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw); + #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) #include "sljitNativeMIPS_32.c" #else @@ -570,15 +590,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #endif SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { sljit_ins base; - sljit_s32 i, tmp, offs; + sljit_s32 args, i, tmp, offs; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET; #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) @@ -592,16 +612,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi /* Frequent case. */ FAIL_IF(push_inst(compiler, ADDIU_W | S(SLJIT_SP) | T(SLJIT_SP) | IMM(-local_size), DR(SLJIT_SP))); base = S(SLJIT_SP); + offs = local_size - (sljit_sw)sizeof(sljit_sw); } else { - FAIL_IF(load_immediate(compiler, DR(TMP_REG1), local_size)); + FAIL_IF(load_immediate(compiler, DR(OTHER_FLAG), local_size)); FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_SP) | TA(0) | D(TMP_REG2), DR(TMP_REG2))); - FAIL_IF(push_inst(compiler, SUBU_W | S(SLJIT_SP) | T(TMP_REG1) | D(SLJIT_SP), DR(SLJIT_SP))); + FAIL_IF(push_inst(compiler, SUBU_W | S(SLJIT_SP) | T(OTHER_FLAG) | D(SLJIT_SP), DR(SLJIT_SP))); base = S(TMP_REG2); local_size = 0; + offs = -(sljit_sw)sizeof(sljit_sw); } - offs = local_size - (sljit_sw)(sizeof(sljit_sw)); FAIL_IF(push_inst(compiler, STACK_STORE | base | TA(RETURN_ADDR_REG) | IMM(offs), MOVABLE_INS)); tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; @@ -615,6 +636,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi FAIL_IF(push_inst(compiler, STACK_STORE | base | T(i) | IMM(offs), MOVABLE_INS)); } + args = get_arg_count(arg_types); + if (args >= 1) FAIL_IF(push_inst(compiler, ADDU_W | SA(4) | TA(0) | D(SLJIT_S0), DR(SLJIT_S0))); if (args >= 2) @@ -626,12 +649,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET; #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) @@ -733,7 +756,7 @@ static sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32 flag { SLJIT_ASSERT(arg & SLJIT_MEM); - if ((!(flags & WRITE_BACK) || !(arg & REG_MASK)) && !(arg & OFFS_REG_MASK) && argw <= SIMM_MAX && argw >= SIMM_MIN) { + if (!(arg & OFFS_REG_MASK) && argw <= SIMM_MAX && argw >= SIMM_MIN) { /* Works for both absoulte and relative addresses. */ if (SLJIT_UNLIKELY(flags & ARG_TEST)) return 1; @@ -783,19 +806,14 @@ static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sl if ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) { tmp_ar = reg_ar; delay_slot = reg_ar; - } else { + } + else { tmp_ar = DR(TMP_REG1); delay_slot = MOVABLE_INS; } base = arg & REG_MASK; if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { - if (SLJIT_UNLIKELY(flags & WRITE_BACK)) { - SLJIT_ASSERT(argw == 0); - FAIL_IF(push_inst(compiler, ADDU_W | S(base) | T(OFFS_REG(arg)) | D(base), DR(base))); - return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | S(base) | TA(reg_ar), delay_slot); - } - argw &= 0x3; /* Using the cache. */ @@ -832,29 +850,6 @@ static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sl return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | SA(tmp_ar) | TA(reg_ar), delay_slot); } - if (SLJIT_UNLIKELY(flags & WRITE_BACK) && base) { - if (argw <= SIMM_MAX && argw >= SIMM_MIN) { - if (argw) - FAIL_IF(push_inst(compiler, ADDIU_W | S(base) | T(base) | IMM(argw), DR(base))); - } - else { - if (compiler->cache_arg == SLJIT_MEM && argw - compiler->cache_argw <= SIMM_MAX && argw - compiler->cache_argw >= SIMM_MIN) { - if (argw != compiler->cache_argw) { - FAIL_IF(push_inst(compiler, ADDIU_W | S(TMP_REG3) | T(TMP_REG3) | IMM(argw - compiler->cache_argw), DR(TMP_REG3))); - compiler->cache_argw = argw; - } - FAIL_IF(push_inst(compiler, ADDU_W | S(base) | T(TMP_REG3) | D(base), DR(base))); - } - else { - compiler->cache_arg = SLJIT_MEM; - compiler->cache_argw = argw; - FAIL_IF(load_immediate(compiler, DR(TMP_REG3), argw)); - FAIL_IF(push_inst(compiler, ADDU_W | S(base) | T(TMP_REG3) | D(base), DR(base))); - } - } - return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | S(base) | TA(reg_ar), delay_slot); - } - if (compiler->cache_arg == arg && argw - compiler->cache_argw <= SIMM_MAX && argw - compiler->cache_argw >= SIMM_MIN) { if (argw != compiler->cache_argw) { FAIL_IF(push_inst(compiler, ADDIU_W | S(TMP_REG3) | T(TMP_REG3) | IMM(argw - compiler->cache_argw), DR(TMP_REG3))); @@ -888,11 +883,39 @@ static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sl static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw) { + sljit_s32 tmp_ar, base, delay_slot; + if (getput_arg_fast(compiler, flags, reg_ar, arg, argw)) return compiler->error; - compiler->cache_arg = 0; - compiler->cache_argw = 0; - return getput_arg(compiler, flags, reg_ar, arg, argw, 0, 0); + + if ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) { + tmp_ar = reg_ar; + delay_slot = reg_ar; + } + else { + tmp_ar = DR(TMP_REG1); + delay_slot = MOVABLE_INS; + } + base = arg & REG_MASK; + + if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { + argw &= 0x3; + + if (SLJIT_UNLIKELY(argw)) { + FAIL_IF(push_inst(compiler, SLL_W | T(OFFS_REG(arg)) | DA(tmp_ar) | SH_IMM(argw), tmp_ar)); + FAIL_IF(push_inst(compiler, ADDU_W | S(base) | TA(tmp_ar) | DA(tmp_ar), tmp_ar)); + } + else + FAIL_IF(push_inst(compiler, ADDU_W | S(base) | T(OFFS_REG(arg)) | DA(tmp_ar), tmp_ar)); + return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | SA(tmp_ar) | TA(reg_ar), delay_slot); + } + + FAIL_IF(load_immediate(compiler, tmp_ar, argw)); + + if (base != 0) + FAIL_IF(push_inst(compiler, ADDU_W | S(base) | TA(tmp_ar) | DA(tmp_ar), tmp_ar)); + + return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | SA(tmp_ar) | TA(reg_ar), delay_slot); } static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w) @@ -928,7 +951,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 else if (FAST_IS_REG(dst)) { dst_r = dst; flags |= REG_DEST; - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) sugg_src2_r = dst_r; } else if ((dst & SLJIT_MEM) && !getput_arg_fast(compiler, flags | ARG_TEST, DR(TMP_REG1), dst, dstw)) @@ -982,7 +1005,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 if (FAST_IS_REG(src2)) { src2_r = src2; flags |= REG2_SOURCE; - if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOV_P) dst_r = src2_r; } else if (src2 & SLJIT_IMM) { @@ -993,7 +1016,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 } else { src2_r = 0; - if ((op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) && (dst & SLJIT_MEM)) + if ((op >= SLJIT_MOV && op <= SLJIT_MOV_P) && (dst & SLJIT_MEM)) dst_r = 0; } } @@ -1132,11 +1155,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile } #if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64) - if ((op & SLJIT_I32_OP) && GET_OPCODE(op) >= SLJIT_NOT) { + if ((op & SLJIT_I32_OP) && GET_OPCODE(op) >= SLJIT_NOT) flags |= INT_DATA | SIGNED_DATA; - if (src & SLJIT_IMM) - srcw = (sljit_s32)srcw; - } #endif switch (GET_OPCODE(op)) { @@ -1170,36 +1190,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile case SLJIT_MOV_S16: return emit_op(compiler, SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); - case SLJIT_MOVU: - case SLJIT_MOVU_P: - return emit_op(compiler, SLJIT_MOV, WORD_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - - case SLJIT_MOVU_U32: -#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) - return emit_op(compiler, SLJIT_MOV_U32, INT_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); -#else - return emit_op(compiler, SLJIT_MOV_U32, INT_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u32)srcw : srcw); -#endif - - case SLJIT_MOVU_S32: -#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) - return emit_op(compiler, SLJIT_MOV_S32, INT_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); -#else - return emit_op(compiler, SLJIT_MOV_S32, INT_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s32)srcw : srcw); -#endif - - case SLJIT_MOVU_U8: - return emit_op(compiler, SLJIT_MOV_U8, BYTE_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8)srcw : srcw); - - case SLJIT_MOVU_S8: - return emit_op(compiler, SLJIT_MOV_S8, BYTE_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8)srcw : srcw); - - case SLJIT_MOVU_U16: - return emit_op(compiler, SLJIT_MOV_U16, HALF_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16)srcw : srcw); - - case SLJIT_MOVU_S16: - return emit_op(compiler, SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); - case SLJIT_NOT: return emit_op(compiler, op, flags, dst, dstw, TMP_REG1, 0, src, srcw); @@ -1210,6 +1200,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile return emit_op(compiler, op, flags, dst, dstw, TMP_REG1, 0, src, srcw); } + SLJIT_UNREACHABLE(); return SLJIT_SUCCESS; #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) @@ -1281,6 +1272,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile return emit_op(compiler, op, flags | IMM_OP, dst, dstw, src1, src1w, src2, src2w); } + SLJIT_UNREACHABLE(); return SLJIT_SUCCESS; #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) @@ -1297,7 +1289,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg << 1; + return FR(reg); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -1327,11 +1319,9 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp #endif if (src & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src, srcw, dst, dstw)); src = TMP_FREG1; } - else - src <<= 1; FAIL_IF(push_inst(compiler, (TRUNC_W_S ^ (flags >> 19)) | FMT(op) | FS(src) | FD(TMP_FREG1), MOVABLE_INS)); @@ -1339,7 +1329,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp return push_inst(compiler, MFC1 | flags | T(dst) | FS(TMP_FREG1), MOVABLE_INS); /* Store the integer value from a VFP register. */ - return emit_op_mem2(compiler, flags ? DOUBLE_DATA : SINGLE_DATA, TMP_FREG1, dst, dstw, 0, 0); + return emit_op_mem2(compiler, flags ? DOUBLE_DATA : SINGLE_DATA, FR(TMP_FREG1), dst, dstw, 0, 0); #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) # undef is_long @@ -1356,13 +1346,13 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp sljit_s32 flags = (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_SW) << 21; #endif - sljit_s32 dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1; + sljit_s32 dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, MTC1 | flags | T(src) | FS(TMP_FREG1), MOVABLE_INS)); else if (src & SLJIT_MEM) { /* Load the integer value into a VFP register. */ - FAIL_IF(emit_op_mem2(compiler, ((flags) ? DOUBLE_DATA : SINGLE_DATA) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem2(compiler, ((flags) ? DOUBLE_DATA : SINGLE_DATA) | LOAD_DATA, FR(TMP_FREG1), src, srcw, dst, dstw)); } else { #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -1376,7 +1366,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp FAIL_IF(push_inst(compiler, CVT_S_S | flags | (4 << 21) | (((op & SLJIT_F32_OP) ^ SLJIT_F32_OP) >> 8) | FS(TMP_FREG1) | FD(dst_r), MOVABLE_INS)); if (dst & SLJIT_MEM) - return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); + return emit_op_mem2(compiler, FLOAT_DATA(op), FR(TMP_FREG1), dst, dstw, 0, 0); return SLJIT_SUCCESS; #if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) @@ -1391,18 +1381,14 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compile sljit_ins inst; if (src1 & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); + FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src1, src1w, src2, src2w)); src1 = TMP_FREG1; } - else - src1 <<= 1; if (src2 & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); + FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG2), src2, src2w, 0, 0)); src2 = TMP_FREG2; } - else - src2 <<= 1; switch (GET_FLAG_TYPE(op)) { case SLJIT_EQUAL_F64: @@ -1442,14 +1428,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) op ^= SLJIT_F32_OP; - dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1; + dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(dst_r), src, srcw, dst, dstw)); src = dst_r; } - else - src <<= 1; switch (GET_OPCODE(op)) { case SLJIT_MOV_F64: @@ -1473,7 +1457,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil } if (dst & SLJIT_MEM) - return emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0); + return emit_op_mem2(compiler, FLOAT_DATA(op), FR(dst_r), dst, dstw, 0, 0); return SLJIT_SUCCESS; } @@ -1493,42 +1477,38 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil compiler->cache_arg = 0; compiler->cache_argw = 0; - dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2; + dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG2; if (src1 & SLJIT_MEM) { - if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { + if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src1, src1w)) { FAIL_IF(compiler->error); src1 = TMP_FREG1; } else flags |= SLOW_SRC1; } - else - src1 <<= 1; if (src2 & SLJIT_MEM) { - if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { + if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG2), src2, src2w)) { FAIL_IF(compiler->error); src2 = TMP_FREG2; } else flags |= SLOW_SRC2; } - else - src2 <<= 1; if ((flags & (SLOW_SRC1 | SLOW_SRC2)) == (SLOW_SRC1 | SLOW_SRC2)) { if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) { - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, src1, src1w)); - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG2), src2, src2w, src1, src1w)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src1, src1w, dst, dstw)); } else { - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src1, src1w, src2, src2w)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG2), src2, src2w, dst, dstw)); } } else if (flags & SLOW_SRC1) - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG1), src1, src1w, dst, dstw)); else if (flags & SLOW_SRC2) - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); + FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, FR(TMP_FREG2), src2, src2w, dst, dstw)); if (flags & SLOW_SRC1) src1 = TMP_FREG1; @@ -1554,7 +1534,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil } if (dst_r == TMP_FREG2) - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0)); + FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), FR(TMP_FREG2), dst, dstw, 0, 0)); return SLJIT_SUCCESS; } @@ -1584,10 +1564,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, ADDU_W | S(src) | TA(0) | DA(RETURN_ADDR_REG), RETURN_ADDR_REG)); - else if (src & SLJIT_MEM) + else FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, RETURN_ADDR_REG, src, srcw)); - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, RETURN_ADDR_REG, srcw)); FAIL_IF(push_inst(compiler, JR | SA(RETURN_ADDR_REG), UNMOVABLE_INS)); return push_inst(compiler, NOP, UNMOVABLE_INS); @@ -1704,19 +1682,16 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile PTR_FAIL_IF(push_inst(compiler, inst, UNMOVABLE_INS)); PTR_FAIL_IF(emit_const(compiler, TMP_REG2, 0)); - if (type <= SLJIT_JUMP) { + + if (type <= SLJIT_JUMP) PTR_FAIL_IF(push_inst(compiler, JR | S(TMP_REG2), UNMOVABLE_INS)); - jump->addr = compiler->size; - PTR_FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); - } else { - SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); - /* Cannot be optimized out if type is >= CALL0. */ - jump->flags |= IS_JAL | (type >= SLJIT_CALL0 ? IS_CALL : 0); + else { + jump->flags |= IS_JAL; PTR_FAIL_IF(push_inst(compiler, JALR | S(TMP_REG2) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); - jump->addr = compiler->size; - /* A NOP if type < CALL1. */ - PTR_FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), UNMOVABLE_INS)); } + + jump->addr = compiler->size; + PTR_FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); return jump; } @@ -1872,41 +1847,12 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { - sljit_s32 src_r = TMP_REG2; struct sljit_jump *jump = NULL; CHECK_ERROR(); CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - if (FAST_IS_REG(src)) { - if (DR(src) != 4) - src_r = src; - else - FAIL_IF(push_inst(compiler, ADDU_W | S(src) | TA(0) | D(TMP_REG2), DR(TMP_REG2))); - } - - if (type >= SLJIT_CALL0) { - SLJIT_ASSERT(DR(PIC_ADDR_REG) == 25 && PIC_ADDR_REG == TMP_REG2); - if (src & (SLJIT_IMM | SLJIT_MEM)) { - if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, DR(PIC_ADDR_REG), srcw)); - else { - SLJIT_ASSERT(src_r == TMP_REG2 && (src & SLJIT_MEM)); - FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); - } - FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); - /* We need an extra instruction in any case. */ - return push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), UNMOVABLE_INS); - } - - /* Register input. */ - if (type >= SLJIT_CALL1) - FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), 4)); - FAIL_IF(push_inst(compiler, JALR | S(src_r) | DA(RETURN_ADDR_REG), UNMOVABLE_INS)); - return push_inst(compiler, ADDU_W | S(src_r) | TA(0) | D(PIC_ADDR_REG), UNMOVABLE_INS); - } - if (src & SLJIT_IMM) { jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF(!jump); @@ -1917,11 +1863,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi jump->flags |= IS_MOVABLE; FAIL_IF(emit_const(compiler, TMP_REG2, 0)); + src = TMP_REG2; + } + else if (src & SLJIT_MEM) { + FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, DR(TMP_REG2), src, srcw)); + src = TMP_REG2; } - else if (src & SLJIT_MEM) - FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); - FAIL_IF(push_inst(compiler, JR | S(src_r), UNMOVABLE_INS)); + FAIL_IF(push_inst(compiler, JR | S(src), UNMOVABLE_INS)); if (jump) jump->addr = compiler->size; FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); diff --git a/pcre/sljit/sljitNativePPC_64.c b/pcre/sljit/sljitNativePPC_64.c index 5366c30d90c..706b2ba20b5 100644 --- a/pcre/sljit/sljitNativePPC_64.c +++ b/pcre/sljit/sljitNativePPC_64.c @@ -413,6 +413,61 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl return SLJIT_SUCCESS; } +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src) +{ + sljit_s32 arg_count = 0; + sljit_s32 word_arg_count = 0; + sljit_s32 types = 0; + sljit_s32 reg = 0; + + if (src) + reg = *src & REG_MASK; + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + case SLJIT_ARG_TYPE_F64: + arg_count++; + break; + default: + arg_count++; + word_arg_count++; + + if (arg_count != word_arg_count && arg_count == reg) { + FAIL_IF(push_inst(compiler, OR | S(reg) | A(TMP_CALL_REG) | B(reg))); + *src = TMP_CALL_REG; + } + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + case SLJIT_ARG_TYPE_F64: + arg_count--; + break; + default: + if (arg_count != word_arg_count) + FAIL_IF(push_inst(compiler, OR | S(word_arg_count) | A(arg_count) | B(word_arg_count))); + + arg_count--; + word_arg_count--; + break; + } + + types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + static SLJIT_INLINE sljit_s32 emit_const(struct sljit_compiler *compiler, sljit_s32 reg, sljit_sw init_value) { FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(init_value >> 48))); diff --git a/pcre/sljit/sljitNativePPC_common.c b/pcre/sljit/sljitNativePPC_common.c index 775c708f2f9..5ef4ac96c4a 100644 --- a/pcre/sljit/sljitNativePPC_common.c +++ b/pcre/sljit/sljitNativePPC_common.c @@ -93,20 +93,23 @@ static void ppc_cache_flush(sljit_ins *from, sljit_ins *to) #define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2) #define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) -#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4) -#define TMP_ZERO (SLJIT_NUMBER_OF_REGISTERS + 5) +#define TMP_ZERO (SLJIT_NUMBER_OF_REGISTERS + 4) #if (defined SLJIT_PASS_ENTRY_ADDR_TO_CALL && SLJIT_PASS_ENTRY_ADDR_TO_CALL) -#define TMP_CALL_REG (SLJIT_NUMBER_OF_REGISTERS + 6) +#define TMP_CALL_REG (SLJIT_NUMBER_OF_REGISTERS + 5) #else #define TMP_CALL_REG TMP_REG2 #endif -#define TMP_FREG1 (0) -#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2) static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 7] = { - 0, 3, 4, 5, 6, 7, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 8, 9, 10, 31, 12 + 0, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 9, 10, 31, 12 +}; + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 1, 2, 3, 4, 5, 6, 0, 7 }; /* --------------------------------------------------------------------- */ @@ -117,11 +120,11 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 7] = { #define A(a) (reg_map[a] << 16) #define B(b) (reg_map[b] << 11) #define C(c) (reg_map[c] << 6) -#define FD(fd) ((fd) << 21) -#define FS(fs) ((fs) << 21) -#define FA(fa) ((fa) << 16) -#define FB(fb) ((fb) << 11) -#define FC(fc) ((fc) << 6) +#define FD(fd) (freg_map[fd] << 21) +#define FS(fs) (freg_map[fs] << 21) +#define FA(fa) (freg_map[fa] << 16) +#define FB(fb) (freg_map[fb] << 11) +#define FC(fc) (freg_map[fc] << 6) #define IMM(imm) ((imm) & 0xffff) #define CRD(d) ((d) << 21) @@ -536,7 +539,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) return 1; #endif - case SLJIT_HAS_PRE_UPDATE: case SLJIT_HAS_CLZ: return 1; @@ -554,46 +556,40 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) /* Creates an index in data_transfer_insts array. */ #define LOAD_DATA 0x01 #define INDEXED 0x02 -#define WRITE_BACK 0x04 +#define SIGNED_DATA 0x04 + #define WORD_DATA 0x00 #define BYTE_DATA 0x08 #define HALF_DATA 0x10 #define INT_DATA 0x18 -#define SIGNED_DATA 0x20 /* Separates integer and floating point registers */ -#define GPR_REG 0x3f -#define DOUBLE_DATA 0x40 +#define GPR_REG 0x1f +#define DOUBLE_DATA 0x20 #define MEM_MASK 0x7f /* Other inp_flags. */ -#define ARG_TEST 0x000100 /* Integer opertion and set flags -> requires exts on 64 bit systems. */ -#define ALT_SIGN_EXT 0x000200 +#define ALT_SIGN_EXT 0x000100 /* This flag affects the RC() and OERC() macros. */ #define ALT_SET_FLAGS 0x000400 -#define ALT_KEEP_CACHE 0x000800 -#define ALT_FORM1 0x010000 -#define ALT_FORM2 0x020000 -#define ALT_FORM3 0x040000 -#define ALT_FORM4 0x080000 -#define ALT_FORM5 0x100000 +#define ALT_FORM1 0x001000 +#define ALT_FORM2 0x002000 +#define ALT_FORM3 0x004000 +#define ALT_FORM4 0x008000 +#define ALT_FORM5 0x010000 /* Source and destination is register. */ #define REG_DEST 0x000001 #define REG1_SOURCE 0x000002 #define REG2_SOURCE 0x000004 -/* getput_arg_fast returned true. */ -#define FAST_DEST 0x000008 -/* Multiple instructions are required. */ -#define SLOW_DEST 0x000010 /* -ALT_SIGN_EXT 0x000200 -ALT_SET_FLAGS 0x000400 -ALT_FORM1 0x010000 +ALT_SIGN_EXT 0x000100 +ALT_SET_FLAGS 0x000200 +ALT_FORM1 0x001000 ... -ALT_FORM5 0x100000 */ +ALT_FORM5 0x010000 */ #if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) #include "sljitNativePPC_32.c" @@ -610,14 +606,14 @@ ALT_FORM5 0x100000 */ #endif SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 i, tmp, offs; + sljit_s32 args, i, tmp, offs; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); FAIL_IF(push_inst(compiler, MFLR | D(0))); offs = -(sljit_s32)(sizeof(sljit_sw)); @@ -643,6 +639,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi #endif FAIL_IF(push_inst(compiler, ADDI | D(TMP_ZERO) | A(0) | 0)); + + args = get_arg_count(arg_types); + if (args >= 1) FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(SLJIT_S0) | B(SLJIT_R0))); if (args >= 2) @@ -674,12 +673,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET; compiler->local_size = (local_size + 15) & ~0xf; @@ -738,17 +737,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp /* Operators */ /* --------------------------------------------------------------------- */ -/* i/x - immediate/indexed form - n/w - no write-back / write-back (1 bit) - s/l - store/load (1 bit) +/* s/l - store/load (1 bit) + i/x - immediate/indexed form u/s - signed/unsigned (1 bit) w/b/h/i - word/byte/half/int allowed (2 bit) - It contans 32 items, but not all are different. */ + + Some opcodes are repeated (e.g. store signed / unsigned byte is the same instruction). */ /* 64 bit only: [reg+imm] must be aligned to 4 bytes. */ +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) #define INT_ALIGNED 0x10000 -/* 64-bit only: there is no lwau instruction. */ -#define UPDATE_REQ 0x20000 +#endif #if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) #define ARCH_32_64(a, b) a @@ -757,397 +756,217 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp #else #define ARCH_32_64(a, b) b #define INST_CODE_AND_DST(inst, flags, reg) \ - (((inst) & ~(INT_ALIGNED | UPDATE_REQ)) | (((flags) & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg))) + (((inst) & ~INT_ALIGNED) | (((flags) & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg))) #endif -static const sljit_ins data_transfer_insts[64 + 8] = { +static const sljit_ins data_transfer_insts[64 + 16] = { -/* -------- Unsigned -------- */ +/* -------- Integer -------- */ /* Word. */ -/* u w n i s */ ARCH_32_64(HI(36) /* stw */, HI(62) | INT_ALIGNED | 0x0 /* std */), -/* u w n i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x0 /* ld */), -/* u w n x s */ ARCH_32_64(HI(31) | LO(151) /* stwx */, HI(31) | LO(149) /* stdx */), -/* u w n x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(21) /* ldx */), +/* w u i s */ ARCH_32_64(HI(36) /* stw */, HI(62) | INT_ALIGNED | 0x0 /* std */), +/* w u i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x0 /* ld */), +/* w u x s */ ARCH_32_64(HI(31) | LO(151) /* stwx */, HI(31) | LO(149) /* stdx */), +/* w u x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(21) /* ldx */), -/* u w w i s */ ARCH_32_64(HI(37) /* stwu */, HI(62) | INT_ALIGNED | 0x1 /* stdu */), -/* u w w i l */ ARCH_32_64(HI(33) /* lwzu */, HI(58) | INT_ALIGNED | 0x1 /* ldu */), -/* u w w x s */ ARCH_32_64(HI(31) | LO(183) /* stwux */, HI(31) | LO(181) /* stdux */), -/* u w w x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(53) /* ldux */), +/* w s i s */ ARCH_32_64(HI(36) /* stw */, HI(62) | INT_ALIGNED | 0x0 /* std */), +/* w s i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x0 /* ld */), +/* w s x s */ ARCH_32_64(HI(31) | LO(151) /* stwx */, HI(31) | LO(149) /* stdx */), +/* w s x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(21) /* ldx */), /* Byte. */ -/* u b n i s */ HI(38) /* stb */, -/* u b n i l */ HI(34) /* lbz */, -/* u b n x s */ HI(31) | LO(215) /* stbx */, -/* u b n x l */ HI(31) | LO(87) /* lbzx */, +/* b u i s */ HI(38) /* stb */, +/* b u i l */ HI(34) /* lbz */, +/* b u x s */ HI(31) | LO(215) /* stbx */, +/* b u x l */ HI(31) | LO(87) /* lbzx */, -/* u b w i s */ HI(39) /* stbu */, -/* u b w i l */ HI(35) /* lbzu */, -/* u b w x s */ HI(31) | LO(247) /* stbux */, -/* u b w x l */ HI(31) | LO(119) /* lbzux */, +/* b s i s */ HI(38) /* stb */, +/* b s i l */ HI(34) /* lbz */ /* EXTS_REQ */, +/* b s x s */ HI(31) | LO(215) /* stbx */, +/* b s x l */ HI(31) | LO(87) /* lbzx */ /* EXTS_REQ */, /* Half. */ -/* u h n i s */ HI(44) /* sth */, -/* u h n i l */ HI(40) /* lhz */, -/* u h n x s */ HI(31) | LO(407) /* sthx */, -/* u h n x l */ HI(31) | LO(279) /* lhzx */, +/* h u i s */ HI(44) /* sth */, +/* h u i l */ HI(40) /* lhz */, +/* h u x s */ HI(31) | LO(407) /* sthx */, +/* h u x l */ HI(31) | LO(279) /* lhzx */, -/* u h w i s */ HI(45) /* sthu */, -/* u h w i l */ HI(41) /* lhzu */, -/* u h w x s */ HI(31) | LO(439) /* sthux */, -/* u h w x l */ HI(31) | LO(311) /* lhzux */, +/* h s i s */ HI(44) /* sth */, +/* h s i l */ HI(42) /* lha */, +/* h s x s */ HI(31) | LO(407) /* sthx */, +/* h s x l */ HI(31) | LO(343) /* lhax */, /* Int. */ -/* u i n i s */ HI(36) /* stw */, -/* u i n i l */ HI(32) /* lwz */, -/* u i n x s */ HI(31) | LO(151) /* stwx */, -/* u i n x l */ HI(31) | LO(23) /* lwzx */, +/* i u i s */ HI(36) /* stw */, +/* i u i l */ HI(32) /* lwz */, +/* i u x s */ HI(31) | LO(151) /* stwx */, +/* i u x l */ HI(31) | LO(23) /* lwzx */, -/* u i w i s */ HI(37) /* stwu */, -/* u i w i l */ HI(33) /* lwzu */, -/* u i w x s */ HI(31) | LO(183) /* stwux */, -/* u i w x l */ HI(31) | LO(55) /* lwzux */, +/* i s i s */ HI(36) /* stw */, +/* i s i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x2 /* lwa */), +/* i s x s */ HI(31) | LO(151) /* stwx */, +/* i s x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(341) /* lwax */), -/* -------- Signed -------- */ +/* -------- Floating point -------- */ + +/* d i s */ HI(54) /* stfd */, +/* d i l */ HI(50) /* lfd */, +/* d x s */ HI(31) | LO(727) /* stfdx */, +/* d x l */ HI(31) | LO(599) /* lfdx */, + +/* s i s */ HI(52) /* stfs */, +/* s i l */ HI(48) /* lfs */, +/* s x s */ HI(31) | LO(663) /* stfsx */, +/* s x l */ HI(31) | LO(535) /* lfsx */, +}; + +static const sljit_ins updated_data_transfer_insts[64] = { + +/* -------- Integer -------- */ /* Word. */ -/* s w n i s */ ARCH_32_64(HI(36) /* stw */, HI(62) | INT_ALIGNED | 0x0 /* std */), -/* s w n i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x0 /* ld */), -/* s w n x s */ ARCH_32_64(HI(31) | LO(151) /* stwx */, HI(31) | LO(149) /* stdx */), -/* s w n x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(21) /* ldx */), +/* w u i s */ ARCH_32_64(HI(37) /* stwu */, HI(62) | INT_ALIGNED | 0x1 /* stdu */), +/* w u i l */ ARCH_32_64(HI(33) /* lwzu */, HI(58) | INT_ALIGNED | 0x1 /* ldu */), +/* w u x s */ ARCH_32_64(HI(31) | LO(183) /* stwux */, HI(31) | LO(181) /* stdux */), +/* w u x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(53) /* ldux */), -/* s w w i s */ ARCH_32_64(HI(37) /* stwu */, HI(62) | INT_ALIGNED | 0x1 /* stdu */), -/* s w w i l */ ARCH_32_64(HI(33) /* lwzu */, HI(58) | INT_ALIGNED | 0x1 /* ldu */), -/* s w w x s */ ARCH_32_64(HI(31) | LO(183) /* stwux */, HI(31) | LO(181) /* stdux */), -/* s w w x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(53) /* ldux */), +/* w s i s */ ARCH_32_64(HI(37) /* stwu */, HI(62) | INT_ALIGNED | 0x1 /* stdu */), +/* w s i l */ ARCH_32_64(HI(33) /* lwzu */, HI(58) | INT_ALIGNED | 0x1 /* ldu */), +/* w s x s */ ARCH_32_64(HI(31) | LO(183) /* stwux */, HI(31) | LO(181) /* stdux */), +/* w s x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(53) /* ldux */), /* Byte. */ -/* s b n i s */ HI(38) /* stb */, -/* s b n i l */ HI(34) /* lbz */ /* EXTS_REQ */, -/* s b n x s */ HI(31) | LO(215) /* stbx */, -/* s b n x l */ HI(31) | LO(87) /* lbzx */ /* EXTS_REQ */, +/* b u i s */ HI(39) /* stbu */, +/* b u i l */ HI(35) /* lbzu */, +/* b u x s */ HI(31) | LO(247) /* stbux */, +/* b u x l */ HI(31) | LO(119) /* lbzux */, -/* s b w i s */ HI(39) /* stbu */, -/* s b w i l */ HI(35) /* lbzu */ /* EXTS_REQ */, -/* s b w x s */ HI(31) | LO(247) /* stbux */, -/* s b w x l */ HI(31) | LO(119) /* lbzux */ /* EXTS_REQ */, +/* b s i s */ HI(39) /* stbu */, +/* b s i l */ 0 /* no such instruction */, +/* b s x s */ HI(31) | LO(247) /* stbux */, +/* b s x l */ 0 /* no such instruction */, /* Half. */ -/* s h n i s */ HI(44) /* sth */, -/* s h n i l */ HI(42) /* lha */, -/* s h n x s */ HI(31) | LO(407) /* sthx */, -/* s h n x l */ HI(31) | LO(343) /* lhax */, +/* h u i s */ HI(45) /* sthu */, +/* h u i l */ HI(41) /* lhzu */, +/* h u x s */ HI(31) | LO(439) /* sthux */, +/* h u x l */ HI(31) | LO(311) /* lhzux */, -/* s h w i s */ HI(45) /* sthu */, -/* s h w i l */ HI(43) /* lhau */, -/* s h w x s */ HI(31) | LO(439) /* sthux */, -/* s h w x l */ HI(31) | LO(375) /* lhaux */, +/* h s i s */ HI(45) /* sthu */, +/* h s i l */ HI(43) /* lhau */, +/* h s x s */ HI(31) | LO(439) /* sthux */, +/* h s x l */ HI(31) | LO(375) /* lhaux */, /* Int. */ -/* s i n i s */ HI(36) /* stw */, -/* s i n i l */ ARCH_32_64(HI(32) /* lwz */, HI(58) | INT_ALIGNED | 0x2 /* lwa */), -/* s i n x s */ HI(31) | LO(151) /* stwx */, -/* s i n x l */ ARCH_32_64(HI(31) | LO(23) /* lwzx */, HI(31) | LO(341) /* lwax */), +/* i u i s */ HI(37) /* stwu */, +/* i u i l */ HI(33) /* lwzu */, +/* i u x s */ HI(31) | LO(183) /* stwux */, +/* i u x l */ HI(31) | LO(55) /* lwzux */, -/* s i w i s */ HI(37) /* stwu */, -/* s i w i l */ ARCH_32_64(HI(33) /* lwzu */, HI(58) | INT_ALIGNED | UPDATE_REQ | 0x2 /* lwa */), -/* s i w x s */ HI(31) | LO(183) /* stwux */, -/* s i w x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(373) /* lwaux */), +/* i s i s */ HI(37) /* stwu */, +/* i s i l */ ARCH_32_64(HI(33) /* lwzu */, 0 /* no such instruction */), +/* i s x s */ HI(31) | LO(183) /* stwux */, +/* i s x l */ ARCH_32_64(HI(31) | LO(55) /* lwzux */, HI(31) | LO(373) /* lwaux */), -/* -------- Double -------- */ +/* -------- Floating point -------- */ -/* d n i s */ HI(54) /* stfd */, -/* d n i l */ HI(50) /* lfd */, -/* d n x s */ HI(31) | LO(727) /* stfdx */, -/* d n x l */ HI(31) | LO(599) /* lfdx */, - -/* s n i s */ HI(52) /* stfs */, -/* s n i l */ HI(48) /* lfs */, -/* s n x s */ HI(31) | LO(663) /* stfsx */, -/* s n x l */ HI(31) | LO(535) /* lfsx */, +/* d i s */ HI(55) /* stfdu */, +/* d i l */ HI(51) /* lfdu */, +/* d x s */ HI(31) | LO(759) /* stfdux */, +/* d x l */ HI(31) | LO(631) /* lfdux */, +/* s i s */ HI(53) /* stfsu */, +/* s i l */ HI(49) /* lfsu */, +/* s x s */ HI(31) | LO(695) /* stfsux */, +/* s x l */ HI(31) | LO(567) /* lfsux */, }; #undef ARCH_32_64 /* Simple cases, (no caching is required). */ -static sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32 inp_flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) +static sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 inp_flags, sljit_s32 reg, + sljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg) { sljit_ins inst; + sljit_s32 offs_reg; + sljit_sw high_short; /* Should work when (arg & REG_MASK) == 0. */ SLJIT_ASSERT(A(0) == 0); SLJIT_ASSERT(arg & SLJIT_MEM); - if (arg & OFFS_REG_MASK) { - if (argw & 0x3) - return 0; - if (inp_flags & ARG_TEST) - return 1; - - inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); - FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(OFFS_REG(arg)))); - return -1; - } - - if (SLJIT_UNLIKELY(!(arg & REG_MASK))) - inp_flags &= ~WRITE_BACK; - -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - inst = data_transfer_insts[inp_flags & MEM_MASK]; - SLJIT_ASSERT((arg & REG_MASK) || !(inst & UPDATE_REQ)); - - if (argw > SIMM_MAX || argw < SIMM_MIN || ((inst & INT_ALIGNED) && (argw & 0x3)) || (inst & UPDATE_REQ)) - return 0; - if (inp_flags & ARG_TEST) - return 1; -#endif - -#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) - if (argw > SIMM_MAX || argw < SIMM_MIN) - return 0; - if (inp_flags & ARG_TEST) - return 1; - - inst = data_transfer_insts[inp_flags & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); -#endif - - FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | IMM(argw))); - return -1; -} - -/* See getput_arg below. - Note: can_cache is called only for binary operators. Those operator always - uses word arguments without write back. */ -static sljit_s32 can_cache(sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw) -{ - sljit_sw high_short, next_high_short; -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - sljit_sw diff; -#endif - - SLJIT_ASSERT((arg & SLJIT_MEM) && (next_arg & SLJIT_MEM)); - - if (arg & OFFS_REG_MASK) - return ((arg & OFFS_REG_MASK) == (next_arg & OFFS_REG_MASK) && (argw & 0x3) == (next_argw & 0x3)); - - if (next_arg & OFFS_REG_MASK) - return 0; - -#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) - high_short = (argw + ((argw & 0x8000) << 1)) & ~0xffff; - next_high_short = (next_argw + ((next_argw & 0x8000) << 1)) & ~0xffff; - return high_short == next_high_short; -#else - if (argw <= 0x7fffffffl && argw >= -0x80000000l) { - high_short = (argw + ((argw & 0x8000) << 1)) & ~0xffff; - next_high_short = (next_argw + ((next_argw & 0x8000) << 1)) & ~0xffff; - if (high_short == next_high_short) - return 1; - } - - diff = argw - next_argw; - if (!(arg & REG_MASK)) - return diff <= SIMM_MAX && diff >= SIMM_MIN; - - if (arg == next_arg && diff <= SIMM_MAX && diff >= SIMM_MIN) - return 1; - - return 0; -#endif -} - -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) -#define ADJUST_CACHED_IMM(imm) \ - if ((inst & INT_ALIGNED) && (imm & 0x3)) { \ - /* Adjust cached value. Fortunately this is really a rare case */ \ - compiler->cache_argw += imm & 0x3; \ - FAIL_IF(push_inst(compiler, ADDI | D(TMP_REG3) | A(TMP_REG3) | (imm & 0x3))); \ - imm &= ~0x3; \ - } -#endif - -/* Emit the necessary instructions. See can_cache above. */ -static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 inp_flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw) -{ - sljit_s32 tmp_r; - sljit_ins inst; - sljit_sw high_short, next_high_short; -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - sljit_sw diff; -#endif - - SLJIT_ASSERT(arg & SLJIT_MEM); - - tmp_r = ((inp_flags & LOAD_DATA) && ((inp_flags) & MEM_MASK) <= GPR_REG) ? reg : TMP_REG1; - /* Special case for "mov reg, [reg, ... ]". */ - if ((arg & REG_MASK) == tmp_r) - tmp_r = TMP_REG1; - if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) { argw &= 0x3; - /* Otherwise getput_arg_fast would capture it. */ - SLJIT_ASSERT(argw); + offs_reg = OFFS_REG(arg); - if ((SLJIT_MEM | (arg & OFFS_REG_MASK)) == compiler->cache_arg && argw == compiler->cache_argw) - tmp_r = TMP_REG3; - else { - if ((arg & OFFS_REG_MASK) == (next_arg & OFFS_REG_MASK) && argw == (next_argw & 0x3)) { - compiler->cache_arg = SLJIT_MEM | (arg & OFFS_REG_MASK); - compiler->cache_argw = argw; - tmp_r = TMP_REG3; - } + if (argw != 0) { #if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) - FAIL_IF(push_inst(compiler, RLWINM | S(OFFS_REG(arg)) | A(tmp_r) | (argw << 11) | ((31 - argw) << 1))); + FAIL_IF(push_inst(compiler, RLWINM | S(OFFS_REG(arg)) | A(tmp_reg) | (argw << 11) | ((31 - argw) << 1))); #else - FAIL_IF(push_inst(compiler, RLDI(tmp_r, OFFS_REG(arg), argw, 63 - argw, 1))); + FAIL_IF(push_inst(compiler, RLDI(tmp_reg, OFFS_REG(arg), argw, 63 - argw, 1))); #endif + offs_reg = tmp_reg; } + inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(tmp_r)); - } - - if (SLJIT_UNLIKELY(!(arg & REG_MASK))) - inp_flags &= ~WRITE_BACK; - - inst = data_transfer_insts[inp_flags & MEM_MASK]; - SLJIT_ASSERT((arg & REG_MASK) || !(inst & UPDATE_REQ)); #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - if (argw <= 0x7fff7fffl && argw >= -0x80000000l - && (!(inst & INT_ALIGNED) || !(argw & 0x3)) && !(inst & UPDATE_REQ)) { + SLJIT_ASSERT(!(inst & INT_ALIGNED)); +#endif + + return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(offs_reg)); + } + + inst = data_transfer_insts[inp_flags & MEM_MASK]; + arg &= REG_MASK; + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + if ((inst & INT_ALIGNED) && (argw & 0x3) != 0) { + FAIL_IF(load_immediate(compiler, tmp_reg, argw)); + + inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; + return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg) | B(tmp_reg)); + } +#endif + + if (argw <= SIMM_MAX && argw >= SIMM_MIN) + return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg) | IMM(argw)); + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + if (argw <= 0x7fff7fffl && argw >= -0x80000000l) { #endif - arg &= REG_MASK; high_short = (sljit_s32)(argw + ((argw & 0x8000) << 1)) & ~0xffff; - /* The getput_arg_fast should handle this otherwise. */ + #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) SLJIT_ASSERT(high_short && high_short <= 0x7fffffffl && high_short >= -0x80000000l); #else - SLJIT_ASSERT(high_short && !(inst & (INT_ALIGNED | UPDATE_REQ))); + SLJIT_ASSERT(high_short); #endif - if (inp_flags & WRITE_BACK) { - tmp_r = arg; - FAIL_IF(push_inst(compiler, ADDIS | D(arg) | A(arg) | IMM(high_short >> 16))); - } - else if (compiler->cache_arg != (SLJIT_MEM | arg) || high_short != compiler->cache_argw) { - if ((next_arg & SLJIT_MEM) && !(next_arg & OFFS_REG_MASK)) { - next_high_short = (sljit_s32)(next_argw + ((next_argw & 0x8000) << 1)) & ~0xffff; - if (high_short == next_high_short) { - compiler->cache_arg = SLJIT_MEM | arg; - compiler->cache_argw = high_short; - tmp_r = TMP_REG3; - } - } - FAIL_IF(push_inst(compiler, ADDIS | D(tmp_r) | A(arg & REG_MASK) | IMM(high_short >> 16))); - } - else - tmp_r = TMP_REG3; - - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(tmp_r) | IMM(argw)); + FAIL_IF(push_inst(compiler, ADDIS | D(tmp_reg) | A(arg) | IMM(high_short >> 16))); + return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(tmp_reg) | IMM(argw)); #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) } - /* Everything else is PPC-64 only. */ - if (SLJIT_UNLIKELY(!(arg & REG_MASK))) { - diff = argw - compiler->cache_argw; - if ((compiler->cache_arg & SLJIT_IMM) && diff <= SIMM_MAX && diff >= SIMM_MIN) { - ADJUST_CACHED_IMM(diff); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3) | IMM(diff)); - } + /* The rest is PPC-64 only. */ - diff = argw - next_argw; - if ((next_arg & SLJIT_MEM) && diff <= SIMM_MAX && diff >= SIMM_MIN) { - SLJIT_ASSERT(inp_flags & LOAD_DATA); + FAIL_IF(load_immediate(compiler, tmp_reg, argw)); - compiler->cache_arg = SLJIT_IMM; - compiler->cache_argw = argw; - tmp_r = TMP_REG3; - } - - FAIL_IF(load_immediate(compiler, tmp_r, argw)); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(tmp_r)); - } - - diff = argw - compiler->cache_argw; - if (compiler->cache_arg == arg && diff <= SIMM_MAX && diff >= SIMM_MIN) { - SLJIT_ASSERT(!(inp_flags & WRITE_BACK) && !(inst & UPDATE_REQ)); - ADJUST_CACHED_IMM(diff); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3) | IMM(diff)); - } - - if ((compiler->cache_arg & SLJIT_IMM) && diff <= SIMM_MAX && diff >= SIMM_MIN) { - inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); - if (compiler->cache_argw != argw) { - FAIL_IF(push_inst(compiler, ADDI | D(TMP_REG3) | A(TMP_REG3) | IMM(diff))); - compiler->cache_argw = argw; - } - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(TMP_REG3)); - } - - if (argw == next_argw && (next_arg & SLJIT_MEM)) { - SLJIT_ASSERT(inp_flags & LOAD_DATA); - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - - compiler->cache_arg = SLJIT_IMM; - compiler->cache_argw = argw; - - inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(TMP_REG3)); - } - - diff = argw - next_argw; - if (arg == next_arg && !(inp_flags & WRITE_BACK) && diff <= SIMM_MAX && diff >= SIMM_MIN) { - SLJIT_ASSERT(inp_flags & LOAD_DATA); - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - FAIL_IF(push_inst(compiler, ADD | D(TMP_REG3) | A(TMP_REG3) | B(arg & REG_MASK))); - - compiler->cache_arg = arg; - compiler->cache_argw = argw; - - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(TMP_REG3)); - } - - if ((next_arg & SLJIT_MEM) && !(next_arg & OFFS_REG_MASK) && diff <= SIMM_MAX && diff >= SIMM_MIN) { - SLJIT_ASSERT(inp_flags & LOAD_DATA); - FAIL_IF(load_immediate(compiler, TMP_REG3, argw)); - - compiler->cache_arg = SLJIT_IMM; - compiler->cache_argw = argw; - tmp_r = TMP_REG3; - } - else - FAIL_IF(load_immediate(compiler, tmp_r, argw)); - - /* Get the indexed version instead of the normal one. */ inst = data_transfer_insts[(inp_flags | INDEXED) & MEM_MASK]; - SLJIT_ASSERT(!(inst & (INT_ALIGNED | UPDATE_REQ))); - return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg & REG_MASK) | B(tmp_r)); + return push_inst(compiler, INST_CODE_AND_DST(inst, inp_flags, reg) | A(arg) | B(tmp_reg)); #endif } -static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w) -{ - if (getput_arg_fast(compiler, flags, reg, arg1, arg1w)) - return compiler->error; - return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w); -} - static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 input_flags, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, @@ -1155,40 +974,21 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 { /* arg1 goes to TMP_REG1 or src reg arg2 goes to TMP_REG2, imm or src reg - TMP_REG3 can be used for caching - result goes to TMP_REG2, so put result can use TMP_REG1 and TMP_REG3. */ - sljit_s32 dst_r; + result goes to TMP_REG2, so put result can use TMP_REG1. */ + sljit_s32 dst_r = TMP_REG2; sljit_s32 src1_r; sljit_s32 src2_r; sljit_s32 sugg_src2_r = TMP_REG2; sljit_s32 flags = input_flags & (ALT_FORM1 | ALT_FORM2 | ALT_FORM3 | ALT_FORM4 | ALT_FORM5 | ALT_SIGN_EXT | ALT_SET_FLAGS); - if (!(input_flags & ALT_KEEP_CACHE)) { - compiler->cache_arg = 0; - compiler->cache_argw = 0; - } - /* Destination check. */ - if (SLJIT_UNLIKELY(dst == SLJIT_UNUSED)) { - dst_r = TMP_REG2; - } - else if (FAST_IS_REG(dst)) { + if (SLOW_IS_REG(dst)) { dst_r = dst; flags |= REG_DEST; - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) sugg_src2_r = dst_r; } - else { - SLJIT_ASSERT(dst & SLJIT_MEM); - if (getput_arg_fast(compiler, input_flags | ARG_TEST, TMP_REG2, dst, dstw)) { - flags |= FAST_DEST; - dst_r = TMP_REG2; - } - else { - flags |= SLOW_DEST; - dst_r = 0; - } - } /* Source 1. */ if (FAST_IS_REG(src1)) { @@ -1199,80 +999,34 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 FAIL_IF(load_immediate(compiler, TMP_REG1, src1w)); src1_r = TMP_REG1; } - else if (getput_arg_fast(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w)) { - FAIL_IF(compiler->error); + else { + FAIL_IF(emit_op_mem(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, TMP_REG1)); src1_r = TMP_REG1; } - else - src1_r = 0; /* Source 2. */ if (FAST_IS_REG(src2)) { src2_r = src2; flags |= REG2_SOURCE; - if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + + if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOV_P) dst_r = src2_r; } else if (src2 & SLJIT_IMM) { FAIL_IF(load_immediate(compiler, sugg_src2_r, src2w)); src2_r = sugg_src2_r; } - else if (getput_arg_fast(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w)) { - FAIL_IF(compiler->error); - src2_r = sugg_src2_r; - } - else - src2_r = 0; - - /* src1_r, src2_r and dst_r can be zero (=unprocessed). - All arguments are complex addressing modes, and it is a binary operator. */ - if (src1_r == 0 && src2_r == 0 && dst_r == 0) { - if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG2, src2, src2w, src1, src1w)); - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, dst, dstw)); - } - else { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, src2, src2w)); - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG2, src2, src2w, dst, dstw)); - } - src1_r = TMP_REG1; - src2_r = TMP_REG2; - } - else if (src1_r == 0 && src2_r == 0) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, src2, src2w)); - src1_r = TMP_REG1; - } - else if (src1_r == 0 && dst_r == 0) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, dst, dstw)); - src1_r = TMP_REG1; - } - else if (src2_r == 0 && dst_r == 0) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w, dst, dstw)); - src2_r = sugg_src2_r; - } - - if (dst_r == 0) - dst_r = TMP_REG2; - - if (src1_r == 0) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, TMP_REG1, src1, src1w, 0, 0)); - src1_r = TMP_REG1; - } - - if (src2_r == 0) { - FAIL_IF(getput_arg(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w, 0, 0)); + else { + FAIL_IF(emit_op_mem(compiler, input_flags | LOAD_DATA, sugg_src2_r, src2, src2w, TMP_REG2)); src2_r = sugg_src2_r; } FAIL_IF(emit_single_op(compiler, op, flags, dst_r, src1_r, src2_r)); - if (flags & (FAST_DEST | SLOW_DEST)) { - if (flags & FAST_DEST) - FAIL_IF(getput_arg_fast(compiler, input_flags, dst_r, dst, dstw)); - else - FAIL_IF(getput_arg(compiler, input_flags, dst_r, dst, dstw, 0, 0)); - } - return SLJIT_SUCCESS; + if (!(dst & SLJIT_MEM)) + return SLJIT_SUCCESS; + + return emit_op_mem(compiler, input_flags, dst_r, dst, dstw, TMP_REG1); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) @@ -1376,34 +1130,31 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (GET_FLAG_TYPE(op_flags) == SLJIT_OVERFLOW) FAIL_IF(push_inst(compiler, MTXER | S(TMP_ZERO))); + if (op < SLJIT_NOT && FAST_IS_REG(src) && src == dst) { + if (!TYPE_CAST_NEEDED(op)) + return SLJIT_SUCCESS; + } + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) if (op_flags & SLJIT_I32_OP) { if (op < SLJIT_NOT) { - if (FAST_IS_REG(src) && src == dst) { - if (!TYPE_CAST_NEEDED(op)) - return SLJIT_SUCCESS; + if (src & SLJIT_MEM) { + if (op == SLJIT_MOV_S32) + op = SLJIT_MOV_U32; + } + else if (src & SLJIT_IMM) { + if (op == SLJIT_MOV_U32) + op = SLJIT_MOV_S32; } -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - if (op == SLJIT_MOV_S32 && (src & SLJIT_MEM)) - op = SLJIT_MOV_U32; - if (op == SLJIT_MOVU_S32 && (src & SLJIT_MEM)) - op = SLJIT_MOVU_U32; - if (op == SLJIT_MOV_U32 && (src & SLJIT_IMM)) - op = SLJIT_MOV_S32; - if (op == SLJIT_MOVU_U32 && (src & SLJIT_IMM)) - op = SLJIT_MOVU_S32; -#endif } -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) else { /* Most operations expect sign extended arguments. */ flags |= INT_DATA | SIGNED_DATA; - if (src & SLJIT_IMM) - srcw = (sljit_s32)srcw; if (HAS_FLAGS(op_flags)) flags |= ALT_SIGN_EXT; } -#endif } +#endif switch (op) { case SLJIT_MOV: @@ -1434,34 +1185,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile case SLJIT_MOV_S16: return EMIT_MOV(SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA, (sljit_s16)); - case SLJIT_MOVU: - case SLJIT_MOVU_P: -#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) - case SLJIT_MOVU_U32: - case SLJIT_MOVU_S32: -#endif - return emit_op(compiler, SLJIT_MOV, flags | WORD_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - -#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) - case SLJIT_MOVU_U32: - return EMIT_MOV(SLJIT_MOV_U32, INT_DATA | WRITE_BACK, (sljit_u32)); - - case SLJIT_MOVU_S32: - return EMIT_MOV(SLJIT_MOV_S32, INT_DATA | SIGNED_DATA | WRITE_BACK, (sljit_s32)); -#endif - - case SLJIT_MOVU_U8: - return EMIT_MOV(SLJIT_MOV_U8, BYTE_DATA | WRITE_BACK, (sljit_u8)); - - case SLJIT_MOVU_S8: - return EMIT_MOV(SLJIT_MOV_S8, BYTE_DATA | SIGNED_DATA | WRITE_BACK, (sljit_s8)); - - case SLJIT_MOVU_U16: - return EMIT_MOV(SLJIT_MOV_U16, HALF_DATA | WRITE_BACK, (sljit_u16)); - - case SLJIT_MOVU_S16: - return EMIT_MOV(SLJIT_MOV_S16, HALF_DATA | SIGNED_DATA | WRITE_BACK, (sljit_s16)); - case SLJIT_NOT: return emit_op(compiler, SLJIT_NOT, flags, dst, dstw, TMP_REG1, 0, src, srcw); @@ -1549,8 +1272,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile #endif if (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW) FAIL_IF(push_inst(compiler, MTXER | S(TMP_ZERO))); - if (src2 == TMP_REG2) - flags |= ALT_KEEP_CACHE; switch (GET_OPCODE(op)) { case SLJIT_ADD: @@ -1737,7 +1458,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg; + return freg_map[reg]; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -1777,7 +1498,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp { if (src & SLJIT_MEM) { /* We can ignore the temporary data store on the stack from caching point of view. */ - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, TMP_REG1)); src = TMP_FREG1; } @@ -1787,10 +1508,10 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp if (op == SLJIT_CONV_SW_FROM_F64) { if (FAST_IS_REG(dst)) { - FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0)); - return emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0); + FAIL_IF(emit_op_mem(compiler, DOUBLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1)); + return emit_op_mem(compiler, WORD_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1); } - return emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, dst, dstw, 0, 0); + return emit_op_mem(compiler, DOUBLE_DATA, TMP_FREG1, dst, dstw, TMP_REG1); } #else FAIL_IF(push_inst(compiler, FCTIWZ | FD(TMP_FREG1) | FB(src))); @@ -1799,7 +1520,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp if (FAST_IS_REG(dst)) { FAIL_IF(load_immediate(compiler, TMP_REG1, FLOAT_TMP_MEM_OFFSET)); FAIL_IF(push_inst(compiler, STFIWX | FS(TMP_FREG1) | A(SLJIT_SP) | B(TMP_REG1))); - return emit_op_mem2(compiler, INT_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0); + return emit_op_mem(compiler, INT_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1); } SLJIT_ASSERT(dst & SLJIT_MEM); @@ -1850,21 +1571,21 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, EXTSW | S(src) | A(TMP_REG1))); else - FAIL_IF(emit_op_mem2(compiler, INT_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET)); + FAIL_IF(emit_op_mem(compiler, INT_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); src = TMP_REG1; } if (FAST_IS_REG(src)) { - FAIL_IF(emit_op_mem2(compiler, WORD_DATA, src, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET)); - FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, WORD_DATA, src, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1)); + FAIL_IF(emit_op_mem(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1)); } else - FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, TMP_REG1)); FAIL_IF(push_inst(compiler, FCFID | FD(dst_r) | FB(TMP_FREG1))); if (dst & SLJIT_MEM) - return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); + return emit_op_mem(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, TMP_REG1); if (op & SLJIT_F32_OP) return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r)); return SLJIT_SUCCESS; @@ -1880,7 +1601,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp invert_sign = 0; } else if (!FAST_IS_REG(src)) { - FAIL_IF(emit_op_mem2(compiler, WORD_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW)); + FAIL_IF(emit_op_mem(compiler, WORD_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, TMP_REG1)); src = TMP_REG1; } @@ -1892,17 +1613,17 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG2) | A(0) | 0x4330)); if (invert_sign) FAIL_IF(push_inst(compiler, XORIS | S(src) | A(TMP_REG1) | 0x8000)); - FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET)); - FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI)); + FAIL_IF(emit_op_mem(compiler, WORD_DATA, TMP_REG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI, TMP_REG1)); + FAIL_IF(emit_op_mem(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, TMP_REG2)); FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG1) | A(0) | 0x8000)); - FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW)); - FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET)); - FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW)); + FAIL_IF(emit_op_mem(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1)); + FAIL_IF(emit_op_mem(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, TMP_REG2)); + FAIL_IF(emit_op_mem(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, TMP_REG1)); FAIL_IF(push_inst(compiler, FSUB | FD(dst_r) | FA(TMP_FREG1) | FB(TMP_FREG2))); if (dst & SLJIT_MEM) - return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); + return emit_op_mem(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, TMP_REG1); if (op & SLJIT_F32_OP) return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r)); return SLJIT_SUCCESS; @@ -1915,12 +1636,12 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compile sljit_s32 src2, sljit_sw src2w) { if (src1 & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, TMP_REG1)); src1 = TMP_FREG1; } if (src2 & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, TMP_REG2)); src2 = TMP_FREG2; } @@ -1934,8 +1655,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil sljit_s32 dst_r; CHECK_ERROR(); - compiler->cache_arg = 0; - compiler->cache_argw = 0; SLJIT_COMPILE_ASSERT((SLJIT_F32_OP == 0x100) && !(DOUBLE_DATA & 0x4), float_transfer_bit_error); SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); @@ -1946,7 +1665,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src & SLJIT_MEM) { - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, TMP_REG1)); src = dst_r; } @@ -1975,7 +1694,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil } if (dst & SLJIT_MEM) - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0)); + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op), dst_r, dst, dstw, TMP_REG1)); return SLJIT_SUCCESS; } @@ -1984,7 +1703,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w) { - sljit_s32 dst_r, flags = 0; + sljit_s32 dst_r; CHECK_ERROR(); CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); @@ -1992,46 +1711,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil ADJUST_LOCAL_OFFSET(src1, src1w); ADJUST_LOCAL_OFFSET(src2, src2w); - compiler->cache_arg = 0; - compiler->cache_argw = 0; - dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG2; if (src1 & SLJIT_MEM) { - if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { - FAIL_IF(compiler->error); - src1 = TMP_FREG1; - } else - flags |= ALT_FORM1; + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, TMP_REG1)); + src1 = TMP_FREG1; } if (src2 & SLJIT_MEM) { - if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { - FAIL_IF(compiler->error); - src2 = TMP_FREG2; - } else - flags |= ALT_FORM2; - } - - if ((flags & (ALT_FORM1 | ALT_FORM2)) == (ALT_FORM1 | ALT_FORM2)) { - if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) { - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, src1, src1w)); - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); - } - else { - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); - } - } - else if (flags & ALT_FORM1) - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, dst, dstw)); - else if (flags & ALT_FORM2) - FAIL_IF(getput_arg(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, dst, dstw)); - - if (flags & ALT_FORM1) - src1 = TMP_FREG1; - if (flags & ALT_FORM2) + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, TMP_REG2)); src2 = TMP_FREG2; + } switch (GET_OPCODE(op)) { case SLJIT_ADD_F64: @@ -2051,13 +1741,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil break; } - if (dst_r == TMP_FREG2) - FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0)); + if (dst & SLJIT_MEM) + FAIL_IF(emit_op_mem(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, TMP_REG1)); return SLJIT_SUCCESS; } -#undef FLOAT_DATA #undef SELECT_FOP /* --------------------------------------------------------------------- */ @@ -2087,12 +1776,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, MTLR | S(src))); else { - if (src & SLJIT_MEM) - FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, TMP_REG2, srcw)); + FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); FAIL_IF(push_inst(compiler, MTLR | S(TMP_REG2))); } + return push_inst(compiler, BLR); } @@ -2174,7 +1861,7 @@ static sljit_ins get_bo_bi_flags(sljit_s32 type) return (4 << 21) | ((4 + 3) << 16); default: - SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL3); + SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL_CDECL); return (20 << 21); } } @@ -2200,7 +1887,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile if (type < SLJIT_JUMP) jump->flags |= IS_COND; #if (defined SLJIT_PASS_ENTRY_ADDR_TO_CALL && SLJIT_PASS_ENTRY_ADDR_TO_CALL) - if (type >= SLJIT_CALL0) + if (type >= SLJIT_CALL) jump->flags |= IS_CALL; #endif @@ -2211,6 +1898,24 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile return jump; } +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + PTR_FAIL_IF(call_with_args(compiler, arg_types, NULL)); +#endif + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { struct sljit_jump *jump = NULL; @@ -2222,7 +1927,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi if (FAST_IS_REG(src)) { #if (defined SLJIT_PASS_ENTRY_ADDR_TO_CALL && SLJIT_PASS_ENTRY_ADDR_TO_CALL) - if (type >= SLJIT_CALL0) { + if (type >= SLJIT_CALL) { FAIL_IF(push_inst(compiler, OR | S(src) | A(TMP_CALL_REG) | B(src))); src_r = TMP_CALL_REG; } @@ -2232,12 +1937,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi src_r = src; #endif } else if (src & SLJIT_IMM) { + /* These jumps are converted to jump/call instructions when possible. */ jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF(!jump); set_jump(jump, compiler, JUMP_ADDR); jump->u.target = srcw; #if (defined SLJIT_PASS_ENTRY_ADDR_TO_CALL && SLJIT_PASS_ENTRY_ADDR_TO_CALL) - if (type >= SLJIT_CALL0) + if (type >= SLJIT_CALL) jump->flags |= IS_CALL; #endif FAIL_IF(emit_const(compiler, TMP_CALL_REG, 0)); @@ -2254,6 +1960,31 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi return push_inst(compiler, BCCTR | (20 << 21) | (type >= SLJIT_FAST_CALL ? 1 : 0)); } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_CALL_REG, 0, TMP_REG1, 0, src, srcw)); + src = TMP_CALL_REG; + } + + FAIL_IF(call_with_args(compiler, arg_types, &src)); +#endif + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) @@ -2275,23 +2006,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co op = GET_OPCODE(op); reg = (op < SLJIT_ADD && FAST_IS_REG(dst)) ? dst : TMP_REG2; - compiler->cache_arg = 0; - compiler->cache_argw = 0; - if (op >= SLJIT_ADD && (dst & SLJIT_MEM)) - FAIL_IF(emit_op_mem2(compiler, input_flags | LOAD_DATA, TMP_REG1, dst, dstw, dst, dstw)); + FAIL_IF(emit_op_mem(compiler, input_flags | LOAD_DATA, TMP_REG1, dst, dstw, TMP_REG1)); invert = 0; + cr_bit = 0; switch (type & 0xff) { case SLJIT_LESS: case SLJIT_SIG_LESS: - cr_bit = 0; break; case SLJIT_GREATER_EQUAL: case SLJIT_SIG_GREATER_EQUAL: - cr_bit = 0; invert = 1; break; @@ -2376,7 +2103,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *co if (op < SLJIT_ADD) { if (!(dst & SLJIT_MEM)) return SLJIT_SUCCESS; - return emit_op_mem2(compiler, input_flags, reg, dst, dstw, reg, 0); + return emit_op_mem(compiler, input_flags, reg, dst, dstw, TMP_REG1); } #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ @@ -2398,6 +2125,139 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil return sljit_emit_cmov_generic(compiler, type, dst_reg, src, srcw);; } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 reg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_s32 mem_flags; + sljit_ins inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_mem(compiler, type, reg, mem, memw)); + + if (type & SLJIT_MEM_POST) + return SLJIT_ERR_UNSUPPORTED; + + switch (type & 0xff) { + case SLJIT_MOV: + case SLJIT_MOV_P: +#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) + case SLJIT_MOV_U32: + case SLJIT_MOV_S32: +#endif + mem_flags = WORD_DATA; + break; + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + case SLJIT_MOV_U32: + mem_flags = INT_DATA; + break; + + case SLJIT_MOV_S32: + mem_flags = INT_DATA; + + if (!(type & SLJIT_MEM_STORE) && !(type & SLJIT_I32_OP)) { + if (mem & OFFS_REG_MASK) + mem_flags |= SIGNED_DATA; + else + return SLJIT_ERR_UNSUPPORTED; + } + break; +#endif + + case SLJIT_MOV_U8: + case SLJIT_MOV_S8: + mem_flags = BYTE_DATA; + break; + + case SLJIT_MOV_U16: + mem_flags = HALF_DATA; + break; + + case SLJIT_MOV_S16: + mem_flags = HALF_DATA | SIGNED_DATA; + break; + + default: + SLJIT_UNREACHABLE(); + mem_flags = WORD_DATA; + break; + } + + if (!(type & SLJIT_MEM_STORE)) + mem_flags |= LOAD_DATA; + + if (SLJIT_UNLIKELY(mem & OFFS_REG_MASK)) { + if (memw != 0) + return SLJIT_ERR_UNSUPPORTED; + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + inst = updated_data_transfer_insts[mem_flags | INDEXED]; + FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, 0, reg) | A(mem & REG_MASK) | B(OFFS_REG(mem)))); + } + else { + if (memw > SIMM_MAX || memw < SIMM_MIN) + return SLJIT_ERR_UNSUPPORTED; + + inst = updated_data_transfer_insts[mem_flags]; + +#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) + if ((inst & INT_ALIGNED) && (memw & 0x3) != 0) + return SLJIT_ERR_UNSUPPORTED; +#endif + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + FAIL_IF(push_inst(compiler, INST_CODE_AND_DST(inst, 0, reg) | A(mem & REG_MASK) | IMM(memw))); + } + + if ((mem_flags & LOAD_DATA) && (type & 0xff) == SLJIT_MOV_S8) + return push_inst(compiler, EXTSB | S(reg) | A(reg)); + return SLJIT_SUCCESS; +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 freg, + sljit_s32 mem, sljit_sw memw) +{ + sljit_s32 mem_flags; + sljit_ins inst; + + CHECK_ERROR(); + CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); + + if (type & SLJIT_MEM_POST) + return SLJIT_ERR_UNSUPPORTED; + + if (SLJIT_UNLIKELY(mem & OFFS_REG_MASK)) { + if (memw != 0) + return SLJIT_ERR_UNSUPPORTED; + } + else { + if (memw > SIMM_MAX || memw < SIMM_MIN) + return SLJIT_ERR_UNSUPPORTED; + } + + if (type & SLJIT_MEM_SUPP) + return SLJIT_SUCCESS; + + mem_flags = FLOAT_DATA(type); + + if (!(type & SLJIT_MEM_STORE)) + mem_flags |= LOAD_DATA; + + if (SLJIT_UNLIKELY(mem & OFFS_REG_MASK)) { + inst = updated_data_transfer_insts[mem_flags | INDEXED]; + return push_inst(compiler, INST_CODE_AND_DST(inst, DOUBLE_DATA, freg) | A(mem & REG_MASK) | B(OFFS_REG(mem))); + } + + inst = updated_data_transfer_insts[mem_flags]; + return push_inst(compiler, INST_CODE_AND_DST(inst, DOUBLE_DATA, freg) | A(mem & REG_MASK) | IMM(memw)); +} + SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value) { struct sljit_const *const_; diff --git a/pcre/sljit/sljitNativeSPARC_32.c b/pcre/sljit/sljitNativeSPARC_32.c index ee42130e87e..0671b130cc6 100644 --- a/pcre/sljit/sljitNativeSPARC_32.c +++ b/pcre/sljit/sljitNativeSPARC_32.c @@ -138,6 +138,125 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl return SLJIT_SUCCESS; } +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src) +{ + sljit_s32 reg_index = 8; + sljit_s32 word_reg_index = 8; + sljit_s32 float_arg_index = 1; + sljit_s32 double_arg_count = 0; + sljit_s32 float_offset = (16 + 6) * sizeof(sljit_sw); + sljit_s32 types = 0; + sljit_s32 reg = 0; + sljit_s32 move_to_tmp2 = 0; + + if (src) + reg = reg_map[*src & REG_MASK]; + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + float_arg_index++; + if (reg_index == reg) + move_to_tmp2 = 1; + reg_index++; + break; + case SLJIT_ARG_TYPE_F64: + float_arg_index++; + double_arg_count++; + if (reg_index == reg || reg_index + 1 == reg) + move_to_tmp2 = 1; + reg_index += 2; + break; + default: + if (reg_index != word_reg_index && reg_index < 14 && reg_index == reg) + move_to_tmp2 = 1; + reg_index++; + word_reg_index++; + break; + } + + if (move_to_tmp2) { + move_to_tmp2 = 0; + if (reg < 14) + FAIL_IF(push_inst(compiler, OR | D(TMP_REG1) | S1(0) | S2A(reg), DR(TMP_REG1))); + *src = TMP_REG1; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + arg_types = types; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + float_arg_index--; + FAIL_IF(push_inst(compiler, STF | FD(float_arg_index) | S1(SLJIT_SP) | IMM(float_offset), MOVABLE_INS)); + float_offset -= sizeof(sljit_f64); + break; + case SLJIT_ARG_TYPE_F64: + float_arg_index--; + if (float_arg_index == 4 && double_arg_count == 4) { + FAIL_IF(push_inst(compiler, STF | FD(float_arg_index) | S1(SLJIT_SP) | IMM((16 + 7) * sizeof(sljit_sw)), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, STF | FD(float_arg_index) | (1 << 25) | S1(SLJIT_SP) | IMM((16 + 8) * sizeof(sljit_sw)), MOVABLE_INS)); + } + else + FAIL_IF(push_inst(compiler, STDF | FD(float_arg_index) | S1(SLJIT_SP) | IMM(float_offset), MOVABLE_INS)); + float_offset -= sizeof(sljit_f64); + break; + default: + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + float_offset = (16 + 6) * sizeof(sljit_sw); + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + reg_index--; + if (reg_index < 14) + FAIL_IF(push_inst(compiler, LDUW | DA(reg_index) | S1(SLJIT_SP) | IMM(float_offset), reg_index)); + float_offset -= sizeof(sljit_f64); + break; + case SLJIT_ARG_TYPE_F64: + reg_index -= 2; + if (reg_index < 14) { + if ((reg_index & 0x1) != 0) { + FAIL_IF(push_inst(compiler, LDUW | DA(reg_index) | S1(SLJIT_SP) | IMM(float_offset), reg_index)); + if (reg_index < 13) + FAIL_IF(push_inst(compiler, LDUW | DA(reg_index + 1) | S1(SLJIT_SP) | IMM(float_offset + sizeof(sljit_sw)), reg_index + 1)); + } + else + FAIL_IF(push_inst(compiler, LDD | DA(reg_index) | S1(SLJIT_SP) | IMM(float_offset), reg_index)); + } + float_offset -= sizeof(sljit_f64); + break; + default: + reg_index--; + word_reg_index--; + + if (reg_index != word_reg_index) { + if (reg_index < 14) + FAIL_IF(push_inst(compiler, OR | DA(reg_index) | S1(0) | S2A(word_reg_index), reg_index)); + else + FAIL_IF(push_inst(compiler, STW | DA(word_reg_index) | S1(SLJIT_SP) | IMM(92), word_reg_index)); + } + break; + } + + types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + static SLJIT_INLINE sljit_s32 emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw init_value) { FAIL_IF(push_inst(compiler, SETHI | D(dst) | ((init_value >> 10) & 0x3fffff), DR(dst))); diff --git a/pcre/sljit/sljitNativeSPARC_common.c b/pcre/sljit/sljitNativeSPARC_common.c index 9831bd83d72..669ecd81528 100644 --- a/pcre/sljit/sljitNativeSPARC_common.c +++ b/pcre/sljit/sljitNativeSPARC_common.c @@ -90,13 +90,19 @@ static void sparc_cache_flush(sljit_ins *from, sljit_ins *to) #define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2) #define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) #define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4) +/* This register is modified by calls, which affects the instruction + in the delay slot if it is used as a source register. */ #define TMP_LINK (SLJIT_NUMBER_OF_REGISTERS + 5) -#define TMP_FREG1 (0) -#define TMP_FREG2 ((SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) << 1) +#define TMP_FREG1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) +#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2) static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { - 0, 8, 9, 10, 13, 29, 28, 27, 23, 22, 21, 20, 19, 18, 17, 16, 26, 25, 24, 14, 1, 11, 12, 15 + 0, 8, 9, 10, 11, 29, 28, 27, 23, 22, 21, 20, 19, 18, 17, 16, 26, 25, 24, 14, 1, 12, 13, 15 +}; + +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { + 0, 0, 2, 4, 6, 8, 10, 12, 14 }; /* --------------------------------------------------------------------- */ @@ -104,10 +110,15 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { /* --------------------------------------------------------------------- */ #define D(d) (reg_map[d] << 25) +#define FD(d) (freg_map[d] << 25) +#define FDN(d) ((freg_map[d] | 0x1) << 25) #define DA(d) ((d) << 25) #define S1(s1) (reg_map[s1] << 14) -#define S2(s2) (reg_map[s2]) +#define FS1(s1) (freg_map[s1] << 14) #define S1A(s1) ((s1) << 14) +#define S2(s2) (reg_map[s2]) +#define FS2(s2) (freg_map[s2]) +#define FS2N(s2) (freg_map[s2] | 0x1) #define S2A(s2) (s2) #define IMM_ARG 0x2000 #define DOP(op) ((op) << 5) @@ -144,6 +155,8 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { #define FSUBD (OPC1(0x2) | OPC3(0x34) | DOP(0x46)) #define FSUBS (OPC1(0x2) | OPC3(0x34) | DOP(0x45)) #define JMPL (OPC1(0x2) | OPC3(0x38)) +#define LDD (OPC1(0x3) | OPC3(0x03)) +#define LDUW (OPC1(0x3) | OPC3(0x00)) #define NOP (OPC1(0x0) | OPC2(0x04)) #define OR (OPC1(0x2) | OPC3(0x02)) #define ORN (OPC1(0x2) | OPC3(0x06)) @@ -157,6 +170,9 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { #define SRAX (OPC1(0x2) | OPC3(0x27) | (1 << 12)) #define SRL (OPC1(0x2) | OPC3(0x26)) #define SRLX (OPC1(0x2) | OPC3(0x26) | (1 << 12)) +#define STDF (OPC1(0x3) | OPC3(0x27)) +#define STF (OPC1(0x3) | OPC3(0x24)) +#define STW (OPC1(0x3) | OPC3(0x04)) #define SUB (OPC1(0x2) | OPC3(0x04)) #define SUBC (OPC1(0x2) | OPC3(0x0c)) #define TA (OPC1(0x2) | OPC3(0x3a) | (8 << 25)) @@ -433,18 +449,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #define MEM_MASK 0x1f -#define WRITE_BACK 0x00020 -#define ARG_TEST 0x00040 -#define ALT_KEEP_CACHE 0x00080 -#define CUMULATIVE_OP 0x00100 -#define IMM_OP 0x00200 -#define SRC2_IMM 0x00400 +#define ARG_TEST 0x00020 +#define ALT_KEEP_CACHE 0x00040 +#define CUMULATIVE_OP 0x00080 +#define IMM_OP 0x00100 +#define SRC2_IMM 0x00200 -#define REG_DEST 0x00800 -#define REG2_SOURCE 0x01000 -#define SLOW_SRC1 0x02000 -#define SLOW_SRC2 0x04000 -#define SLOW_DEST 0x08000 +#define REG_DEST 0x00400 +#define REG2_SOURCE 0x00800 +#define SLOW_SRC1 0x01000 +#define SLOW_SRC2 0x02000 +#define SLOW_DEST 0x04000 /* SET_FLAGS (0x10 << 19) also belong here! */ @@ -455,12 +470,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) #endif SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); local_size = (local_size + SLJIT_LOCALS_OFFSET + 7) & ~0x7; compiler->local_size = local_size; @@ -479,12 +494,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); compiler->local_size = (local_size + SLJIT_LOCALS_OFFSET + 7) & ~0x7; return SLJIT_SUCCESS; @@ -546,18 +561,16 @@ static sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32 flag { SLJIT_ASSERT(arg & SLJIT_MEM); - if (!(flags & WRITE_BACK) || !(arg & REG_MASK)) { - if ((!(arg & OFFS_REG_MASK) && argw <= SIMM_MAX && argw >= SIMM_MIN) - || ((arg & OFFS_REG_MASK) && (argw & 0x3) == 0)) { - /* Works for both absoulte and relative addresses (immediate case). */ - if (SLJIT_UNLIKELY(flags & ARG_TEST)) - return 1; - FAIL_IF(push_inst(compiler, data_transfer_insts[flags & MEM_MASK] - | ((flags & MEM_MASK) <= GPR_REG ? D(reg) : DA(reg)) - | S1(arg & REG_MASK) | ((arg & OFFS_REG_MASK) ? S2(OFFS_REG(arg)) : IMM(argw)), - ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) ? DR(reg) : MOVABLE_INS)); - return -1; - } + if ((!(arg & OFFS_REG_MASK) && argw <= SIMM_MAX && argw >= SIMM_MIN) + || ((arg & OFFS_REG_MASK) && (argw & 0x3) == 0)) { + /* Works for both absoulte and relative addresses (immediate case). */ + if (SLJIT_UNLIKELY(flags & ARG_TEST)) + return 1; + FAIL_IF(push_inst(compiler, data_transfer_insts[flags & MEM_MASK] + | ((flags & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg)) + | S1(arg & REG_MASK) | ((arg & OFFS_REG_MASK) ? S2(OFFS_REG(arg)) : IMM(argw)), + ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) ? DR(reg) : MOVABLE_INS)); + return -1; } return 0; } @@ -638,14 +651,11 @@ static sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags, sl } } - dest = ((flags & MEM_MASK) <= GPR_REG ? D(reg) : DA(reg)); + dest = ((flags & MEM_MASK) <= GPR_REG ? D(reg) : FD(reg)); delay_slot = ((flags & MEM_MASK) <= GPR_REG && (flags & LOAD_DATA)) ? DR(reg) : MOVABLE_INS; if (!base) return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | dest | S1(arg2) | IMM(0), delay_slot); - if (!(flags & WRITE_BACK)) - return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | dest | S1(base) | S2(arg2), delay_slot); - FAIL_IF(push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | dest | S1(base) | S2(arg2), delay_slot)); - return push_inst(compiler, ADD | D(base) | S1(base) | S2(arg2), DR(base)); + return push_inst(compiler, data_transfer_insts[flags & MEM_MASK] | dest | S1(base) | S2(arg2), delay_slot); } static SLJIT_INLINE sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw) @@ -687,7 +697,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 if (FAST_IS_REG(dst)) { dst_r = dst; flags |= REG_DEST; - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) sugg_src2_r = dst_r; } else if ((dst & SLJIT_MEM) && !getput_arg_fast(compiler, flags | ARG_TEST, TMP_REG1, dst, dstw)) @@ -738,7 +748,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 if (FAST_IS_REG(src2)) { src2_r = src2; flags |= REG2_SOURCE; - if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) + if (!(flags & REG_DEST) && op >= SLJIT_MOV && op <= SLJIT_MOV_P) dst_r = src2_r; } else if (src2 & SLJIT_IMM) { @@ -749,7 +759,7 @@ static sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s3 } else { src2_r = 0; - if ((op >= SLJIT_MOV && op <= SLJIT_MOVU_S32) && (dst & SLJIT_MEM)) + if ((op >= SLJIT_MOV && op <= SLJIT_MOV_P) && (dst & SLJIT_MEM)) dst_r = 0; } } @@ -875,28 +885,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile case SLJIT_MOV_S16: return emit_op(compiler, SLJIT_MOV_S16, flags | HALF_DATA | SIGNED_DATA, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); - case SLJIT_MOVU: - case SLJIT_MOVU_P: - return emit_op(compiler, SLJIT_MOV, flags | WORD_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - - case SLJIT_MOVU_U32: - return emit_op(compiler, SLJIT_MOV_U32, flags | INT_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - - case SLJIT_MOVU_S32: - return emit_op(compiler, SLJIT_MOV_S32, flags | INT_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, srcw); - - case SLJIT_MOVU_U8: - return emit_op(compiler, SLJIT_MOV_U8, flags | BYTE_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u8)srcw : srcw); - - case SLJIT_MOVU_S8: - return emit_op(compiler, SLJIT_MOV_S8, flags | BYTE_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s8)srcw : srcw); - - case SLJIT_MOVU_U16: - return emit_op(compiler, SLJIT_MOV_U16, flags | HALF_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_u16)srcw : srcw); - - case SLJIT_MOVU_S16: - return emit_op(compiler, SLJIT_MOV_S16, flags | HALF_DATA | SIGNED_DATA | WRITE_BACK, dst, dstw, TMP_REG1, 0, src, (src & SLJIT_IMM) ? (sljit_s16)srcw : srcw); - case SLJIT_NOT: case SLJIT_CLZ: return emit_op(compiler, op, flags, dst, dstw, TMP_REG1, 0, src, srcw); @@ -962,7 +950,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); - return reg << 1; + return freg_map[reg]; } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -990,10 +978,8 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_comp FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); src = TMP_FREG1; } - else - src <<= 1; - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOI, FDTOI) | DA(TMP_FREG1) | S2A(src), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOI, FDTOI) | FD(TMP_FREG1) | FS2(src), MOVABLE_INS)); if (FAST_IS_REG(dst)) { FAIL_IF(emit_op_mem2(compiler, SINGLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET)); @@ -1008,7 +994,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw) { - sljit_s32 dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1; + sljit_s32 dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src & SLJIT_IMM) { #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -1027,7 +1013,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_comp } FAIL_IF(emit_op_mem2(compiler, SINGLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw)); - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FITOS, FITOD) | DA(dst_r) | S2A(TMP_FREG1), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FITOS, FITOD) | FD(dst_r) | FS2(TMP_FREG1), MOVABLE_INS)); if (dst & SLJIT_MEM) return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0); @@ -1042,17 +1028,13 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compile FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w)); src1 = TMP_FREG1; } - else - src1 <<= 1; if (src2 & SLJIT_MEM) { FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0)); src2 = TMP_FREG2; } - else - src2 <<= 1; - return push_inst(compiler, SELECT_FOP(op, FCMPS, FCMPD) | S1A(src1) | S2A(src2), FCC_IS_SET | MOVABLE_INS); + return push_inst(compiler, SELECT_FOP(op, FCMPS, FCMPD) | FS1(src1) | FS2(src2), FCC_IS_SET | MOVABLE_INS); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, @@ -1071,39 +1053,37 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compil if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_F32) op ^= SLJIT_F32_OP; - dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1; + dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1; if (src & SLJIT_MEM) { FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw)); src = dst_r; } - else - src <<= 1; switch (GET_OPCODE(op)) { case SLJIT_MOV_F64: if (src != dst_r) { if (dst_r != TMP_FREG1) { - FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r) | S2A(src), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FMOVS | FD(dst_r) | FS2(src), MOVABLE_INS)); if (!(op & SLJIT_F32_OP)) - FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FMOVS | FDN(dst_r) | FS2N(src), MOVABLE_INS)); } else dst_r = src; } break; case SLJIT_NEG_F64: - FAIL_IF(push_inst(compiler, FNEGS | DA(dst_r) | S2A(src), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FNEGS | FD(dst_r) | FS2(src), MOVABLE_INS)); if (dst_r != src && !(op & SLJIT_F32_OP)) - FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FMOVS | FDN(dst_r) | FS2N(src), MOVABLE_INS)); break; case SLJIT_ABS_F64: - FAIL_IF(push_inst(compiler, FABSS | DA(dst_r) | S2A(src), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FABSS | FD(dst_r) | FS2(src), MOVABLE_INS)); if (dst_r != src && !(op & SLJIT_F32_OP)) - FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, FMOVS | FDN(dst_r) | FS2N(src), MOVABLE_INS)); break; case SLJIT_CONV_F64_FROM_F32: - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOD, FDTOS) | DA(dst_r) | S2A(src), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOD, FDTOS) | FD(dst_r) | FS2(src), MOVABLE_INS)); op ^= SLJIT_F32_OP; break; } @@ -1129,7 +1109,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil compiler->cache_arg = 0; compiler->cache_argw = 0; - dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2; + dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG2; if (src1 & SLJIT_MEM) { if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) { @@ -1138,8 +1118,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil } else flags |= SLOW_SRC1; } - else - src1 <<= 1; if (src2 & SLJIT_MEM) { if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w)) { @@ -1148,8 +1126,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil } else flags |= SLOW_SRC2; } - else - src2 <<= 1; if ((flags & (SLOW_SRC1 | SLOW_SRC2)) == (SLOW_SRC1 | SLOW_SRC2)) { if (!can_cache(src1, src1w, src2, src2w) && can_cache(src1, src1w, dst, dstw)) { @@ -1173,19 +1149,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compil switch (GET_OPCODE(op)) { case SLJIT_ADD_F64: - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADDD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADDD) | FD(dst_r) | FS1(src1) | FS2(src2), MOVABLE_INS)); break; case SLJIT_SUB_F64: - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUBD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUBD) | FD(dst_r) | FS1(src1) | FS2(src2), MOVABLE_INS)); break; case SLJIT_MUL_F64: - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMULD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMULD) | FD(dst_r) | FS1(src1) | FS2(src2), MOVABLE_INS)); break; case SLJIT_DIV_F64: - FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIVD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS)); + FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIVD) | FD(dst_r) | FS1(src1) | FS2(src2), MOVABLE_INS)); break; } @@ -1223,10 +1199,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler if (FAST_IS_REG(src)) FAIL_IF(push_inst(compiler, OR | D(TMP_LINK) | S1(0) | S2(src), DR(TMP_LINK))); - else if (src & SLJIT_MEM) + else FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_LINK, src, srcw)); - else if (src & SLJIT_IMM) - FAIL_IF(load_immediate(compiler, TMP_LINK, srcw)); FAIL_IF(push_inst(compiler, JMPL | D(0) | S1(TMP_LINK) | IMM(8), UNMOVABLE_INS)); return push_inst(compiler, NOP, UNMOVABLE_INS); @@ -1339,21 +1313,38 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile #else #error "Implementation required" #endif - } else { + } + else { if ((compiler->delay_slot & DST_INS_MASK) != UNMOVABLE_INS) jump->flags |= IS_MOVABLE; if (type >= SLJIT_FAST_CALL) jump->flags |= IS_CALL; } - PTR_FAIL_IF(emit_const(compiler, TMP_REG2, 0)); - PTR_FAIL_IF(push_inst(compiler, JMPL | D(type >= SLJIT_FAST_CALL ? TMP_LINK : 0) | S1(TMP_REG2) | IMM(0), UNMOVABLE_INS)); + PTR_FAIL_IF(emit_const(compiler, TMP_REG1, 0)); + PTR_FAIL_IF(push_inst(compiler, JMPL | D(type >= SLJIT_FAST_CALL ? TMP_LINK : 0) | S1(TMP_REG1) | IMM(0), UNMOVABLE_INS)); jump->addr = compiler->size; PTR_FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); return jump; } +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + + PTR_FAIL_IF(call_with_args(compiler, arg_types, NULL)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { struct sljit_jump *jump = NULL; @@ -1370,17 +1361,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi FAIL_IF(!jump); set_jump(jump, compiler, JUMP_ADDR); jump->u.target = srcw; + if ((compiler->delay_slot & DST_INS_MASK) != UNMOVABLE_INS) jump->flags |= IS_MOVABLE; if (type >= SLJIT_FAST_CALL) jump->flags |= IS_CALL; - FAIL_IF(emit_const(compiler, TMP_REG2, 0)); - src_r = TMP_REG2; + FAIL_IF(emit_const(compiler, TMP_REG1, 0)); + src_r = TMP_REG1; } else { - FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG2, src, srcw)); - src_r = TMP_REG2; + FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG1, src, srcw)); + src_r = TMP_REG1; } FAIL_IF(push_inst(compiler, JMPL | D(type >= SLJIT_FAST_CALL ? TMP_LINK : 0) | S1(src_r) | IMM(0), UNMOVABLE_INS)); @@ -1389,6 +1381,29 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi return push_inst(compiler, NOP, UNMOVABLE_INS); } +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + + if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + FAIL_IF(emit_op_mem(compiler, WORD_DATA | LOAD_DATA, TMP_REG1, src, srcw)); + src = TMP_REG1; + } + + FAIL_IF(call_with_args(compiler, arg_types, &src)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type) diff --git a/pcre/sljit/sljitNativeX86_32.c b/pcre/sljit/sljitNativeX86_32.c index f5cf8834b08..074e64b9f2b 100644 --- a/pcre/sljit/sljitNativeX86_32.c +++ b/pcre/sljit/sljitNativeX86_32.c @@ -64,29 +64,28 @@ static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 size; + sljit_s32 args, size; sljit_u8 *inst; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); + args = get_arg_count(arg_types); compiler->args = args; -#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) - /* [esp+0] for saving temporaries and third argument for calls. */ - compiler->saveds_offset = 1 * sizeof(sljit_sw); -#else - /* [esp+0] for saving temporaries and space for maximum three arguments. */ - if (scratches <= 1) - compiler->saveds_offset = 1 * sizeof(sljit_sw); - else - compiler->saveds_offset = ((scratches == 2) ? 2 : 3) * sizeof(sljit_sw); + /* [esp+0] for saving temporaries and function calls. */ + compiler->stack_tmp_size = 2 * sizeof(sljit_sw); + +#if !(defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + if (scratches > 3) + compiler->stack_tmp_size = 3 * sizeof(sljit_sw); #endif + compiler->saveds_offset = compiler->stack_tmp_size; if (scratches > 3) compiler->saveds_offset += ((scratches > (3 + 6)) ? 6 : (scratches - 3)) * sizeof(sljit_sw); @@ -124,34 +123,38 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi #if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) if (args > 0) { - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | reg_map[SLJIT_R2]; + inst[0] = MOV_r_rm; + inst[1] = MOD_REG | (reg_map[SLJIT_S0] << 3) | reg_map[SLJIT_R2]; + inst += 2; } if (args > 1) { - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S1] << 3) | reg_map[SLJIT_R1]; + inst[0] = MOV_r_rm; + inst[1] = MOD_REG | (reg_map[SLJIT_S1] << 3) | reg_map[SLJIT_R1]; + inst += 2; } if (args > 2) { - *inst++ = MOV_r_rm; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | 0x4 /* esp */; - *inst++ = 0x24; - *inst++ = sizeof(sljit_sw) * (3 + 2); /* saveds >= 3 as well. */ + inst[0] = MOV_r_rm; + inst[1] = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | 0x4 /* esp */; + inst[2] = 0x24; + inst[3] = sizeof(sljit_sw) * (3 + 2); /* saveds >= 3 as well. */ } #else if (args > 0) { - *inst++ = MOV_r_rm; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_S0] << 3) | reg_map[TMP_REG1]; - *inst++ = sizeof(sljit_sw) * 2; + inst[0] = MOV_r_rm; + inst[1] = MOD_DISP8 | (reg_map[SLJIT_S0] << 3) | reg_map[TMP_REG1]; + inst[2] = sizeof(sljit_sw) * 2; + inst += 3; } if (args > 1) { - *inst++ = MOV_r_rm; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_S1] << 3) | reg_map[TMP_REG1]; - *inst++ = sizeof(sljit_sw) * 3; + inst[0] = MOV_r_rm; + inst[1] = MOD_DISP8 | (reg_map[SLJIT_S1] << 3) | reg_map[TMP_REG1]; + inst[2] = sizeof(sljit_sw) * 3; + inst += 3; } if (args > 2) { - *inst++ = MOV_r_rm; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | reg_map[TMP_REG1]; - *inst++ = sizeof(sljit_sw) * 4; + inst[0] = MOV_r_rm; + inst[1] = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | reg_map[TMP_REG1]; + inst[2] = sizeof(sljit_sw) * 4; } #endif @@ -171,17 +174,36 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi compiler->local_size = local_size; #ifdef _WIN32 - if (local_size > 1024) { -#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) - FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_R0], local_size)); -#else - /* Space for a single argument. This amount is excluded when the stack is allocated below. */ - local_size -= sizeof(sljit_sw); - FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_R0], local_size)); - FAIL_IF(emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32, - SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, sizeof(sljit_sw))); -#endif - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_grow_stack))); + if (local_size > 0) { + if (local_size <= 4 * 4096) { + if (local_size > 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096); + if (local_size > 2 * 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096 * 2); + if (local_size > 3 * 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096 * 3); + } + else { + EMIT_MOV(compiler, SLJIT_R0, 0, SLJIT_SP, 0); + EMIT_MOV(compiler, SLJIT_R1, 0, SLJIT_IMM, (local_size - 1) >> 12); + + SLJIT_ASSERT (reg_map[SLJIT_R0] == 0); + + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_R0), -4096); + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 4096)); + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1)); + + inst = (sljit_u8*)ensure_buf(compiler, 1 + 2); + FAIL_IF(!inst); + + INC_SIZE(2); + inst[0] = JNE_i8; + inst[1] = (sljit_s8) -16; + } + + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -local_size); } #endif @@ -192,12 +214,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_SP, 0); /* Some space might allocated during sljit_grow_stack() above on WIN32. */ - FAIL_IF(emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32, + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size + sizeof(sljit_sw))); #if defined _WIN32 && !(defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) if (compiler->local_size > 1024) - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, + FAIL_IF(emit_cum_binary(compiler, BINARY_OPCODE(ADD), TMP_REG1, 0, TMP_REG1, 0, SLJIT_IMM, sizeof(sljit_sw))); #endif @@ -213,31 +235,29 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi return emit_mov(compiler, SLJIT_MEM1(SLJIT_SP), compiler->local_size, TMP_REG1, 0); } #endif - return emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32, + return emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); - compiler->args = args; + compiler->args = get_arg_count(arg_types); -#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) - /* [esp+0] for saving temporaries and third argument for calls. */ - compiler->saveds_offset = 1 * sizeof(sljit_sw); -#else - /* [esp+0] for saving temporaries and space for maximum three arguments. */ - if (scratches <= 1) - compiler->saveds_offset = 1 * sizeof(sljit_sw); - else - compiler->saveds_offset = ((scratches == 2) ? 2 : 3) * sizeof(sljit_sw); + /* [esp+0] for saving temporaries and function calls. */ + compiler->stack_tmp_size = 2 * sizeof(sljit_sw); + +#if !(defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + if (scratches > 3) + compiler->stack_tmp_size = 3 * sizeof(sljit_sw); #endif + compiler->saveds_offset = compiler->stack_tmp_size; if (scratches > 3) compiler->saveds_offset += ((scratches > (3 + 6)) ? 6 : (scratches - 3)) * sizeof(sljit_sw); @@ -278,10 +298,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return(struct sljit_compiler *comp if (compiler->options & SLJIT_F64_ALIGNMENT) EMIT_MOV(compiler, SLJIT_SP, 0, SLJIT_MEM1(SLJIT_SP), compiler->local_size) else - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, + FAIL_IF(emit_cum_binary(compiler, BINARY_OPCODE(ADD), SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, compiler->local_size)); #else - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, + FAIL_IF(emit_cum_binary(compiler, BINARY_OPCODE(ADD), SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, compiler->local_size)); #endif @@ -418,7 +438,7 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 if ((flags & EX86_BIN_INS) && (a & SLJIT_IMM)) *inst = (flags & EX86_BYTE_ARG) ? GROUP_BINARY_83 : GROUP_BINARY_81; - if ((a & SLJIT_IMM) || (a == 0)) + if (a & SLJIT_IMM) *buf_ptr = 0; else if (!(flags & EX86_SSE2_OP1)) *buf_ptr = reg_map[a] << 3; @@ -490,42 +510,324 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 /* Call / return instructions */ /* --------------------------------------------------------------------- */ -static SLJIT_INLINE sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 type) +#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + +static sljit_s32 c_fast_call_get_stack_size(sljit_s32 arg_types, sljit_s32 *word_arg_count_ptr) +{ + sljit_s32 stack_size = 0; + sljit_s32 word_arg_count = 0; + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + stack_size += sizeof(sljit_f64); + break; + default: + word_arg_count++; + if (word_arg_count > 2) + stack_size += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (word_arg_count_ptr) + *word_arg_count_ptr = word_arg_count; + + return stack_size; +} + +static sljit_s32 c_fast_call_with_args(struct sljit_compiler *compiler, + sljit_s32 arg_types, sljit_s32 stack_size, sljit_s32 word_arg_count, sljit_s32 swap_args) { sljit_u8 *inst; + sljit_s32 float_arg_count; + + if (stack_size == sizeof(sljit_sw) && word_arg_count == 3) { + inst = (sljit_u8*)ensure_buf(compiler, 1 + 1); + FAIL_IF(!inst); + INC_SIZE(1); + PUSH_REG(reg_map[SLJIT_R2]); + } + else if (stack_size > 0) { + if (word_arg_count >= 4) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), compiler->saveds_offset - sizeof(sljit_sw)); + + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, stack_size)); + + stack_size = 0; + arg_types >>= SLJIT_DEF_SHIFT; + word_arg_count = 0; + float_arg_count = 0; + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + float_arg_count++; + FAIL_IF(emit_sse2_store(compiler, 1, SLJIT_MEM1(SLJIT_SP), stack_size, float_arg_count)); + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + float_arg_count++; + FAIL_IF(emit_sse2_store(compiler, 0, SLJIT_MEM1(SLJIT_SP), stack_size, float_arg_count)); + stack_size += sizeof(sljit_f64); + break; + default: + word_arg_count++; + if (word_arg_count == 3) { + EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_SP), stack_size, SLJIT_R2, 0); + stack_size += sizeof(sljit_sw); + } + else if (word_arg_count == 4) { + EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_SP), stack_size, TMP_REG1, 0); + stack_size += sizeof(sljit_sw); + } + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + } + + if (word_arg_count > 0) { + if (swap_args) { + inst = (sljit_u8*)ensure_buf(compiler, 1 + 1); + FAIL_IF(!inst); + INC_SIZE(1); + + *inst++ = XCHG_EAX_r | reg_map[SLJIT_R2]; + } + else { + inst = (sljit_u8*)ensure_buf(compiler, 1 + 2); + FAIL_IF(!inst); + INC_SIZE(2); + + *inst++ = MOV_r_rm; + *inst++ = MOD_REG | (reg_map[SLJIT_R2] << 3) | reg_map[SLJIT_R0]; + } + } + + return SLJIT_SUCCESS; +} + +#endif + +static sljit_s32 cdecl_call_get_stack_size(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *word_arg_count_ptr) +{ + sljit_s32 stack_size = 0; + sljit_s32 word_arg_count = 0; + + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + stack_size += sizeof(sljit_f64); + break; + default: + word_arg_count++; + stack_size += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + if (word_arg_count_ptr) + *word_arg_count_ptr = word_arg_count; + + if (stack_size <= compiler->stack_tmp_size) + return 0; + +#if defined(__APPLE__) + return ((stack_size - compiler->stack_tmp_size + 15) & ~15); +#else + return stack_size - compiler->stack_tmp_size; +#endif +} + +static sljit_s32 cdecl_call_with_args(struct sljit_compiler *compiler, + sljit_s32 arg_types, sljit_s32 stack_size, sljit_s32 word_arg_count) +{ + sljit_s32 float_arg_count = 0; + + if (word_arg_count >= 4) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), compiler->saveds_offset - sizeof(sljit_sw)); + + if (stack_size > 0) + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, stack_size)); + + stack_size = 0; + word_arg_count = 0; + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + float_arg_count++; + FAIL_IF(emit_sse2_store(compiler, 1, SLJIT_MEM1(SLJIT_SP), stack_size, float_arg_count)); + stack_size += sizeof(sljit_f32); + break; + case SLJIT_ARG_TYPE_F64: + float_arg_count++; + FAIL_IF(emit_sse2_store(compiler, 0, SLJIT_MEM1(SLJIT_SP), stack_size, float_arg_count)); + stack_size += sizeof(sljit_f64); + break; + default: + word_arg_count++; + EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_SP), stack_size, (word_arg_count >= 4) ? TMP_REG1 : word_arg_count, 0); + stack_size += sizeof(sljit_sw); + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; + } + + return SLJIT_SUCCESS; +} + +static sljit_s32 post_call_with_args(struct sljit_compiler *compiler, + sljit_s32 arg_types, sljit_s32 stack_size) +{ + sljit_u8 *inst; + sljit_s32 single; + + if (stack_size > 0) + FAIL_IF(emit_cum_binary(compiler, BINARY_OPCODE(ADD), + SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, stack_size)); + + if ((arg_types & SLJIT_DEF_MASK) < SLJIT_ARG_TYPE_F32) + return SLJIT_SUCCESS; + + single = ((arg_types & SLJIT_DEF_MASK) == SLJIT_ARG_TYPE_F32); + + inst = (sljit_u8*)ensure_buf(compiler, 1 + 3); + FAIL_IF(!inst); + INC_SIZE(3); + inst[0] = single ? FSTPS : FSTPD; + inst[1] = (0x03 << 3) | 0x04; + inst[2] = (0x04 << 3) | reg_map[SLJIT_SP]; + + return emit_sse2_load(compiler, single, SLJIT_FR0, SLJIT_MEM1(SLJIT_SP), 0); +} + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + struct sljit_jump *jump; + sljit_s32 stack_size = 0; + sljit_s32 word_arg_count; + + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); #if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) - inst = (sljit_u8*)ensure_buf(compiler, type >= SLJIT_CALL3 ? 1 + 2 + 1 : 1 + 2); - FAIL_IF(!inst); - INC_SIZE(type >= SLJIT_CALL3 ? 2 + 1 : 2); + if ((type & 0xff) == SLJIT_CALL) { + stack_size = c_fast_call_get_stack_size(arg_types, &word_arg_count); + PTR_FAIL_IF(c_fast_call_with_args(compiler, arg_types, stack_size, word_arg_count, 0)); - if (type >= SLJIT_CALL3) - PUSH_REG(reg_map[SLJIT_R2]); - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_R2] << 3) | reg_map[SLJIT_R0]; -#else - inst = (sljit_u8*)ensure_buf(compiler, 1 + 4 * (type - SLJIT_CALL0)); - FAIL_IF(!inst); - INC_SIZE(4 * (type - SLJIT_CALL0)); +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif - *inst++ = MOV_rm_r; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_R0] << 3) | 0x4 /* SIB */; - *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP]; - *inst++ = 0; - if (type >= SLJIT_CALL2) { - *inst++ = MOV_rm_r; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_R1] << 3) | 0x4 /* SIB */; - *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP]; - *inst++ = sizeof(sljit_sw); - } - if (type >= SLJIT_CALL3) { - *inst++ = MOV_rm_r; - *inst++ = MOD_DISP8 | (reg_map[SLJIT_R2] << 3) | 0x4 /* SIB */; - *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP]; - *inst++ = 2 * sizeof(sljit_sw); + jump = sljit_emit_jump(compiler, type); + PTR_FAIL_IF(jump == NULL); + + PTR_FAIL_IF(post_call_with_args(compiler, arg_types, 0)); + return jump; } #endif - return SLJIT_SUCCESS; + + stack_size = cdecl_call_get_stack_size(compiler, arg_types, &word_arg_count); + PTR_FAIL_IF(cdecl_call_with_args(compiler, arg_types, stack_size, word_arg_count)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + jump = sljit_emit_jump(compiler, type); + PTR_FAIL_IF(jump == NULL); + + PTR_FAIL_IF(post_call_with_args(compiler, arg_types, stack_size)); + return jump; +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + sljit_s32 stack_size = 0; + sljit_s32 word_arg_count; +#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + sljit_s32 swap_args; +#endif + + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + +#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + SLJIT_ASSERT(reg_map[SLJIT_R0] == 0 && reg_map[SLJIT_R2] == 1 && SLJIT_R0 == 1 && SLJIT_R2 == 3); + + if ((type & 0xff) == SLJIT_CALL) { + stack_size = c_fast_call_get_stack_size(arg_types, &word_arg_count); + swap_args = 0; + + if (word_arg_count > 0) { + if ((src & REG_MASK) == SLJIT_R2 || OFFS_REG(src) == SLJIT_R2) { + swap_args = 1; + if (((src & REG_MASK) | 0x2) == SLJIT_R2) + src ^= 0x2; + if ((OFFS_REG(src) | 0x2) == SLJIT_R2) + src ^= TO_OFFS_REG(0x2); + } + } + + FAIL_IF(c_fast_call_with_args(compiler, arg_types, stack_size, word_arg_count, swap_args)); + + compiler->saveds_offset += stack_size; + compiler->locals_offset += stack_size; + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); + + compiler->saveds_offset -= stack_size; + compiler->locals_offset -= stack_size; + + return post_call_with_args(compiler, arg_types, 0); + } +#endif + + stack_size = cdecl_call_get_stack_size(compiler, arg_types, &word_arg_count); + FAIL_IF(cdecl_call_with_args(compiler, arg_types, stack_size, word_arg_count)); + + compiler->saveds_offset += stack_size; + compiler->locals_offset += stack_size; + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + FAIL_IF(sljit_emit_ijump(compiler, type, src, srcw)); + + compiler->saveds_offset -= stack_size; + compiler->locals_offset -= stack_size; + + return post_call_with_args(compiler, arg_types, stack_size); } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw) @@ -576,7 +878,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler INC_SIZE(1 + 1); PUSH_REG(reg_map[src]); } - else if (src & SLJIT_MEM) { + else { inst = emit_x86_instruction(compiler, 1, 0, 0, src, srcw); FAIL_IF(!inst); *inst++ = GROUP_FF; @@ -586,16 +888,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler FAIL_IF(!inst); INC_SIZE(1); } - else { - /* SLJIT_IMM. */ - inst = (sljit_u8*)ensure_buf(compiler, 1 + 5 + 1); - FAIL_IF(!inst); - - INC_SIZE(5 + 1); - *inst++ = PUSH_i32; - sljit_unaligned_store_sw(inst, srcw); - inst += sizeof(sljit_sw); - } RET(); return SLJIT_SUCCESS; diff --git a/pcre/sljit/sljitNativeX86_64.c b/pcre/sljit/sljitNativeX86_64.c index 039b68c45ab..85065656144 100644 --- a/pcre/sljit/sljitNativeX86_64.c +++ b/pcre/sljit/sljitNativeX86_64.c @@ -41,24 +41,31 @@ static sljit_s32 emit_load_imm64(struct sljit_compiler *compiler, sljit_s32 reg, static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr, sljit_s32 type) { + int short_addr = !(jump->flags & SLJIT_REWRITABLE_JUMP) && !(jump->flags & JUMP_LABEL) && (jump->u.target <= 0xffffffff); + + /* The relative jump below specialized for this case. */ + SLJIT_ASSERT(reg_map[TMP_REG2] >= 8); + if (type < SLJIT_JUMP) { /* Invert type. */ *code_ptr++ = get_jump_code(type ^ 0x1) - 0x10; - *code_ptr++ = 10 + 3; + *code_ptr++ = short_addr ? (6 + 3) : (10 + 3); } - *code_ptr++ = REX_W | ((reg_map[TMP_REG2] <= 7) ? 0 : REX_B); + *code_ptr++ = short_addr ? REX_B : (REX_W | REX_B); *code_ptr++ = MOV_r_i32 | reg_lmap[TMP_REG2]; jump->addr = (sljit_uw)code_ptr; if (jump->flags & JUMP_LABEL) jump->flags |= PATCH_MD; + else if (short_addr) + sljit_unaligned_store_s32(code_ptr, (sljit_s32)jump->u.target); else sljit_unaligned_store_sw(code_ptr, jump->u.target); - code_ptr += sizeof(sljit_sw); - if (reg_map[TMP_REG2] >= 8) - *code_ptr++ = REX_B; + code_ptr += short_addr ? sizeof(sljit_s32) : sizeof(sljit_sw); + + *code_ptr++ = REX_B; *code_ptr++ = GROUP_FF; *code_ptr++ = MOD_REG | (type >= SLJIT_FAST_CALL ? CALL_rm : JMP_rm) | reg_lmap[TMP_REG2]; @@ -66,15 +73,17 @@ static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { - sljit_s32 i, tmp, size, saved_register_size; + sljit_s32 args, i, tmp, size, saved_register_size; sljit_u8 *inst; CHECK_ERROR(); - CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_emit_enter(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); + + compiler->mode32 = 0; #ifdef _WIN64 /* Two/four register slots for parameters plus space for xmm6 register if needed. */ @@ -108,6 +117,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi PUSH_REG(reg_lmap[i]); } + args = get_arg_count(arg_types); + if (args > 0) { size = args * 3; inst = (sljit_u8*)ensure_buf(compiler, 1 + size); @@ -117,35 +128,39 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi #ifndef _WIN64 if (args > 0) { - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x7 /* rdi */; + inst[0] = REX_W; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x7 /* rdi */; + inst += 3; } if (args > 1) { - *inst++ = REX_W | REX_R; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_lmap[SLJIT_S1] << 3) | 0x6 /* rsi */; + inst[0] = REX_W | REX_R; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_lmap[SLJIT_S1] << 3) | 0x6 /* rsi */; + inst += 3; } if (args > 2) { - *inst++ = REX_W | REX_R; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_lmap[SLJIT_S2] << 3) | 0x2 /* rdx */; + inst[0] = REX_W | REX_R; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_lmap[SLJIT_S2] << 3) | 0x2 /* rdx */; } #else if (args > 0) { - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x1 /* rcx */; + inst[0] = REX_W; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x1 /* rcx */; + inst += 3; } if (args > 1) { - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S1] << 3) | 0x2 /* rdx */; + inst[0] = REX_W; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_map[SLJIT_S1] << 3) | 0x2 /* rdx */; + inst += 3; } if (args > 2) { - *inst++ = REX_W | REX_B; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (reg_map[SLJIT_S2] << 3) | 0x0 /* r8 */; + inst[0] = REX_W | REX_B; + inst[1] = MOV_r_rm; + inst[2] = MOD_REG | (reg_map[SLJIT_S2] << 3) | 0x0 /* r8 */; } #endif } @@ -154,58 +169,42 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi compiler->local_size = local_size; #ifdef _WIN64 - if (local_size > 1024) { - /* Allocate stack for the callback, which grows the stack. */ - inst = (sljit_u8*)ensure_buf(compiler, 1 + 4 + (3 + sizeof(sljit_s32))); - FAIL_IF(!inst); - INC_SIZE(4 + (3 + sizeof(sljit_s32))); - *inst++ = REX_W; - *inst++ = GROUP_BINARY_83; - *inst++ = MOD_REG | SUB | reg_map[SLJIT_SP]; - /* Allocated size for registers must be divisible by 8. */ - SLJIT_ASSERT(!(saved_register_size & 0x7)); - /* Aligned to 16 byte. */ - if (saved_register_size & 0x8) { - *inst++ = 5 * sizeof(sljit_sw); - local_size -= 5 * sizeof(sljit_sw); - } else { - *inst++ = 4 * sizeof(sljit_sw); - local_size -= 4 * sizeof(sljit_sw); + if (local_size > 0) { + if (local_size <= 4 * 4096) { + if (local_size > 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096); + if (local_size > 2 * 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096 * 2); + if (local_size > 3 * 4096) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -4096 * 3); } - /* Second instruction */ - SLJIT_ASSERT(reg_map[SLJIT_R0] < 8); - *inst++ = REX_W; - *inst++ = MOV_rm_i32; - *inst++ = MOD_REG | reg_lmap[SLJIT_R0]; - sljit_unaligned_store_s32(inst, local_size); -#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ - || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - compiler->skip_checks = 1; -#endif - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_grow_stack))); + else { + EMIT_MOV(compiler, SLJIT_R0, 0, SLJIT_SP, 0); + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_IMM, (local_size - 1) >> 12); + + SLJIT_ASSERT (reg_map[SLJIT_R0] == 0); + + EMIT_MOV(compiler, TMP_REG2, 0, SLJIT_MEM1(SLJIT_R0), -4096); + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 4096)); + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + TMP_REG1, 0, TMP_REG1, 0, SLJIT_IMM, 1)); + + inst = (sljit_u8*)ensure_buf(compiler, 1 + 2); + FAIL_IF(!inst); + + INC_SIZE(2); + inst[0] = JNE_i8; + inst[1] = (sljit_s8) -19; + } + + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_MEM1(SLJIT_SP), -local_size); } #endif if (local_size > 0) { - if (local_size <= 127) { - inst = (sljit_u8*)ensure_buf(compiler, 1 + 4); - FAIL_IF(!inst); - INC_SIZE(4); - *inst++ = REX_W; - *inst++ = GROUP_BINARY_83; - *inst++ = MOD_REG | SUB | reg_map[SLJIT_SP]; - *inst++ = local_size; - } - else { - inst = (sljit_u8*)ensure_buf(compiler, 1 + 7); - FAIL_IF(!inst); - INC_SIZE(7); - *inst++ = REX_W; - *inst++ = GROUP_BINARY_81; - *inst++ = MOD_REG | SUB | reg_map[SLJIT_SP]; - sljit_unaligned_store_s32(inst, local_size); - inst += sizeof(sljit_s32); - } + FAIL_IF(emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), + SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size)); } #ifdef _WIN64 @@ -223,14 +222,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter(struct sljit_compiler *compi } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context(struct sljit_compiler *compiler, - sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, + sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) { sljit_s32 saved_register_size; CHECK_ERROR(); - CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); + CHECK(check_sljit_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size)); + set_set_context(compiler, options, arg_types, scratches, saveds, fscratches, fsaveds, local_size); #ifdef _WIN64 /* Two/four register slots for parameters plus space for xmm6 register if needed. */ @@ -414,7 +413,11 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 } } } - else if (!(flags & EX86_SSE2_OP2) && reg_map[b] >= 8) + else if (!(flags & EX86_SSE2_OP2)) { + if (reg_map[b] >= 8) + rex |= REX_B; + } + else if (freg_map[b] >= 8) rex |= REX_B; if (a & SLJIT_IMM) { @@ -441,7 +444,11 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 else { SLJIT_ASSERT(!(flags & EX86_SHIFT_INS) || a == SLJIT_PREF_SHIFT_REG); /* reg_map[SLJIT_PREF_SHIFT_REG] is less than 8. */ - if (!(flags & EX86_SSE2_OP1) && reg_map[a] >= 8) + if (!(flags & EX86_SSE2_OP1)) { + if (reg_map[a] >= 8) + rex |= REX_R; + } + else if (freg_map[a] >= 8) rex |= REX_R; } @@ -468,12 +475,12 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 if ((flags & EX86_BIN_INS) && (a & SLJIT_IMM)) *inst = (flags & EX86_BYTE_ARG) ? GROUP_BINARY_83 : GROUP_BINARY_81; - if ((a & SLJIT_IMM) || (a == 0)) + if (a & SLJIT_IMM) *buf_ptr = 0; else if (!(flags & EX86_SSE2_OP1)) *buf_ptr = reg_lmap[a] << 3; else - *buf_ptr = a << 3; + *buf_ptr = freg_lmap[a] << 3; } else { if (a & SLJIT_IMM) { @@ -487,7 +494,7 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 } if (!(b & SLJIT_MEM)) - *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2_OP2)) ? reg_lmap[b] : b); + *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2_OP2)) ? reg_lmap[b] : freg_lmap[b]); else if ((b & REG_MASK) != SLJIT_UNUSED) { if ((b & OFFS_REG_MASK) == SLJIT_UNUSED || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_SP)) { if (immb != 0 || reg_lmap[b & REG_MASK] == 5) { @@ -545,45 +552,161 @@ static sljit_u8* emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32 /* Call / return instructions */ /* --------------------------------------------------------------------- */ -static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 type) -{ - sljit_u8 *inst; - - /* After any change update IS_REG_CHANGED_BY_CALL as well. */ #ifndef _WIN64 - SLJIT_ASSERT(reg_map[SLJIT_R1] == 6 && reg_map[SLJIT_R0] < 8 && reg_map[SLJIT_R2] < 8 && reg_map[TMP_REG1] == 2); - inst = (sljit_u8*)ensure_buf(compiler, 1 + ((type < SLJIT_CALL3) ? 3 : 6)); - FAIL_IF(!inst); - INC_SIZE((type < SLJIT_CALL3) ? 3 : 6); - if (type >= SLJIT_CALL3) { - /* Move third argument to TMP_REG1. */ - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (0x2 /* rdx */ << 3) | reg_lmap[SLJIT_R2]; +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src_ptr, sljit_sw srcw) +{ + sljit_s32 src = src_ptr ? (*src_ptr) : 0; + sljit_s32 word_arg_count = 0; + + SLJIT_ASSERT(reg_map[SLJIT_R1] == 6 && reg_map[SLJIT_R3] == 1 && reg_map[TMP_REG1] == 2); + + compiler->mode32 = 0; + + /* Remove return value. */ + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + if ((arg_types & SLJIT_DEF_MASK) < SLJIT_ARG_TYPE_F32) + word_arg_count++; + arg_types >>= SLJIT_DEF_SHIFT; } - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (0x7 /* rdi */ << 3) | reg_lmap[SLJIT_R0]; + + if (word_arg_count == 0) + return SLJIT_SUCCESS; + + if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + EMIT_MOV(compiler, TMP_REG2, 0, src, srcw); + *src_ptr = TMP_REG2; + } + else if (src == SLJIT_R2 && word_arg_count >= SLJIT_R2) + *src_ptr = TMP_REG1; + + if (word_arg_count >= 3) + EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R2, 0); + return emit_mov(compiler, SLJIT_R2, 0, SLJIT_R0, 0); +} + #else - SLJIT_ASSERT(reg_map[SLJIT_R1] == 2 && reg_map[SLJIT_R0] < 8 && reg_map[SLJIT_R2] < 8 && reg_map[TMP_REG1] == 8); - inst = (sljit_u8*)ensure_buf(compiler, 1 + ((type < SLJIT_CALL3) ? 3 : 6)); - FAIL_IF(!inst); - INC_SIZE((type < SLJIT_CALL3) ? 3 : 6); - if (type >= SLJIT_CALL3) { - /* Move third argument to TMP_REG1. */ - *inst++ = REX_W | REX_R; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (0x0 /* r8 */ << 3) | reg_lmap[SLJIT_R2]; +static sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32 arg_types, sljit_s32 *src_ptr, sljit_sw srcw) +{ + sljit_s32 src = src_ptr ? (*src_ptr) : 0; + sljit_s32 arg_count = 0; + sljit_s32 word_arg_count = 0; + sljit_s32 float_arg_count = 0; + sljit_s32 types = 0; + sljit_s32 data_trandfer = 0; + static sljit_u8 word_arg_regs[5] = { 0, SLJIT_R3, SLJIT_R1, SLJIT_R2, TMP_REG1 }; + + SLJIT_ASSERT(reg_map[SLJIT_R3] == 1 && reg_map[SLJIT_R1] == 2 && reg_map[SLJIT_R2] == 8 && reg_map[TMP_REG1] == 9); + + compiler->mode32 = 0; + arg_types >>= SLJIT_DEF_SHIFT; + + while (arg_types) { + types = (types << SLJIT_DEF_SHIFT) | (arg_types & SLJIT_DEF_MASK); + + switch (arg_types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + case SLJIT_ARG_TYPE_F64: + arg_count++; + float_arg_count++; + + if (arg_count != float_arg_count) + data_trandfer = 1; + break; + default: + arg_count++; + word_arg_count++; + + if (arg_count != word_arg_count || arg_count != word_arg_regs[arg_count]) { + data_trandfer = 1; + + if (src == word_arg_regs[arg_count]) { + EMIT_MOV(compiler, TMP_REG2, 0, src, 0); + *src_ptr = TMP_REG2; + } + } + break; + } + + arg_types >>= SLJIT_DEF_SHIFT; } - *inst++ = REX_W; - *inst++ = MOV_r_rm; - *inst++ = MOD_REG | (0x1 /* rcx */ << 3) | reg_lmap[SLJIT_R0]; -#endif + + if (!data_trandfer) + return SLJIT_SUCCESS; + + if (src & SLJIT_MEM) { + ADJUST_LOCAL_OFFSET(src, srcw); + EMIT_MOV(compiler, TMP_REG2, 0, src, srcw); + *src_ptr = TMP_REG2; + } + + while (types) { + switch (types & SLJIT_DEF_MASK) { + case SLJIT_ARG_TYPE_F32: + if (arg_count != float_arg_count) + FAIL_IF(emit_sse2_load(compiler, 1, arg_count, float_arg_count, 0)); + arg_count--; + float_arg_count--; + break; + case SLJIT_ARG_TYPE_F64: + if (arg_count != float_arg_count) + FAIL_IF(emit_sse2_load(compiler, 0, arg_count, float_arg_count, 0)); + arg_count--; + float_arg_count--; + break; + default: + if (arg_count != word_arg_count || arg_count != word_arg_regs[arg_count]) + EMIT_MOV(compiler, word_arg_regs[arg_count], 0, word_arg_count, 0); + arg_count--; + word_arg_count--; + break; + } + + types >>= SLJIT_DEF_SHIFT; + } + return SLJIT_SUCCESS; } +#endif + +SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_call(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types) +{ + CHECK_ERROR_PTR(); + CHECK_PTR(check_sljit_emit_call(compiler, type, arg_types)); + + PTR_FAIL_IF(call_with_args(compiler, arg_types, NULL, 0)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_jump(compiler, type); +} + +SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall(struct sljit_compiler *compiler, sljit_s32 type, + sljit_s32 arg_types, + sljit_s32 src, sljit_sw srcw) +{ + CHECK_ERROR(); + CHECK(check_sljit_emit_icall(compiler, type, arg_types, src, srcw)); + + FAIL_IF(call_with_args(compiler, arg_types, &src, srcw)); + +#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ + || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) + compiler->skip_checks = 1; +#endif + + return sljit_emit_ijump(compiler, type, src, srcw); +} + SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw) { sljit_u8 *inst; @@ -629,11 +752,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler CHECK(check_sljit_emit_fast_return(compiler, src, srcw)); ADJUST_LOCAL_OFFSET(src, srcw); - if ((src & SLJIT_IMM) && NOT_HALFWORD(srcw)) { - FAIL_IF(emit_load_imm64(compiler, TMP_REG1, srcw)); - src = TMP_REG1; - } - if (FAST_IS_REG(src)) { if (reg_map[src] < 8) { inst = (sljit_u8*)ensure_buf(compiler, 1 + 1 + 1); @@ -651,7 +769,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler PUSH_REG(reg_lmap[src]); } } - else if (src & SLJIT_MEM) { + else { /* REX_W is not necessary (src is not immediate). */ compiler->mode32 = 1; inst = emit_x86_instruction(compiler, 1, 0, 0, src, srcw); @@ -663,23 +781,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fast_return(struct sljit_compiler FAIL_IF(!inst); INC_SIZE(1); } - else { - SLJIT_ASSERT(IS_HALFWORD(srcw)); - /* SLJIT_IMM. */ - inst = (sljit_u8*)ensure_buf(compiler, 1 + 5 + 1); - FAIL_IF(!inst); - - INC_SIZE(5 + 1); - *inst++ = PUSH_i32; - sljit_unaligned_store_s32(inst, srcw); - inst += sizeof(sljit_s32); - } RET(); return SLJIT_SUCCESS; } - /* --------------------------------------------------------------------- */ /* Extend input */ /* --------------------------------------------------------------------- */ diff --git a/pcre/sljit/sljitNativeX86_common.c b/pcre/sljit/sljitNativeX86_common.c index eb0886d6715..6f02ee3e8b4 100644 --- a/pcre/sljit/sljitNativeX86_common.c +++ b/pcre/sljit/sljitNativeX86_common.c @@ -26,7 +26,11 @@ SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name(void) { +#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) + return "x86" SLJIT_CPUINFO " ABI:fastcall"; +#else return "x86" SLJIT_CPUINFO; +#endif } /* @@ -35,7 +39,7 @@ SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name(void) 1 - ECX 2 - EDX 3 - EBX - 4 - none + 4 - ESP 5 - EBP 6 - ESI 7 - EDI @@ -47,7 +51,7 @@ SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name(void) 1 - RCX 2 - RDX 3 - RBX - 4 - none + 4 - RSP 5 - RBP 6 - RSI 7 - RDI @@ -92,23 +96,32 @@ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 3] = { #ifndef _WIN64 /* Args: rdi(=7), rsi(=6), rdx(=2), rcx(=1), r8, r9. Scratches: rax(=0), r10, r11 */ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 4] = { - 0, 0, 6, 1, 7, 8, 11, 10, 12, 5, 13, 14, 15, 3, 4, 2, 9 + 0, 0, 6, 7, 1, 8, 11, 10, 12, 5, 13, 14, 15, 3, 4, 2, 9 }; /* low-map. reg_map & 0x7. */ static const sljit_u8 reg_lmap[SLJIT_NUMBER_OF_REGISTERS + 4] = { - 0, 0, 6, 1, 7, 0, 3, 2, 4, 5, 5, 6, 7, 3, 4, 2, 1 + 0, 0, 6, 7, 1, 0, 3, 2, 4, 5, 5, 6, 7, 3, 4, 2, 1 }; #else /* Args: rcx(=1), rdx(=2), r8, r9. Scratches: rax(=0), r10, r11 */ static const sljit_u8 reg_map[SLJIT_NUMBER_OF_REGISTERS + 4] = { - 0, 0, 2, 1, 10, 11, 12, 5, 13, 14, 15, 7, 6, 3, 4, 8, 9 + 0, 0, 2, 8, 1, 11, 12, 5, 13, 14, 15, 7, 6, 3, 4, 9, 10 }; /* low-map. reg_map & 0x7. */ static const sljit_u8 reg_lmap[SLJIT_NUMBER_OF_REGISTERS + 4] = { - 0, 0, 2, 1, 2, 3, 4, 5, 5, 6, 7, 7, 6, 3, 4, 0, 1 + 0, 0, 2, 0, 1, 3, 4, 5, 5, 6, 7, 7, 6, 3, 4, 1, 2 }; #endif +/* Args: xmm0-xmm3 */ +static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1] = { + 4, 0, 1, 2, 3, 5, 6 +}; +/* low-map. freg_map & 0x7. */ +static const sljit_u8 freg_lmap[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1] = { + 4, 0, 1, 2, 3, 5, 6 +}; + #define REX_W 0x48 #define REX_R 0x44 #define REX_X 0x42 @@ -178,6 +191,8 @@ static const sljit_u8 reg_lmap[SLJIT_NUMBER_OF_REGISTERS + 4] = { #define CVTTSD2SI_r_xm 0x2c #define DIV (/* GROUP_F7 */ 6 << 3) #define DIVSD_x_xm 0x5e +#define FSTPS 0xd9 +#define FSTPD 0xdd #define INT3 0xcc #define IDIV (/* GROUP_F7 */ 7 << 3) #define IMUL (/* GROUP_F7 */ 5 << 3) @@ -462,11 +477,7 @@ static sljit_u8* generate_near_jump_code(struct sljit_jump *jump, sljit_u8 *code code_ptr += sizeof(sljit_s8); } else { jump->flags |= PATCH_MW; -#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) - code_ptr += sizeof(sljit_sw); -#else code_ptr += sizeof(sljit_s32); -#endif } return code_ptr; @@ -613,9 +624,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) get_cpu_features(); return cpu_has_cmov; - case SLJIT_HAS_PREF_SHIFT_REG: - return 1; - case SLJIT_HAS_SSE2: #if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2) if (cpu_has_sse2 == -1) @@ -634,14 +642,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) /* Operators */ /* --------------------------------------------------------------------- */ +#define BINARY_OPCODE(opcode) (((opcode ## _EAX_i32) << 24) | ((opcode ## _r_rm) << 16) | ((opcode ## _rm_r) << 8) | (opcode)) + static sljit_s32 emit_cum_binary(struct sljit_compiler *compiler, - sljit_u8 op_rm, sljit_u8 op_mr, sljit_u8 op_imm, sljit_u8 op_eax_imm, + sljit_u32 op_types, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w); static sljit_s32 emit_non_cum_binary(struct sljit_compiler *compiler, - sljit_u8 op_rm, sljit_u8 op_mr, sljit_u8 op_imm, sljit_u8 op_eax_imm, + sljit_u32 op_types, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w); @@ -653,22 +663,11 @@ static sljit_s32 emit_mov(struct sljit_compiler *compiler, #define EMIT_MOV(compiler, dst, dstw, src, srcw) \ FAIL_IF(emit_mov(compiler, dst, dstw, src, srcw)); -#ifdef _WIN32 -#include +static SLJIT_INLINE sljit_s32 emit_sse2_store(struct sljit_compiler *compiler, + sljit_s32 single, sljit_s32 dst, sljit_sw dstw, sljit_s32 src); -static void SLJIT_CALL sljit_grow_stack(sljit_sw local_size) -{ - /* Workaround for calling the internal _chkstk() function on Windows. - This function touches all 4k pages belongs to the requested stack space, - which size is passed in local_size. This is necessary on Windows where - the stack can only grow in 4k steps. However, this function just burn - CPU cycles if the stack is large enough. However, you don't know it in - advance, so it must always be called. I think this is a bad design in - general even if it has some reasons. */ - *(volatile sljit_s32*)alloca(local_size) = 0; -} - -#endif +static SLJIT_INLINE sljit_s32 emit_sse2_load(struct sljit_compiler *compiler, + sljit_s32 single, sljit_s32 dst, sljit_s32 src, sljit_sw srcw); #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) #include "sljitNativeX86_32.c" @@ -1115,7 +1114,7 @@ static sljit_s32 emit_unary(struct sljit_compiler *compiler, sljit_u8 opcode, return SLJIT_SUCCESS; } - if (dst == SLJIT_UNUSED) + if (SLJIT_UNLIKELY(dst == SLJIT_UNUSED)) dst = TMP_REG1; if (FAST_IS_REG(dst)) { @@ -1182,12 +1181,6 @@ static sljit_s32 emit_clz(struct sljit_compiler *compiler, sljit_s32 op_flags, SLJIT_UNUSED_ARG(op_flags); - if (SLJIT_UNLIKELY(src & SLJIT_IMM)) { - EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_IMM, srcw); - src = TMP_REG1; - srcw = 0; - } - if (cpu_has_cmov == -1) get_cpu_features(); @@ -1242,13 +1235,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw) { - sljit_s32 update = 0; sljit_s32 op_flags = GET_ALL_FLAGS(op); #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) sljit_s32 dst_is_ereg = 0; - sljit_s32 src_is_ereg = 0; -#else -# define src_is_ereg 0 #endif CHECK_ERROR(); @@ -1257,7 +1246,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile ADJUST_LOCAL_OFFSET(src, srcw); CHECK_EXTRA_REGS(dst, dstw, dst_is_ereg = 1); - CHECK_EXTRA_REGS(src, srcw, src_is_ereg = 1); + CHECK_EXTRA_REGS(src, srcw, (void)0); #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) compiler->mode32 = op_flags & SLJIT_I32_OP; #endif @@ -1270,32 +1259,27 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile op = GET_OPCODE(op); - if (op >= SLJIT_MOV && op <= SLJIT_MOVU_P) { + if (op >= SLJIT_MOV && op <= SLJIT_MOV_P) { #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) compiler->mode32 = 0; #endif - if (op_flags & SLJIT_I32_OP) { - if (FAST_IS_REG(src) && src == dst) { - if (!TYPE_CAST_NEEDED(op)) - return SLJIT_SUCCESS; - } -#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if (op == SLJIT_MOV_S32 && (src & SLJIT_MEM)) - op = SLJIT_MOV_U32; - if (op == SLJIT_MOVU_S32 && (src & SLJIT_MEM)) - op = SLJIT_MOVU_U32; - if (op == SLJIT_MOV_U32 && (src & SLJIT_IMM)) - op = SLJIT_MOV_S32; - if (op == SLJIT_MOVU_U32 && (src & SLJIT_IMM)) - op = SLJIT_MOVU_S32; -#endif + if (FAST_IS_REG(src) && src == dst) { + if (!TYPE_CAST_NEEDED(op)) + return SLJIT_SUCCESS; } - SLJIT_COMPILE_ASSERT(SLJIT_MOV + 8 == SLJIT_MOVU, movu_offset); - if (op >= SLJIT_MOVU) { - update = 1; - op -= 8; + if (op_flags & SLJIT_I32_OP) { +#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) + if (src & SLJIT_MEM) { + if (op == SLJIT_MOV_S32) + op = SLJIT_MOV_U32; + } + else if (src & SLJIT_IMM) { + if (op == SLJIT_MOV_U32) + op = SLJIT_MOV_S32; + } +#endif } if (src & SLJIT_IMM) { @@ -1369,28 +1353,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile if (SLJIT_UNLIKELY(dst_is_ereg) && dst == TMP_REG1) return emit_mov(compiler, SLJIT_MEM1(SLJIT_SP), dstw, TMP_REG1, 0); #endif - - if (SLJIT_UNLIKELY(update) && (src & SLJIT_MEM) && !src_is_ereg && (src & REG_MASK)) { - if ((src & OFFS_REG_MASK) != 0) { - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, - (src & REG_MASK), 0, (src & REG_MASK), 0, OFFS_REG(dst), 0)); - } - else if (srcw != 0) { - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, - (src & REG_MASK), 0, (src & REG_MASK), 0, SLJIT_IMM, srcw)); - } - } - - if (SLJIT_UNLIKELY(update) && (dst & SLJIT_MEM) && (dst & REG_MASK)) { - if ((dst & OFFS_REG_MASK) != 0) { - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, - (dst & REG_MASK), 0, (dst & REG_MASK), 0, OFFS_REG(dst), 0)); - } - else if (dstw != 0) { - FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, - (dst & REG_MASK), 0, (dst & REG_MASK), 0, SLJIT_IMM, dstw)); - } - } return SLJIT_SUCCESS; } @@ -1408,10 +1370,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile } return SLJIT_SUCCESS; - -#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -# undef src_is_ereg -#endif } #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -1445,12 +1403,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile #endif static sljit_s32 emit_cum_binary(struct sljit_compiler *compiler, - sljit_u8 op_rm, sljit_u8 op_mr, sljit_u8 op_imm, sljit_u8 op_eax_imm, + sljit_u32 op_types, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w) { sljit_u8* inst; + sljit_u8 op_eax_imm = (op_types >> 24); + sljit_u8 op_rm = (op_types >> 16) & 0xff; + sljit_u8 op_mr = (op_types >> 8) & 0xff; + sljit_u8 op_imm = op_types & 0xff; if (dst == SLJIT_UNUSED) { EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); @@ -1561,12 +1523,16 @@ static sljit_s32 emit_cum_binary(struct sljit_compiler *compiler, } static sljit_s32 emit_non_cum_binary(struct sljit_compiler *compiler, - sljit_u8 op_rm, sljit_u8 op_mr, sljit_u8 op_imm, sljit_u8 op_eax_imm, + sljit_u32 op_types, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w) { sljit_u8* inst; + sljit_u8 op_eax_imm = (op_types >> 24); + sljit_u8 op_rm = (op_types >> 16) & 0xff; + sljit_u8 op_mr = (op_types >> 8) & 0xff; + sljit_u8 op_imm = op_types & 0xff; if (dst == SLJIT_UNUSED) { EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); @@ -2044,7 +2010,7 @@ static sljit_s32 emit_shift(struct sljit_compiler *compiler, *inst |= mode; EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, TMP_REG1, 0); } - else if (FAST_IS_REG(dst) && dst != src2 && !ADDRESSING_DEPENDS_ON(src2, dst)) { + else if (SLOW_IS_REG(dst) && dst != src2 && !ADDRESSING_DEPENDS_ON(src2, dst)) { if (src1 != dst) EMIT_MOV(compiler, dst, 0, src1, src1w); EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_PREF_SHIFT_REG, 0); @@ -2057,27 +2023,24 @@ static sljit_s32 emit_shift(struct sljit_compiler *compiler, else { /* This case is complex since ecx itself may be used for addressing, and this case must be supported as well. */ -#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); +#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_SP), 0, SLJIT_PREF_SHIFT_REG, 0); EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, src2, src2w); inst = emit_x86_instruction(compiler, 1 | EX86_SHIFT_INS, SLJIT_PREF_SHIFT_REG, 0, TMP_REG1, 0); FAIL_IF(!inst); *inst |= mode; EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, SLJIT_MEM1(SLJIT_SP), 0); - EMIT_MOV(compiler, dst, dstw, TMP_REG1, 0); #else - EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); - EMIT_MOV(compiler, TMP_REG2, 0, src2, src2w); - inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, SLJIT_PREF_SHIFT_REG, 0); - FAIL_IF(!inst); - *inst = XCHG_r_rm; + EMIT_MOV(compiler, TMP_REG2, 0, SLJIT_PREF_SHIFT_REG, 0); + EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, src2, src2w); inst = emit_x86_instruction(compiler, 1 | EX86_SHIFT_INS, SLJIT_PREF_SHIFT_REG, 0, TMP_REG1, 0); FAIL_IF(!inst); *inst |= mode; EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, TMP_REG2, 0); - EMIT_MOV(compiler, dst, dstw, TMP_REG1, 0); #endif + if (dst != SLJIT_UNUSED) + return emit_mov(compiler, dst, dstw, TMP_REG1, 0); } return SLJIT_SUCCESS; @@ -2101,7 +2064,7 @@ static sljit_s32 emit_shift_with_flags(struct sljit_compiler *compiler, if (!set_flags) return emit_mov(compiler, dst, dstw, src1, src1w); /* OR dst, src, 0 */ - return emit_cum_binary(compiler, OR_r_rm, OR_rm_r, OR, OR_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(OR), dst, dstw, src1, src1w, SLJIT_IMM, 0); } @@ -2111,10 +2074,10 @@ static sljit_s32 emit_shift_with_flags(struct sljit_compiler *compiler, if (!FAST_IS_REG(dst)) FAIL_IF(emit_cmp_binary(compiler, src1, src1w, SLJIT_IMM, 0)); - FAIL_IF(emit_shift(compiler,mode, dst, dstw, src1, src1w, src2, src2w)); + FAIL_IF(emit_shift(compiler, mode, dst, dstw, src1, src1w, src2, src2w)); if (FAST_IS_REG(dst)) - return emit_cmp_binary(compiler, dst, dstw, SLJIT_IMM, 0); + return emit_cmp_binary(compiler, (dst == SLJIT_UNUSED) ? TMP_REG1 : dst, dstw, SLJIT_IMM, 0); return SLJIT_SUCCESS; } @@ -2145,10 +2108,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile if (emit_lea_binary(compiler, dst, dstw, src1, src1w, src2, src2w) != SLJIT_ERR_UNSUPPORTED) return compiler->error; } - return emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(ADD), dst, dstw, src1, src1w, src2, src2w); case SLJIT_ADDC: - return emit_cum_binary(compiler, ADC_r_rm, ADC_rm_r, ADC, ADC_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(ADC), dst, dstw, src1, src1w, src2, src2w); case SLJIT_SUB: if (!HAS_FLAGS(op)) { @@ -2158,23 +2121,23 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compile if (dst == SLJIT_UNUSED) return emit_cmp_binary(compiler, src1, src1w, src2, src2w); - return emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32, + return emit_non_cum_binary(compiler, BINARY_OPCODE(SUB), dst, dstw, src1, src1w, src2, src2w); case SLJIT_SUBC: - return emit_non_cum_binary(compiler, SBB_r_rm, SBB_rm_r, SBB, SBB_EAX_i32, + return emit_non_cum_binary(compiler, BINARY_OPCODE(SBB), dst, dstw, src1, src1w, src2, src2w); case SLJIT_MUL: return emit_mul(compiler, dst, dstw, src1, src1w, src2, src2w); case SLJIT_AND: if (dst == SLJIT_UNUSED) return emit_test_binary(compiler, src1, src1w, src2, src2w); - return emit_cum_binary(compiler, AND_r_rm, AND_rm_r, AND, AND_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(AND), dst, dstw, src1, src1w, src2, src2w); case SLJIT_OR: - return emit_cum_binary(compiler, OR_r_rm, OR_rm_r, OR, OR_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(OR), dst, dstw, src1, src1w, src2, src2w); case SLJIT_XOR: - return emit_cum_binary(compiler, XOR_r_rm, XOR_rm_r, XOR, XOR_EAX_i32, + return emit_cum_binary(compiler, BINARY_OPCODE(XOR), dst, dstw, src1, src1w, src2, src2w); case SLJIT_SHL: return emit_shift_with_flags(compiler, SHL, HAS_FLAGS(op), @@ -2203,7 +2166,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index(sljit_s32 reg) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index(sljit_s32 reg) { CHECK_REG_INDEX(check_sljit_get_float_register_index(reg)); +#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) return reg; +#else + return freg_map[reg]; +#endif } SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom(struct sljit_compiler *compiler, @@ -2345,6 +2312,7 @@ static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compile FAIL_IF(emit_sse2_load(compiler, op & SLJIT_F32_OP, TMP_FREG, src1, src1w)); src1 = TMP_FREG; } + return emit_sse2_logic(compiler, UCOMISD_x_xm, !(op & SLJIT_F32_OP), src1, src2, src2w); } @@ -2516,9 +2484,6 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); type &= 0xff; - if (type >= SLJIT_CALL1) - PTR_FAIL_IF(call_with_args(compiler, type)); - /* Worst case size. */ #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) compiler->size += (type >= SLJIT_JUMP) ? 5 : 6; @@ -2534,14 +2499,6 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile return jump; } -#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -#ifndef _WIN64 -#define IS_REG_CHANGED_BY_CALL(src, type) ((src) == SLJIT_R3) -#else -#define IS_REG_CHANGED_BY_CALL(src, type) ((src) == SLJIT_R2) -#endif -#endif - SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw) { sljit_u8 *inst; @@ -2553,25 +2510,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump(struct sljit_compiler *compi CHECK_EXTRA_REGS(src, srcw, (void)0); - if (type >= SLJIT_CALL1) { -#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) - if (src == SLJIT_R2) { - EMIT_MOV(compiler, TMP_REG1, 0, src, 0); - src = TMP_REG1; - } - if (src == SLJIT_MEM1(SLJIT_SP) && type >= SLJIT_CALL3) - srcw += sizeof(sljit_sw); -#endif -#else - if ((src & SLJIT_MEM) || IS_REG_CHANGED_BY_CALL(src, type)) { - EMIT_MOV(compiler, TMP_REG2, 0, src, srcw); - src = TMP_REG2; - } -#endif - FAIL_IF(call_with_args(compiler, type)); - } - if (src == SLJIT_IMM) { jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); FAIL_IF_NULL(jump); diff --git a/pcre/sljit/sljitUtils.c b/pcre/sljit/sljitUtils.c index 9029db292c0..5c2a8389328 100644 --- a/pcre/sljit/sljitUtils.c +++ b/pcre/sljit/sljitUtils.c @@ -48,12 +48,12 @@ static SLJIT_INLINE void allocator_release_lock(void) #if (defined SLJIT_UTIL_GLOBAL_LOCK && SLJIT_UTIL_GLOBAL_LOCK) -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_grab_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_grab_lock(void) { /* Always successful. */ } -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_release_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_release_lock(void) { /* Always successful. */ } @@ -88,7 +88,7 @@ static SLJIT_INLINE void allocator_release_lock(void) static HANDLE global_mutex = 0; -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_grab_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_grab_lock(void) { /* No idea what to do if an error occures. Static mutexes should never fail... */ if (!global_mutex) @@ -97,7 +97,7 @@ SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_grab_lock(void) WaitForSingleObject(global_mutex, INFINITE); } -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_release_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_release_lock(void) { ReleaseMutex(global_mutex); } @@ -130,12 +130,12 @@ static SLJIT_INLINE void allocator_release_lock(void) static pthread_mutex_t global_mutex = PTHREAD_MUTEX_INITIALIZER; -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_grab_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_grab_lock(void) { pthread_mutex_lock(&global_mutex); } -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_release_lock(void) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_release_lock(void) { pthread_mutex_unlock(&global_mutex); } @@ -203,7 +203,7 @@ static SLJIT_INLINE sljit_s32 open_dev_zero(void) /* Planning to make it even more clever in the future. */ static sljit_sw sljit_page_align = 0; -SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(sljit_uw limit, sljit_uw max_limit, void *allocator_data) +SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_FUNC sljit_allocate_stack(sljit_uw start_size, sljit_uw max_size, void *allocator_data) { struct sljit_stack *stack; void *ptr; @@ -212,7 +212,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj #endif SLJIT_UNUSED_ARG(allocator_data); - if (limit > max_limit || limit < 1) + if (start_size > max_size || start_size < 1) return NULL; #ifdef _WIN32 @@ -234,25 +234,27 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj if (!stack) return NULL; - /* Align max_limit. */ - max_limit = (max_limit + sljit_page_align) & ~sljit_page_align; + /* Align max_size. */ + max_size = (max_size + sljit_page_align) & ~sljit_page_align; #ifdef _WIN32 - ptr = VirtualAlloc(NULL, max_limit, MEM_RESERVE, PAGE_READWRITE); + ptr = VirtualAlloc(NULL, max_size, MEM_RESERVE, PAGE_READWRITE); if (!ptr) { SLJIT_FREE(stack, allocator_data); return NULL; } - stack->max_limit = (sljit_u8 *)ptr; - stack->base = stack->max_limit + max_limit; - stack->limit = stack->base; - if (sljit_stack_resize(stack, stack->base - limit)) { + + stack->min_start = (sljit_u8 *)ptr; + stack->end = stack->min_start + max_size; + stack->start = stack->end; + + if (sljit_stack_resize(stack, stack->end - start_size) == NULL) { sljit_free_stack(stack, allocator_data); return NULL; } #else #ifdef MAP_ANON - ptr = mmap(NULL, max_limit, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + ptr = mmap(NULL, max_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); #else if (dev_zero < 0) { if (open_dev_zero()) { @@ -260,73 +262,70 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj return NULL; } } - ptr = mmap(NULL, max_limit, PROT_READ | PROT_WRITE, MAP_PRIVATE, dev_zero, 0); + ptr = mmap(NULL, max_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, dev_zero, 0); #endif if (ptr == MAP_FAILED) { SLJIT_FREE(stack, allocator_data); return NULL; } - stack->max_limit = (sljit_u8 *)ptr; - stack->base = stack->max_limit + max_limit; - stack->limit = stack->base - limit; + stack->min_start = (sljit_u8 *)ptr; + stack->end = stack->min_start + max_size; + stack->start = stack->end - start_size; #endif - stack->top = stack->base; + stack->top = stack->end; return stack; } #undef PAGE_ALIGN -SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack *stack, void *allocator_data) +SLJIT_API_FUNC_ATTRIBUTE void SLJIT_FUNC sljit_free_stack(struct sljit_stack *stack, void *allocator_data) { SLJIT_UNUSED_ARG(allocator_data); #ifdef _WIN32 - VirtualFree((void*)stack->max_limit, 0, MEM_RELEASE); + VirtualFree((void*)stack->min_start, 0, MEM_RELEASE); #else - munmap((void*)stack->max_limit, stack->base - stack->max_limit); + munmap((void*)stack->min_start, stack->end - stack->min_start); #endif SLJIT_FREE(stack, allocator_data); } -SLJIT_API_FUNC_ATTRIBUTE sljit_sw SLJIT_CALL sljit_stack_resize(struct sljit_stack *stack, sljit_u8 *new_limit) +SLJIT_API_FUNC_ATTRIBUTE sljit_u8 *SLJIT_FUNC sljit_stack_resize(struct sljit_stack *stack, sljit_u8 *new_start) { - sljit_uw aligned_old_limit; - sljit_uw aligned_new_limit; + sljit_uw aligned_old_start; + sljit_uw aligned_new_start; + + if ((new_start < stack->min_start) || (new_start >= stack->end)) + return NULL; - if ((new_limit < stack->max_limit) || (new_limit >= stack->base)) - return -1; #ifdef _WIN32 - aligned_new_limit = (sljit_uw)new_limit & ~sljit_page_align; - aligned_old_limit = ((sljit_uw)stack->limit) & ~sljit_page_align; - if (aligned_new_limit != aligned_old_limit) { - if (aligned_new_limit < aligned_old_limit) { - if (!VirtualAlloc((void*)aligned_new_limit, aligned_old_limit - aligned_new_limit, MEM_COMMIT, PAGE_READWRITE)) - return -1; + aligned_new_start = (sljit_uw)new_start & ~sljit_page_align; + aligned_old_start = ((sljit_uw)stack->start) & ~sljit_page_align; + if (aligned_new_start != aligned_old_start) { + if (aligned_new_start < aligned_old_start) { + if (!VirtualAlloc((void*)aligned_new_start, aligned_old_start - aligned_new_start, MEM_COMMIT, PAGE_READWRITE)) + return NULL; } else { - if (!VirtualFree((void*)aligned_old_limit, aligned_new_limit - aligned_old_limit, MEM_DECOMMIT)) - return -1; + if (!VirtualFree((void*)aligned_old_start, aligned_new_start - aligned_old_start, MEM_DECOMMIT)) + return NULL; } } - stack->limit = new_limit; - return 0; #else - if (new_limit <= stack->limit) { - stack->limit = new_limit; - return 0; - } - aligned_new_limit = (sljit_uw)new_limit & ~sljit_page_align; - aligned_old_limit = ((sljit_uw)stack->limit) & ~sljit_page_align; - /* If madvise is available, we release the unnecessary space. */ + if (stack->start < new_start) { + aligned_new_start = (sljit_uw)new_start & ~sljit_page_align; + aligned_old_start = ((sljit_uw)stack->start) & ~sljit_page_align; + /* If madvise is available, we release the unnecessary space. */ #if defined(MADV_DONTNEED) - if (aligned_new_limit > aligned_old_limit) - madvise((void*)aligned_old_limit, aligned_new_limit - aligned_old_limit, MADV_DONTNEED); + if (aligned_new_start > aligned_old_start) + madvise((void*)aligned_old_start, aligned_new_start - aligned_old_start, MADV_DONTNEED); #elif defined(POSIX_MADV_DONTNEED) - if (aligned_new_limit > aligned_old_limit) - posix_madvise((void*)aligned_old_limit, aligned_new_limit - aligned_old_limit, POSIX_MADV_DONTNEED); + if (aligned_new_start > aligned_old_start) + posix_madvise((void*)aligned_old_start, aligned_new_start - aligned_old_start, POSIX_MADV_DONTNEED); #endif - stack->limit = new_limit; - return 0; + } #endif + stack->start = new_start; + return new_start; } #endif /* SLJIT_UTIL_STACK */ diff --git a/pcre/test-driver b/pcre/test-driver index 8e575b017d9..0218a01f616 100755 --- a/pcre/test-driver +++ b/pcre/test-driver @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -143,6 +143,6 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/pcre/testdata/testinput2 b/pcre/testdata/testinput2 index 08c6f39a565..8ba4dc4ddab 100644 --- a/pcre/testdata/testinput2 +++ b/pcre/testdata/testinput2 @@ -4249,4 +4249,12 @@ backtracking verbs. --/ /(?=.*[A-Z])/I +"(?<=(a))\1?b" + ab + aaab + +"(?=(a))\1?b" + ab + aaab + /-- End of testinput2 --/ diff --git a/pcre/testdata/testinput5 b/pcre/testdata/testinput5 index 28561a93572..c94008c3f29 100644 --- a/pcre/testdata/testinput5 +++ b/pcre/testdata/testinput5 @@ -798,4 +798,10 @@ /(?<=\K\x{17f})/8G+ \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} +/\C[^\v]+\x80/8 + [Aá¿»BÅ€C] + +/\C[^\d]+\x80/8 + [Aá¿»BÅ€C] + /-- End of testinput5 --/ diff --git a/pcre/testdata/testoutput2 b/pcre/testdata/testoutput2 index 811bbefc84c..61ed8d9d4e4 100644 --- a/pcre/testdata/testoutput2 +++ b/pcre/testdata/testoutput2 @@ -14705,4 +14705,20 @@ No options No first char No need char +"(?<=(a))\1?b" + ab + 0: b + 1: a + aaab + 0: ab + 1: a + +"(?=(a))\1?b" + ab + 0: ab + 1: a + aaab + 0: ab + 1: a + /-- End of testinput2 --/ diff --git a/pcre/testdata/testoutput5 b/pcre/testdata/testoutput5 index bab989ca7e5..090e1e1c85f 100644 --- a/pcre/testdata/testoutput5 +++ b/pcre/testdata/testoutput5 @@ -1942,4 +1942,12 @@ Need char = 'z' 0: \x{17f} 0+ +/\C[^\v]+\x80/8 + [Aá¿»BÅ€C] +No match + +/\C[^\d]+\x80/8 + [Aá¿»BÅ€C] +No match + /-- End of testinput5 --/ From adaa891ae7113069e402b40637dd9ddbd96d27bc Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 12 Apr 2018 14:55:43 +0200 Subject: [PATCH 11/45] MDEV-13699: Assertion `!new_field->field_name.str || strlen(new_field->field_name.str) == new_field->field_name.length' failed in create_tmp_table on 2nd execution of PS with semijoin The problem was that SJ (semi-join) used secondary list (array) of subquery select list. The items there was prepared once then cleaned up (but not really freed from memory because it was made in statement memory). Original list was not prepared after first execution because select was removed by conversion to SJ. The solution is to use original list but prepare it first. --- mysql-test/r/subselect_sj.result | 26 +++++++++++++++++++++++ mysql-test/r/subselect_sj_jcl6.result | 26 +++++++++++++++++++++++ mysql-test/t/subselect_sj.test | 30 +++++++++++++++++++++++++++ sql/opt_subselect.cc | 24 ++++++++++++++------- 4 files changed, 98 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/subselect_sj.result b/mysql-test/r/subselect_sj.result index 74384141998..519d53eb98f 100644 --- a/mysql-test/r/subselect_sj.result +++ b/mysql-test/r/subselect_sj.result @@ -3153,4 +3153,30 @@ id select_type table type possible_keys key key_len ref rows filtered Extra Warnings: Note 1003 select `test`.`t1`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2`,`test`.`t4`.`c4` AS `c4` from `test`.`t1` left join (`test`.`t2` join `test`.`t4`) on(((`test`.`t2`.`c2` = `test`.`t1`.`c1`) and (`test`.`t1`.`c1`,(select `test`.`t3`.`c3` from `test`.`t3` where ((`test`.`t2`.`c2`) = `test`.`t3`.`c3`))))) where 1 DROP TABLE t1,t2,t3,t4; +# +# MDEV-13699: Assertion `!new_field->field_name.str || +# strlen(new_field->field_name.str) == new_field->field_name.length' +# failed in create_tmp_table on 2nd execution of PS with semijoin +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (3),(4); +CREATE TABLE t3 (c INT); +CREATE ALGORITHM=MERGE VIEW v3 AS SELECT * FROM t3; +INSERT INTO t3 VALUES (5),(6); +PREPARE stmt FROM +"SELECT * FROM t1 + WHERE EXISTS ( + SELECT * FROM t2 WHERE t1.a IN ( SELECT c AS fld FROM v3 ) + )"; +EXECUTE stmt; +a +EXECUTE stmt; +a +EXECUTE stmt; +a +drop view v3; +drop table t1,t2,t3; +# End of 5.5 test set optimizer_switch=@subselect_sj_tmp; diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result index 47dbdd782b5..32704060208 100644 --- a/mysql-test/r/subselect_sj_jcl6.result +++ b/mysql-test/r/subselect_sj_jcl6.result @@ -3167,6 +3167,32 @@ id select_type table type possible_keys key key_len ref rows filtered Extra Warnings: Note 1003 select `test`.`t1`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2`,`test`.`t4`.`c4` AS `c4` from `test`.`t1` left join (`test`.`t2` join `test`.`t4`) on(((`test`.`t2`.`c2` = `test`.`t1`.`c1`) and (`test`.`t1`.`c1`,(select `test`.`t3`.`c3` from `test`.`t3` where ((`test`.`t2`.`c2`) = `test`.`t3`.`c3`))))) where 1 DROP TABLE t1,t2,t3,t4; +# +# MDEV-13699: Assertion `!new_field->field_name.str || +# strlen(new_field->field_name.str) == new_field->field_name.length' +# failed in create_tmp_table on 2nd execution of PS with semijoin +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (3),(4); +CREATE TABLE t3 (c INT); +CREATE ALGORITHM=MERGE VIEW v3 AS SELECT * FROM t3; +INSERT INTO t3 VALUES (5),(6); +PREPARE stmt FROM +"SELECT * FROM t1 + WHERE EXISTS ( + SELECT * FROM t2 WHERE t1.a IN ( SELECT c AS fld FROM v3 ) + )"; +EXECUTE stmt; +a +EXECUTE stmt; +a +EXECUTE stmt; +a +drop view v3; +drop table t1,t2,t3; +# End of 5.5 test set optimizer_switch=@subselect_sj_tmp; # # BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off diff --git a/mysql-test/t/subselect_sj.test b/mysql-test/t/subselect_sj.test index acee1a67d63..0a35a61ecd3 100644 --- a/mysql-test/t/subselect_sj.test +++ b/mysql-test/t/subselect_sj.test @@ -2841,5 +2841,35 @@ eval EXPLAIN EXTENDED $q2; DROP TABLE t1,t2,t3,t4; +--echo # +--echo # MDEV-13699: Assertion `!new_field->field_name.str || +--echo # strlen(new_field->field_name.str) == new_field->field_name.length' +--echo # failed in create_tmp_table on 2nd execution of PS with semijoin +--echo # + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); + +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (3),(4); + +CREATE TABLE t3 (c INT); +CREATE ALGORITHM=MERGE VIEW v3 AS SELECT * FROM t3; +INSERT INTO t3 VALUES (5),(6); + +PREPARE stmt FROM + "SELECT * FROM t1 + WHERE EXISTS ( + SELECT * FROM t2 WHERE t1.a IN ( SELECT c AS fld FROM v3 ) + )"; +EXECUTE stmt; +EXECUTE stmt; +EXECUTE stmt; + +drop view v3; +drop table t1,t2,t3; + +--echo # End of 5.5 test + # The following command must be the last one the file set optimizer_switch=@subselect_sj_tmp; diff --git a/sql/opt_subselect.cc b/sql/opt_subselect.cc index 1bda84bacd7..a7edd64e68b 100644 --- a/sql/opt_subselect.cc +++ b/sql/opt_subselect.cc @@ -3725,21 +3725,29 @@ bool setup_sj_materialization_part1(JOIN_TAB *sjm_tab) SJ_MATERIALIZATION_INFO *sjm= emb_sj_nest->sj_mat_info; THD *thd= tab->join->thd; /* First the calls come to the materialization function */ - //List &item_list= emb_sj_nest->sj_subq_pred->unit->first_select()->item_list; - + DBUG_ASSERT(sjm->is_used); /* Set up the table to write to, do as select_union::create_result_table does */ sjm->sjm_table_param.init(); sjm->sjm_table_param.bit_fields_as_long= TRUE; - //List_iterator it(item_list); SELECT_LEX *subq_select= emb_sj_nest->sj_subq_pred->unit->first_select(); - Item **p_item= subq_select->ref_pointer_array; - Item **p_end= p_item + subq_select->item_list.elements; - //while((right_expr= it++)) - for(;p_item != p_end; p_item++) - sjm->sjm_table_cols.push_back(*p_item); + List_iterator it(subq_select->item_list); + Item *item; + while((item= it++)) + { + /* + This semi-join replaced the subquery (subq_select) and so on + re-executing it will not be prepared. To use the Items from its + select list we have to prepare (fix_fields) them + */ + if (!item->fixed && item->fix_fields(thd, it.ref())) + DBUG_RETURN(TRUE); + item= *(it.ref()); // it can be changed by fix_fields + DBUG_ASSERT(!item->name_length || item->name_length == strlen(item->name)); + sjm->sjm_table_cols.push_back(item, thd->mem_root); + } sjm->sjm_table_param.field_count= subq_select->item_list.elements; sjm->sjm_table_param.force_not_null_cols= TRUE; From eb057dce2027b673b7b140bae42963774027e0a5 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Tue, 24 Apr 2018 15:51:49 -0700 Subject: [PATCH 12/45] MDEV-15035 Wrong results when calling a stored procedure multiple times with different arguments. If the ON expression of an outer join is an OR formula with one of the disjunct being a constant formula then the expression cannot be null-rejected if the constant formula is true. Otherwise it can be null-rejected and if so the outer join can be converted into inner join. This optimization was added in the patch for mdev-4817. Yet the code had a defect: if the query was used in a stored procedure with parameters and the constant item contained some of them then the value of this constant item depended on the values of the parameters. With some parameters it may be true, for others not. The validity of conversion to inner join is checked only once and it happens only for the first call of procedure. So if the parameters in the first call allowed the conversion it was done and next calls used the transformed query though there could be calls whose parameters made the conversion invalid. Fixed by cheking whether the constant disjunct in the ON expression originally contained an SP parameter. If so the expression is not considered as null-rejected. For this check a new item's attribute was intruduced: Item::with_param. It is calculated for each item by fix fields() functions. Also moved the call of optimize_constant_subqueries() in JOIN::optimize after the call of simplify_joins(). The reason for this is that after the optimization introduced by the patch for mdev-4817 simplify_joins() can use the results of execution of non-expensive constant subqueries and this is not valid. --- mysql-test/r/sp-innodb.result | 34 +++++++++++++++++++++++++++ mysql-test/t/sp-innodb.test | 42 ++++++++++++++++++++++++++++++++++ sql/item.cc | 7 ++++++ sql/item.h | 1 + sql/item_cmpfunc.cc | 43 +++++++++++++++++++++++++---------- sql/item_func.cc | 1 + sql/item_func.h | 7 ++++++ sql/item_row.cc | 1 + sql/item_sum.cc | 3 +++ sql/sql_select.cc | 6 ++--- 10 files changed, 130 insertions(+), 15 deletions(-) diff --git a/mysql-test/r/sp-innodb.result b/mysql-test/r/sp-innodb.result index b5fe920c675..9daf2c457f5 100644 --- a/mysql-test/r/sp-innodb.result +++ b/mysql-test/r/sp-innodb.result @@ -138,3 +138,37 @@ SET @@innodb_lock_wait_timeout= @innodb_lock_wait_timeout_saved; # # BUG 16041903: End of test case # +# +# MDEV-15035: SP using query with outer join and a parameter +# in ON expression +# +CREATE TABLE t1 ( +id int NOT NULL, +PRIMARY KEY (id) +) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1), (2); +CREATE TABLE t2 ( +id int NOT NULL, +id_foo int NOT NULL, +PRIMARY KEY (id) +) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1, 1); +DROP PROCEDURE IF EXISTS test_proc; +CREATE PROCEDURE test_proc(IN param int) +LANGUAGE SQL +READS SQL DATA +BEGIN +SELECT DISTINCT f.id +FROM t1 f +LEFT OUTER JOIN t2 b ON b.id_foo = f.id +WHERE (param <> 0 OR b.id IS NOT NULL); +END| +CALL test_proc(0); +id +1 +CALL test_proc(1); +id +1 +2 +DROP PROCEDURE IF EXISTS test_proc; +DROP TABLE t1, t2; diff --git a/mysql-test/t/sp-innodb.test b/mysql-test/t/sp-innodb.test index 23715166a02..e44a853e713 100644 --- a/mysql-test/t/sp-innodb.test +++ b/mysql-test/t/sp-innodb.test @@ -158,5 +158,47 @@ SET @@innodb_lock_wait_timeout= @innodb_lock_wait_timeout_saved; --echo # BUG 16041903: End of test case --echo # +--echo # +--echo # MDEV-15035: SP using query with outer join and a parameter +--echo # in ON expression +--echo # + +CREATE TABLE t1 ( + id int NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES (1), (2); + +CREATE TABLE t2 ( + id int NOT NULL, + id_foo int NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB; + +INSERT INTO t2 VALUES (1, 1); + +--disable_warnings +DROP PROCEDURE IF EXISTS test_proc; +--enable_warnings + +DELIMITER |; +CREATE PROCEDURE test_proc(IN param int) +LANGUAGE SQL +READS SQL DATA +BEGIN + SELECT DISTINCT f.id + FROM t1 f + LEFT OUTER JOIN t2 b ON b.id_foo = f.id + WHERE (param <> 0 OR b.id IS NOT NULL); +END| +DELIMITER ;| + +CALL test_proc(0); +CALL test_proc(1); + +DROP PROCEDURE IF EXISTS test_proc; +DROP TABLE t1, t2; + # Wait till we reached the initial number of concurrent sessions --source include/wait_until_count_sessions.inc diff --git a/sql/item.cc b/sql/item.cc index 08a00615c0c..c5c6df0ec48 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -504,6 +504,7 @@ Item::Item(): in_rollup= 0; decimals= 0; max_length= 0; with_subselect= 0; + with_param= 0; cmp_context= IMPOSSIBLE_RESULT; /* Initially this item is not attached to any JOIN_TAB. */ join_tab_idx= MAX_TABLES; @@ -550,6 +551,7 @@ Item::Item(THD *thd, Item *item): null_value(item->null_value), unsigned_flag(item->unsigned_flag), with_sum_func(item->with_sum_func), + with_param(item->with_param), with_field(item->with_field), fixed(item->fixed), is_autogenerated_name(item->is_autogenerated_name), @@ -1486,6 +1488,9 @@ bool Item_sp_variable::fix_fields(THD *thd, Item **) max_length= it->max_length; decimals= it->decimals; unsigned_flag= it->unsigned_flag; + with_param= 1; + if (thd->lex->current_select->master_unit()->item) + thd->lex->current_select->master_unit()->item->with_param= 1; fixed= 1; collation.set(it->collation.collation, it->collation.derivation); @@ -7234,6 +7239,7 @@ void Item_ref::set_properties() split_sum_func() doesn't try to change the reference. */ with_sum_func= (*ref)->with_sum_func; + with_param= (*ref)->with_param; with_field= (*ref)->with_field; unsigned_flag= (*ref)->unsigned_flag; fixed= 1; @@ -7681,6 +7687,7 @@ Item_cache_wrapper::Item_cache_wrapper(Item *item_arg) decimals= orig_item->decimals; collation.set(orig_item->collation); with_sum_func= orig_item->with_sum_func; + with_param= orig_item->with_param; with_field= orig_item->with_field; unsigned_flag= orig_item->unsigned_flag; name= item_arg->name; diff --git a/sql/item.h b/sql/item.h index 830f8bf14a4..d756cf8301b 100644 --- a/sql/item.h +++ b/sql/item.h @@ -644,6 +644,7 @@ public: bool null_value; /* if item is null */ bool unsigned_flag; bool with_sum_func; /* True if item contains a sum func */ + bool with_param; /* True if contains an SP parameter */ /** True if any item except Item_sum_func contains a field. Set during parsing. */ diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 39f497e3828..6fb650b975b 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -1546,6 +1546,7 @@ bool Item_in_optimizer::fix_left(THD *thd, Item **ref) } eval_not_null_tables(NULL); with_sum_func= args[0]->with_sum_func; + with_param= args[0]->with_param || args[1]->with_param; with_field= args[0]->with_field; if ((const_item_cache= args[0]->const_item())) { @@ -1587,6 +1588,7 @@ bool Item_in_optimizer::fix_fields(THD *thd, Item **ref) with_subselect= 1; with_sum_func= with_sum_func || args[1]->with_sum_func; with_field= with_field || args[1]->with_field; + with_param= args[0]->with_param || args[1]->with_param; used_tables_cache|= args[1]->used_tables(); const_item_cache&= args[1]->const_item(); fixed= 1; @@ -2108,6 +2110,7 @@ void Item_func_interval::fix_length_and_dec() used_tables_cache|= row->used_tables(); not_null_tables_cache= row->not_null_tables(); with_sum_func= with_sum_func || row->with_sum_func; + with_param= with_param || row->with_param; with_field= with_field || row->with_field; const_item_cache&= row->const_item(); } @@ -4335,6 +4338,7 @@ Item_cond::fix_fields(THD *thd, Item **ref) List_iterator li(list); Item *item; uchar buff[sizeof(char*)]; // Max local vars in function + bool is_and_cond= functype() == Item_func::COND_AND_FUNC; not_null_tables_cache= used_tables_cache= 0; const_item_cache= 1; @@ -4396,26 +4400,33 @@ Item_cond::fix_fields(THD *thd, Item **ref) (item= *li.ref())->check_cols(1)) return TRUE; /* purecov: inspected */ used_tables_cache|= item->used_tables(); - if (item->const_item()) + if (item->const_item() && !item->with_param && + !item->is_expensive() && !cond_has_datetime_is_null(item)) { - if (!item->is_expensive() && !cond_has_datetime_is_null(item) && - item->val_int() == 0) + if (item->val_int() == is_and_cond && top_level()) { /* - This is "... OR false_cond OR ..." + a. This is "... AND true_cond AND ..." + In this case, true_cond has no effect on cond_and->not_null_tables() + b. This is "... OR false_cond/null cond OR ..." In this case, false_cond has no effect on cond_or->not_null_tables() */ } else { /* - This is "... OR const_cond OR ..." + a. This is "... AND false_cond/null_cond AND ..." + The whole condition is FALSE/UNKNOWN. + b. This is "... OR const_cond OR ..." In this case, cond_or->not_null_tables()=0, because the condition const_cond might evaluate to true (regardless of whether some tables were NULL-complemented). */ + not_null_tables_cache= (table_map) 0; and_tables_cache= (table_map) 0; } + if (thd->is_error()) + return TRUE; } else { @@ -4427,6 +4438,7 @@ Item_cond::fix_fields(THD *thd, Item **ref) } with_sum_func= with_sum_func || item->with_sum_func; + with_param= with_param || item->with_param; with_field= with_field || item->with_field; with_subselect|= item->has_subquery(); if (item->maybe_null) @@ -4443,30 +4455,36 @@ bool Item_cond::eval_not_null_tables(uchar *opt_arg) { Item *item; + bool is_and_cond= functype() == Item_func::COND_AND_FUNC; List_iterator li(list); not_null_tables_cache= (table_map) 0; and_tables_cache= ~(table_map) 0; while ((item=li++)) { table_map tmp_table_map; - if (item->const_item()) + if (item->const_item() && !item->with_param && + !item->is_expensive() && !cond_has_datetime_is_null(item)) { - if (!item->is_expensive() && !cond_has_datetime_is_null(item) && - item->val_int() == 0) + if (item->val_int() == is_and_cond && top_level()) { /* - This is "... OR false_cond OR ..." + a. This is "... AND true_cond AND ..." + In this case, true_cond has no effect on cond_and->not_null_tables() + b. This is "... OR false_cond/null cond OR ..." In this case, false_cond has no effect on cond_or->not_null_tables() */ } else { /* - This is "... OR const_cond OR ..." + a. This is "... AND false_cond/null_cond AND ..." + The whole condition is FALSE/UNKNOWN. + b. This is "... OR const_cond OR ..." In this case, cond_or->not_null_tables()=0, because the condition - some_cond_or might be true regardless of what tables are - NULL-complemented. + const_cond might evaluate to true (regardless of whether some tables + were NULL-complemented). */ + not_null_tables_cache= (table_map) 0; and_tables_cache= (table_map) 0; } } @@ -5118,6 +5136,7 @@ Item_func_regex::fix_fields(THD *thd, Item **ref) args[1]->fix_fields(thd, args + 1)) || args[1]->check_cols(1)) return TRUE; /* purecov: inspected */ with_sum_func=args[0]->with_sum_func || args[1]->with_sum_func; + with_param=args[0]->with_param || args[1]->with_param; with_field= args[0]->with_field || args[1]->with_field; with_subselect= args[0]->has_subquery() || args[1]->has_subquery(); max_length= 1; diff --git a/sql/item_func.cc b/sql/item_func.cc index 9e4edfc14de..8b3c72dd328 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -222,6 +222,7 @@ Item_func::fix_fields(THD *thd, Item **ref) maybe_null=1; with_sum_func= with_sum_func || item->with_sum_func; + with_param= with_param || item->with_param; with_field= with_field || item->with_field; used_tables_cache|= item->used_tables(); const_item_cache&= item->const_item(); diff --git a/sql/item_func.h b/sql/item_func.h index 57818228b98..3a609fc0fe0 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -83,6 +83,7 @@ public: args= tmp_arg; args[0]= a; with_sum_func= a->with_sum_func; + with_param= a->with_param; with_field= a->with_field; } Item_func(Item *a,Item *b): @@ -91,6 +92,7 @@ public: args= tmp_arg; args[0]= a; args[1]= b; with_sum_func= a->with_sum_func || b->with_sum_func; + with_param= a->with_param || b->with_param; with_field= a->with_field || b->with_field; } Item_func(Item *a,Item *b,Item *c): @@ -102,6 +104,7 @@ public: arg_count= 3; args[0]= a; args[1]= b; args[2]= c; with_sum_func= a->with_sum_func || b->with_sum_func || c->with_sum_func; + with_param= a->with_param || b->with_param || c->with_param; with_field= a->with_field || b->with_field || c->with_field; } } @@ -115,6 +118,8 @@ public: args[0]= a; args[1]= b; args[2]= c; args[3]= d; with_sum_func= a->with_sum_func || b->with_sum_func || c->with_sum_func || d->with_sum_func; + with_param= a->with_param || b->with_param || + c->with_param || d->with_param; with_field= a->with_field || b->with_field || c->with_field || d->with_field; } @@ -128,6 +133,8 @@ public: args[0]= a; args[1]= b; args[2]= c; args[3]= d; args[4]= e; with_sum_func= a->with_sum_func || b->with_sum_func || c->with_sum_func || d->with_sum_func || e->with_sum_func ; + with_param= a->with_param || b->with_param || + c->with_param || d->with_param || e->with_param; with_field= a->with_field || b->with_field || c->with_field || d->with_field || e->with_field; } diff --git a/sql/item_row.cc b/sql/item_row.cc index 9e81c053b69..9fe34dd00fd 100644 --- a/sql/item_row.cc +++ b/sql/item_row.cc @@ -125,6 +125,7 @@ bool Item_row::fix_fields(THD *thd, Item **ref) with_sum_func= with_sum_func || item->with_sum_func; with_field= with_field || item->with_field; with_subselect|= item->with_subselect; + with_param|= item->with_param; } fixed= 1; return FALSE; diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 709c2b6f7b5..16334cd7b30 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -1164,6 +1164,7 @@ Item_sum_num::fix_fields(THD *thd, Item **ref) return TRUE; set_if_bigger(decimals, args[i]->decimals); with_subselect|= args[i]->with_subselect; + with_param|= args[i]->with_param; } result_field=0; max_length=float_length(decimals); @@ -1195,6 +1196,7 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref) return TRUE; decimals=item->decimals; with_subselect= args[0]->with_subselect; + with_param= args[0]->with_param; switch (hybrid_type= item->result_type()) { case INT_RESULT: @@ -3430,6 +3432,7 @@ Item_func_group_concat::fix_fields(THD *thd, Item **ref) args[i]->check_cols(1)) return TRUE; with_subselect|= args[i]->with_subselect; + with_param|= args[i]->with_param; } /* skip charset aggregation for order columns */ diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 90bb536c0e2..1e9f1c0848b 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1034,9 +1034,6 @@ JOIN::optimize() eval_select_list_used_tables(); - if (optimize_constant_subqueries()) - DBUG_RETURN(1); - table_count= select_lex->leaf_tables.elements; if (setup_ftfuncs(select_lex)) /* should be after having->fix_fields */ @@ -1098,6 +1095,9 @@ JOIN::optimize() thd->restore_active_arena(arena, &backup); } + if (optimize_constant_subqueries()) + DBUG_RETURN(1); + if (setup_jtbm_semi_joins(this, join_list, &conds)) DBUG_RETURN(1); From dc0613edc41590a03a75b5b75e7200c11435ad1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 26 Apr 2018 12:23:19 +0300 Subject: [PATCH 13/45] MDEV-15809: Test failure on galera.MW-44 Disable general log while truncating mysql.general_log to avoid queries to be inserted there. --- mysql-test/suite/galera/disabled.def | 2 +- mysql-test/suite/galera/r/MW-44.result | 14 ++++++++++---- mysql-test/suite/galera/t/MW-44.test | 9 +++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 4d83e2ba2ce..4c0a5c7fd9f 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -30,4 +30,4 @@ galera.MW-328A : have_deadlocks test not stable galera_var_retry_autocommit : MDEV-15794 Test failure on galera.galera_var_retry_autocommit galera_var_auto_inc_control_on : MDEV-15803 Test failure on galera.galera_var_auto_inc_control_on query_cache : MDEV-15805 Test failure on galera.query_cache -galera.MW-44 : MDEV-15809 Test failure on galera.MW-44 + diff --git a/mysql-test/suite/galera/r/MW-44.result b/mysql-test/suite/galera/r/MW-44.result index 03de2205772..459a61030a4 100644 --- a/mysql-test/suite/galera/r/MW-44.result +++ b/mysql-test/suite/galera/r/MW-44.result @@ -1,12 +1,18 @@ -SET @@global.wsrep_replicate_myisam=OFF; +SET GLOBAL general_log='OFF'; TRUNCATE TABLE mysql.general_log; SELECT COUNT(*) from mysql.general_log; COUNT(*) -1 +0 +SELECT * FROM mysql.general_log; +event_time user_host thread_id server_id command_type argument +SET GLOBAL general_log='OFF'; TRUNCATE TABLE mysql.general_log; SELECT COUNT(*) from mysql.general_log; COUNT(*) -1 +0 +SELECT * FROM mysql.general_log; +event_time user_host thread_id server_id command_type argument +SET GLOBAL general_log='ON'; SELECT COUNT(*) from mysql.general_log; COUNT(*) 1 @@ -18,8 +24,8 @@ SET SESSION wsrep_osu_method=TOI; SELECT COUNT(*) = 2 FROM mysql.general_log WHERE argument LIKE 'CREATE%' OR argument LIKE 'ALTER%'; COUNT(*) = 2 1 +SET GLOBAL general_log='ON'; SELECT COUNT(*) = 0 FROM mysql.general_log WHERE argument NOT LIKE 'SELECT%'; COUNT(*) = 0 1 DROP TABLE t1; -SET @@global.wsrep_replicate_myisam=Default; diff --git a/mysql-test/suite/galera/t/MW-44.test b/mysql-test/suite/galera/t/MW-44.test index b0e58e2bafd..09f444fdff4 100644 --- a/mysql-test/suite/galera/t/MW-44.test +++ b/mysql-test/suite/galera/t/MW-44.test @@ -5,16 +5,20 @@ --source include/galera_cluster.inc --source include/have_innodb.inc -SET @@global.wsrep_replicate_myisam=OFF; --connection node_1 +SET GLOBAL general_log='OFF'; TRUNCATE TABLE mysql.general_log; SELECT COUNT(*) from mysql.general_log; +SELECT * FROM mysql.general_log; --connection node_2 +SET GLOBAL general_log='OFF'; TRUNCATE TABLE mysql.general_log; SELECT COUNT(*) from mysql.general_log; +SELECT * FROM mysql.general_log; --connection node_1 +SET GLOBAL general_log='ON'; SELECT COUNT(*) from mysql.general_log; SET SESSION wsrep_osu_method=TOI; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; @@ -25,6 +29,7 @@ SET SESSION wsrep_osu_method=TOI; SELECT COUNT(*) = 2 FROM mysql.general_log WHERE argument LIKE 'CREATE%' OR argument LIKE 'ALTER%'; --connection node_2 +SET GLOBAL general_log='ON'; SELECT COUNT(*) = 0 FROM mysql.general_log WHERE argument NOT LIKE 'SELECT%'; DROP TABLE t1; -SET @@global.wsrep_replicate_myisam=Default; + From 58c03e8f308c3f5e3a5c45b3af39529392569ba0 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Thu, 26 Apr 2018 12:56:24 +0200 Subject: [PATCH 14/45] MDEV-15794 Fix and re-enable test galera_var_retry_autocommit The test was not deterministic and would occasionally fail, due to the use of `sleep`. This patch is a complete rewrite of the test using proper sync points. --- mysql-test/suite/galera/disabled.def | 2 - .../r/galera_var_retry_autocommit.result | 78 +++++--- .../galera/t/galera_var_retry_autocommit.test | 169 +++++++++++------- sql/sql_parse.cc | 9 + 4 files changed, 165 insertions(+), 93 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 4c0a5c7fd9f..1b1d2b251ca 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -27,7 +27,5 @@ galera_ist_mysqldump : MDEV-13549 Galera test failures galera_ssl_upgrade : MDEV-13549 Galera test failures galera.MW-329 : wsrep_local_replays not stable galera.MW-328A : have_deadlocks test not stable -galera_var_retry_autocommit : MDEV-15794 Test failure on galera.galera_var_retry_autocommit galera_var_auto_inc_control_on : MDEV-15803 Test failure on galera.galera_var_auto_inc_control_on query_cache : MDEV-15805 Test failure on galera.query_cache - diff --git a/mysql-test/suite/galera/r/galera_var_retry_autocommit.result b/mysql-test/suite/galera/r/galera_var_retry_autocommit.result index f4d17ad9a41..22a3105a588 100644 --- a/mysql-test/suite/galera/r/galera_var_retry_autocommit.result +++ b/mysql-test/suite/galera/r/galera_var_retry_autocommit.result @@ -1,32 +1,54 @@ -CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB; -CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f2 = SLEEP(5); +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; SET SESSION wsrep_retry_autocommit = 0; -INSERT INTO t1 (f1) VALUES (1),(2);; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue'; +INSERT INTO t1 (f1) VALUES (2); +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; TRUNCATE TABLE t1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction -SET SESSION wsrep_retry_autocommit = 1; -INSERT INTO t1 (f1) VALUES (3),(4);; -TRUNCATE TABLE t1; -SELECT * FROM test.t1; -f1 f2 -3 0 -4 0 -CREATE PROCEDURE repeated_truncate () -BEGIN -DECLARE i INT; -DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; -SET i = 0; -WHILE i <= 1000 DO -TRUNCATE TABLE t1; -SET i = i + 1; -END WHILE; -END| -CALL repeated_truncate(); -SET SESSION wsrep_retry_autocommit = 1; -INSERT INTO t1 (f1) VALUES (5),(6); -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction -SET SESSION wsrep_retry_autocommit = 1024; -INSERT INTO t1 (f1) VALUES (7),(8);; -include/diff_servers.inc [servers=1 2] +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +SET SESSION wsrep_retry_autocommit = 1; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue'; +INSERT INTO t1 (f1) VALUES (2); +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; +TRUNCATE TABLE t1; +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +SET SESSION wsrep_retry_autocommit = 1; +SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit'; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue EXECUTE 2'; +INSERT INTO t1 VALUES (2);; +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; +TRUNCATE TABLE t1; +SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_rep'; +TRUNCATE TABLE t1; +SELECT COUNT(*) = 0 FROM t1; +COUNT(*) = 0 +1 +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +SET DEBUG_SYNC = 'RESET'; +SET GLOBAL debug_dbug = NULL; +DROP TABLE t1; +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +SET SESSION wsrep_retry_autocommit = 64; +SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit'; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue EXECUTE 64'; +INSERT INTO t1 VALUES (2); +SELECT COUNT(*) = 1 FROM t1; +COUNT(*) = 1 +1 +SET DEBUG_SYNC = 'RESET'; +SET GLOBAL debug_dbug = NULL; DROP TABLE t1; -DROP PROCEDURE repeated_truncate; diff --git a/mysql-test/suite/galera/t/galera_var_retry_autocommit.test b/mysql-test/suite/galera/t/galera_var_retry_autocommit.test index bf4da3234c5..142f02546b4 100644 --- a/mysql-test/suite/galera/t/galera_var_retry_autocommit.test +++ b/mysql-test/suite/galera/t/galera_var_retry_autocommit.test @@ -1,98 +1,141 @@ # -# Test that the wsrep_retry_autocommit variable is respected. We use an INSERT that -# proceeds very slowly due to extra SLEEP() in a trigger +# Test that the wsrep_retry_autocommit variable is respected. # --source include/galera_cluster.inc --source include/have_innodb.inc +--source include/have_debug_sync.inc ---connection node_1 -CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB; -CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f2 = SLEEP(5); +--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1 # # With wsrep_retry_autocommit = 0, error is certain # --connection node_1 +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + SET SESSION wsrep_retry_autocommit = 0; ---send INSERT INTO t1 (f1) VALUES (1),(2); +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue'; +--send INSERT INTO t1 (f1) VALUES (2) + +--connection node_1a +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; --connection node_2 ---sleep 1 TRUNCATE TABLE t1; --connection node_1 --error ER_LOCK_DEADLOCK --reap +SELECT COUNT(*) = 0 FROM t1; + +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1; + # # With wsrep_retry_autocommit = 1, success against one TRUNCATE # --connection node_1 +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + SET SESSION wsrep_retry_autocommit = 1; ---send INSERT INTO t1 (f1) VALUES (3),(4); +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue'; +--send INSERT INTO t1 (f1) VALUES (2) + +--connection node_1a +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; --connection node_2 ---sleep 1 TRUNCATE TABLE t1; --connection node_1 ---error 0 --reap -SELECT * FROM test.t1; - -# -# With wsrep_retry_autocommit = 1, failure against multiple TRUNCATEs -# - ---connection node_2 -DELIMITER |; -CREATE PROCEDURE repeated_truncate () -BEGIN - DECLARE i INT; - DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; - - SET i = 0; - WHILE i <= 1000 DO - TRUNCATE TABLE t1; - SET i = i + 1; - END WHILE; -END| -DELIMITER ;| - -# Begin streaming TRUNCATEs ---let $truncate_connection_id = `SELECT CONNECTION_ID()` ---send CALL repeated_truncate() - ---connection node_1 -SET SESSION wsrep_retry_autocommit = 1; ---sleep 1 ---error ER_LOCK_DEADLOCK -INSERT INTO t1 (f1) VALUES (5),(6); - -# -# With wsrep_retry_autocommit = 1024, success against multiple TRUNCATEs -# - ---connection node_1 -SET SESSION wsrep_retry_autocommit = 1024; ---send INSERT INTO t1 (f1) VALUES (7),(8); - ---sleep 6 - -# Once he stream of TRUNCATEs is complete ---connection node_2 ---reap - -# the INSERT will eventually be sucessfull ---connection node_1 ---error 0 ---reap - ---let $diff_servers = 1 2 ---source include/diff_servers.inc +SELECT COUNT(*) = 1 FROM t1; +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1; + + +# +# With wsrep_retry_autcommit = 1, failure against multiple TRUNCATEs +# + +--connection node_1 +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + +SET SESSION wsrep_retry_autocommit = 1; +SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit'; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue EXECUTE 2'; + +--send INSERT INTO t1 VALUES (2); + +--connection node_1a +SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; + +--connection node_2 +TRUNCATE TABLE t1; + +--connection node_1a +SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; +SELECT COUNT(*) = 0 FROM t1; +SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_rep'; + +--connection node_2 +TRUNCATE TABLE t1; + +--connection node_1a +SELECT COUNT(*) = 0 FROM t1; + +--connection node_1 +--error ER_LOCK_DEADLOCK +--reap + +SET DEBUG_SYNC = 'RESET'; +SET GLOBAL debug_dbug = NULL; +DROP TABLE t1; + + +# +# With wsrep_retry_autocommit = 64, success against 64 TRUNCATEs +# + +--connection node_1 +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + +SET SESSION wsrep_retry_autocommit = 64; +SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit'; +SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL before_rep WAIT_FOR continue EXECUTE 64'; + +--send INSERT INTO t1 VALUES (2) + +--disable_query_log +--disable_result_log +--let $count = 64 +while ($count) +{ + --connection node_1a + SET DEBUG_SYNC = 'now WAIT_FOR before_rep'; + + --connection node_2 + TRUNCATE TABLE t1; + + --connection node_1a + SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached'; + SELECT COUNT(*) = 1 FROM t1; + SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue'; + + --dec $count +} +--enable_result_log +--enable_query_log + +--connection node_1 +--reap +SELECT COUNT(*) = 1 FROM t1; + +SET DEBUG_SYNC = 'RESET'; +SET GLOBAL debug_dbug = NULL; DROP TABLE t1; -DROP PROCEDURE repeated_truncate; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 352a1704ab7..9a1f877e4ed 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -7187,6 +7187,15 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length, com_statement_info[thd->get_command()].m_key); MYSQL_SET_STATEMENT_TEXT(thd->m_statement_psi, thd->query(), thd->query_length()); + + DBUG_EXECUTE_IF("sync.wsrep_retry_autocommit", + { + const char act[]= + "now " + "SIGNAL wsrep_retry_autocommit_reached " + "WAIT_FOR wsrep_retry_autocommit_continue"; + DBUG_ASSERT(!debug_sync_set_action(thd, STRING_WITH_LEN(act))); + }); } mysql_parse(thd, rawbuf, length, parser_state); From e86c0a5f2aeb98fa06df01ec008bf70cab61da10 Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 26 Apr 2018 14:21:36 +0300 Subject: [PATCH 15/45] Increase number of max table_open_cache instances This is a backport of MDEV-11429 from 10.1 --- mysql-test/suite/sys_vars/r/table_open_cache_basic.result | 4 ++-- sql/sys_vars.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/sys_vars/r/table_open_cache_basic.result b/mysql-test/suite/sys_vars/r/table_open_cache_basic.result index 2381dfe4900..465a61f2473 100644 --- a/mysql-test/suite/sys_vars/r/table_open_cache_basic.result +++ b/mysql-test/suite/sys_vars/r/table_open_cache_basic.result @@ -27,7 +27,7 @@ Warnings: Warning 1292 Truncated incorrect table_open_cache value: '1073741824' SELECT @@global.table_open_cache ; @@global.table_open_cache -524288 +1048576 SET @@global.table_open_cache = 18000; SELECT @@global.table_open_cache ; @@global.table_open_cache @@ -48,7 +48,7 @@ Warnings: Warning 1292 Truncated incorrect table_open_cache value: '100000000000' SELECT @@global.table_open_cache ; @@global.table_open_cache -524288 +1048576 SET @@global.table_open_cache = -1024; Warnings: Warning 1292 Truncated incorrect table_open_cache value: '-1024' diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index edcfd712e3b..a21fe5df247 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -3059,7 +3059,7 @@ static bool fix_table_open_cache(sys_var *, THD *, enum_var_type) static Sys_var_ulong Sys_table_cache_size( "table_open_cache", "The number of cached open tables", GLOBAL_VAR(tc_size), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(1, 512*1024), DEFAULT(TABLE_OPEN_CACHE_DEFAULT), + VALID_RANGE(1, 1024*1024), DEFAULT(TABLE_OPEN_CACHE_DEFAULT), BLOCK_SIZE(1), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), ON_UPDATE(fix_table_open_cache)); From 03da1253af4b1a9a47ffd7c6904af266718bc0b1 Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 26 Apr 2018 14:22:09 +0300 Subject: [PATCH 16/45] Fix compilation error when compiling with valgrind --- storage/tokudb/PerconaFT/portability/toku_race_tools.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/tokudb/PerconaFT/portability/toku_race_tools.h b/storage/tokudb/PerconaFT/portability/toku_race_tools.h index 8482a164fb8..e7ce5a81ec3 100644 --- a/storage/tokudb/PerconaFT/portability/toku_race_tools.h +++ b/storage/tokudb/PerconaFT/portability/toku_race_tools.h @@ -90,8 +90,8 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. # define TOKU_ANNOTATE_IGNORE_WRITES_BEGIN() ((void) 0) # define TOKU_ANNOTATE_IGNORE_WRITES_END() ((void) 0) # define TOKU_VALGRIND_RESET_MUTEX_ORDERING_INFO(mutex) +#undef RUNNING_ON_VALGRIND # define RUNNING_ON_VALGRIND (0U) - #endif // Valgrind 3.10.1 (and previous versions). From 9f9bce5f3e6adba82e8fd9818369ae1343eeff19 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Thu, 26 Apr 2018 13:58:31 +0200 Subject: [PATCH 17/45] MDEV-13549 Record and re-enable galera_ist_mysqldump Test works after fixes for galera_sst_mysqldump. --- mysql-test/suite/galera/disabled.def | 1 - mysql-test/suite/galera/r/galera_ist_mysqldump.result | 5 ++++- mysql-test/suite/galera/t/galera_ist_mysqldump.test | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 4c0a5c7fd9f..2128bbf17f9 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -23,7 +23,6 @@ galera_as_slave_replication_bundle : MDEV-13549 Galera test failures galera_gcache_recover : MDEV-13549 Galera test failures galera_gcache_recover_full_gcache : MDEV-13549 Galera test failures galera_gcache_recover_manytrx : MDEV-13549 Galera test failures -galera_ist_mysqldump : MDEV-13549 Galera test failures galera_ssl_upgrade : MDEV-13549 Galera test failures galera.MW-329 : wsrep_local_replays not stable galera.MW-328A : have_deadlocks test not stable diff --git a/mysql-test/suite/galera/r/galera_ist_mysqldump.result b/mysql-test/suite/galera/r/galera_ist_mysqldump.result index 788d60051b5..a7ce7c6c23e 100644 --- a/mysql-test/suite/galera/r/galera_ist_mysqldump.result +++ b/mysql-test/suite/galera/r/galera_ist_mysqldump.result @@ -1,4 +1,6 @@ Setting SST method to mysqldump ... +call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127.0.0.1'"); +call mtr.add_suppression("Failed to load slave replication state from table mysql.gtid_slave_pos"); CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; SET GLOBAL wsrep_sst_auth = 'sst:'; @@ -194,7 +196,7 @@ INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES ('node2_committed_before'); COMMIT; -SET GLOBAL debug = 'd,sync.alter_opened_table'; +SET GLOBAL debug_dbug = 'd,sync.alter_opened_table'; ALTER TABLE t1 ADD COLUMN f2 INTEGER; SET wsrep_sync_wait = 0; Killing server ... @@ -273,6 +275,7 @@ COUNT(*) = 0 DROP TABLE t1; COMMIT; SET AUTOCOMMIT=ON; +SET GLOBAL debug_dbug = $debug_orig; CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); DROP USER sst; CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); diff --git a/mysql-test/suite/galera/t/galera_ist_mysqldump.test b/mysql-test/suite/galera/t/galera_ist_mysqldump.test index a9ff8c41f06..f60d5549eda 100644 --- a/mysql-test/suite/galera/t/galera_ist_mysqldump.test +++ b/mysql-test/suite/galera/t/galera_ist_mysqldump.test @@ -4,6 +4,10 @@ --source suite/galera/include/galera_sst_set_mysqldump.inc +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + # mysql-wsrep#33 - nnoDB: Failing assertion: xid_seqno > trx_sys_cur_xid_seqno in trx_sys_update_wsrep_checkpoint with mysqldump IST # --source suite/galera/include/galera_st_disconnect_slave.inc @@ -14,4 +18,5 @@ --source suite/galera/include/galera_st_kill_slave.inc --source suite/galera/include/galera_st_kill_slave_ddl.inc +--source include/auto_increment_offset_restore.inc --source suite/galera/include/galera_sst_restore.inc From 619afb151b38a538ef64d5387643c01f86e203d8 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 25 Apr 2018 13:20:44 +0200 Subject: [PATCH 18/45] MDEV-15456 Server crashes upon adding or dropping a partition in ALTER under LOCK TABLE after ER_SAME_NAME_PARTITION followup for bcb36ee21e2 move reopening before trans_commit_stmt(thd); --- mysql-test/suite/parts/inc/part_alter_values.inc | 2 +- mysql-test/suite/parts/r/partition_alter_innodb.result | 2 +- mysql-test/suite/parts/r/partition_alter_maria.result | 2 +- mysql-test/suite/parts/r/partition_alter_myisam.result | 2 +- sql/sql_base.cc | 3 --- sql/sql_parse.cc | 4 ++++ 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/parts/inc/part_alter_values.inc b/mysql-test/suite/parts/inc/part_alter_values.inc index 1b0605ff57b..ac69169a9ca 100644 --- a/mysql-test/suite/parts/inc/part_alter_values.inc +++ b/mysql-test/suite/parts/inc/part_alter_values.inc @@ -39,7 +39,7 @@ DROP TABLE t1; # # MDEV-15456 Server crashes upon adding or dropping a partition in ALTER under LOCK TABLE after ER_SAME_NAME_PARTITION # -create table t1 (i int) partition by range(i) (partition p0 values less than (10)); +--eval create table t1 (i int) engine=$engine partition by range(i) (partition p0 values less than (10)) lock table t1 write; --error ER_SAME_NAME_PARTITION alter table t1 add partition (partition p0 values less than (20)); diff --git a/mysql-test/suite/parts/r/partition_alter_innodb.result b/mysql-test/suite/parts/r/partition_alter_innodb.result index 08f0c321119..87c113a2720 100644 --- a/mysql-test/suite/parts/r/partition_alter_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter_innodb.result @@ -47,7 +47,7 @@ PARTITION p3 VALUES IN (4,5,6) ); ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition DROP TABLE t1; -create table t1 (i int) partition by range(i) (partition p0 values less than (10)); +create table t1 (i int) engine=InnoDB partition by range(i) (partition p0 values less than (10)); lock table t1 write; alter table t1 add partition (partition p0 values less than (20)); ERROR HY000: Duplicate partition name p0 diff --git a/mysql-test/suite/parts/r/partition_alter_maria.result b/mysql-test/suite/parts/r/partition_alter_maria.result index 5e53dc99db8..5f1f882d2ea 100644 --- a/mysql-test/suite/parts/r/partition_alter_maria.result +++ b/mysql-test/suite/parts/r/partition_alter_maria.result @@ -69,7 +69,7 @@ PARTITION p3 VALUES IN (4,5,6) ); ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition DROP TABLE t1; -create table t1 (i int) partition by range(i) (partition p0 values less than (10)); +create table t1 (i int) engine=Aria partition by range(i) (partition p0 values less than (10)); lock table t1 write; alter table t1 add partition (partition p0 values less than (20)); ERROR HY000: Duplicate partition name p0 diff --git a/mysql-test/suite/parts/r/partition_alter_myisam.result b/mysql-test/suite/parts/r/partition_alter_myisam.result index 0d3094418ff..248c8627b2f 100644 --- a/mysql-test/suite/parts/r/partition_alter_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter_myisam.result @@ -42,7 +42,7 @@ PARTITION p3 VALUES IN (4,5,6) ); ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition DROP TABLE t1; -create table t1 (i int) partition by range(i) (partition p0 values less than (10)); +create table t1 (i int) engine=MyISAM partition by range(i) (partition p0 values less than (10)); lock table t1 write; alter table t1 add partition (partition p0 values less than (20)); ERROR HY000: Duplicate partition name p0 diff --git a/sql/sql_base.cc b/sql/sql_base.cc index f7de4e4f3c2..554c8cffeaf 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -952,10 +952,7 @@ void close_thread_tables(THD *thd) we will exit this function a few lines below. */ if (! thd->lex->requires_prelocking()) - { - thd->locked_tables_list.reopen_tables(thd, true); DBUG_VOID_RETURN; - } /* We are in the top-level statement of a prelocked statement, diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index fa95c852f53..4c0be4ebc8b 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -5136,6 +5136,10 @@ finish: lex->unit.cleanup(); + /* close/reopen tables that were marked to need reopen under LOCK TABLES */ + if (! thd->lex->requires_prelocking()) + thd->locked_tables_list.reopen_tables(thd, true); + if (! thd->in_sub_stmt) { if (thd->killed != NOT_KILLED) From 5ae2656b69e8a232107890aa0be517358739e997 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Apr 2018 20:28:31 +0200 Subject: [PATCH 19/45] Squashed commit of connect/10.0: commit c545d544378483bf68c4fb713cd4ec872d0df2c4 Author: Olivier Bertrand Date: Tue Mar 27 23:13:14 2018 +0200 - Fix MDEV-15577 CONNECT engine JDBC remote index prevents UPDATE Fixed in TDBJDBC::OpenDB because query can be null for updates modified: storage/connect/tabjdbc.cpp commit c4f1fe2e8e74566e9c3296f435448d9f5c718b23 Author: Olivier Bertrand Date: Wed Mar 14 12:21:17 2018 +0100 - Fix MDEV-15429 CONNECT engine JDBC handling Postgresql UUID type Also handle Postgresql sending type VARCHAR for TEXT column and setting length to b x7FFFFFF when the length is unknown. modified: storage/connect/Client.java modified: storage/connect/JavaWrappers.jar modified: storage/connect/JdbcInterface.java modified: storage/connect/PostgresqlInterface.java modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/mysql-test/connect/r/jdbc_postgresql.result modified: storage/connect/mysql-test/connect/t/jdbc_postgresql.test modified: storage/connect/mysql-test/connect/t/jdbconn.inc modified: storage/connect/plgdbsem.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h added: storage/connect/mysql-test/connect/std_data/JavaWrappers.jar commit 3068bb4882a316c6c32c624609db2bf24ae3ad40 Author: Olivier Bertrand Date: Mon Feb 26 19:40:27 2018 +0100 Revert to old cmake file to avoid compile error commit da8c1c0bd6a327fd03bd321be3170f468122ef67 Author: Olivier Bertrand Date: Mon Feb 26 16:13:39 2018 +0100 - Remove warning on not used tabtyp variable in connect_assisted_discovery modified: storage/connect/ha_connect.cc - Fix a bug causing CONNECT to loop when expanding a JSON column when the expanded column value is null or void array. - Adding the FullArray option to JSON tables. - Skipping expanded JSON lines when the expanded column value is null. modified: storage/connect/connect.cc modified: storage/connect/tabdos.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Fix MDEV-13353 No file privilege for ODBC, JDBC, MONGO, MAC, WMI file types. modified: storage/connect/ha_connect.cc - Make some Json UDFs to accept a non JSON item as 1st parameter. modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h - Update Json UDF tests to cope with above changes. modified: storage/connect/mysql-test/connect/r/json_udf.result modified: storage/connect/mysql-test/connect/r/json_udf_bin.result modified: storage/connect/mysql-test/connect/r/vcol.result modified: storage/connect/mysql-test/connect/t/json_udf.test modified: storage/connect/mysql-test/connect/t/vcol.test - Fix some compiler warning treated as error PlugSubAlloc no more exported because it does throw. modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Other files modified (?) when going back to wrong merge modified: storage/connect/CMakeLists.txt modified: storage/connect/array.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/csort.cpp modified: storage/connect/domdoc.cpp modified: storage/connect/filamap.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/fmdlex.c modified: storage/connect/jdbconn.cpp modified: storage/connect/macutil.cpp modified: storage/connect/myconn.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/preparse.h modified: storage/connect/rcmsg.c modified: storage/connect/rcmsg.h modified: storage/connect/reldef.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/value.cpp modified: storage/connect/xobject.cpp commit 5095628b31ed8c94bd7c794c6b0162894a9040b1 Author: Olivier Bertrand Date: Tue Feb 13 14:29:00 2018 +0100 - Fix a bug causing CONNECT to loop when expanding a JSON column when the expanded column value is null or void array. - Adding the FullArray option to JSON tables. - Skipping expanded JSON lines when the expanded column value is null. modified: storage/connect/connect.cc modified: storage/connect/tabdos.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h commit 9896174328da42016735630c893fd09eb128b48e Author: Olivier Bertrand Date: Fri Feb 2 15:48:57 2018 +0100 - Remove warning on not used tabtyp variable in connect_assisted_discovery modified: storage/connect/ha_connect.cc commit d7e254c05f88173eb04d8dafc813013eb42ccdbe Author: Olivier Bertrand Date: Wed Jan 31 14:42:45 2018 +0100 - Use delayed load for the MongoDB C Drive on Windows modified: storage/connect/CMakeLists.txt modified: storage/connect/cmgoconn.cpp modified: storage/connect/ha_connect.cc - Add FORCE to the connect_type_conv enum values This will translate binary values to TYPE_STRING modified: storage/connect/checklvl.h modified: storage/connect/ha_connect.cc modified: storage/connect/odbconn.cpp - Change the connect_xtrace variable to from int to set modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/block.h modified: storage/connect/cmgoconn.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamap.cpp modified: storage/connect/filamdbf.cpp modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/inihandl.cpp modified: storage/connect/javaconn.cpp modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgfam.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/libdoc.cpp modified: storage/connect/mongo.cpp modified: storage/connect/mycat.cc modified: storage/connect/myconn.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/reldef.cpp modified: storage/connect/tabcol.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabext.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/table.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/user_connect.cc modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp - Restore connect_enable_mongo variable (but undocumented) modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result modified: storage/connect/mysql-test/connect/r/tbl_thread.result modified: storage/connect/mysql-test/connect/t/mongo.inc modified: storage/connect/mysql-test/connect/t/mongo_test.inc modified: storage/connect/mysql-test/connect/t/tbl_thread.test --- .gitattributes | 1 + storage/connect/CMakeLists.txt | 9 +- storage/connect/Client.java | 27 +- storage/connect/JavaWrappers.jar | Bin 44053 -> 19192 bytes storage/connect/JdbcInterface.java | 54 +- storage/connect/PostgresqlInterface.java | 5 +- storage/connect/array.cpp | 22 +- storage/connect/blkfil.cpp | 8 +- storage/connect/block.h | 4 +- storage/connect/checklvl.h | 3 +- storage/connect/cmgoconn.cpp | 18 +- storage/connect/colblk.cpp | 9 +- storage/connect/connect.cc | 43 +- storage/connect/csort.cpp | 16 +- storage/connect/domdoc.cpp | 3 +- storage/connect/filamap.cpp | 32 +- storage/connect/filamdbf.cpp | 12 +- storage/connect/filamfix.cpp | 68 +- storage/connect/filamgz.cpp | 20 +- storage/connect/filamtxt.cpp | 71 +- storage/connect/filamvct.cpp | 162 ++-- storage/connect/filamzip.cpp | 8 +- storage/connect/filter.cpp | 36 +- storage/connect/fmdlex.c | 24 +- storage/connect/global.h | 11 +- storage/connect/ha_connect.cc | 326 ++++--- storage/connect/inihandl.cpp | 54 +- storage/connect/javaconn.cpp | 6 +- storage/connect/jdbconn.cpp | 365 +++++--- storage/connect/jdbconn.h | 11 +- storage/connect/jmgfam.cpp | 2 +- storage/connect/jmgoconn.cpp | 14 +- storage/connect/json.cpp | 41 +- storage/connect/json.h | 8 +- storage/connect/jsonudf.cpp | 858 ++++++++++++------ storage/connect/jsonudf.h | 4 + storage/connect/libdoc.cpp | 98 +- storage/connect/macutil.cpp | 4 +- storage/connect/mongo.cpp | 4 +- storage/connect/mycat.cc | 34 +- storage/connect/myconn.cpp | 10 +- .../connect/r/jdbc_postgresql.result | 35 +- .../mysql-test/connect/r/json_java_2.result | 7 +- .../mysql-test/connect/r/json_java_3.result | 4 +- .../mysql-test/connect/r/json_mongo_c.result | 2 + .../mysql-test/connect/r/json_udf.result | 10 +- .../mysql-test/connect/r/json_udf_bin.result | 3 +- .../mysql-test/connect/r/mongo_c.result | 2 + .../mysql-test/connect/r/mongo_java_2.result | 4 +- .../mysql-test/connect/r/mongo_java_3.result | 4 +- .../mysql-test/connect/r/tbl_thread.result | 6 +- .../connect/mysql-test/connect/r/vcol.result | 29 + .../connect/std_data/JavaWrappers.jar | Bin 0 -> 19192 bytes .../mysql-test/connect/std_data/Mongo2.jar | Bin 3461358 -> 623907 bytes .../mysql-test/connect/std_data/Mongo3.jar | Bin 1705776 -> 1705776 bytes .../mysql-test/connect/t/jdbc_postgresql.test | 33 +- .../connect/mysql-test/connect/t/jdbconn.inc | 7 +- .../mysql-test/connect/t/json_udf.test | 6 +- .../connect/mysql-test/connect/t/mongo.inc | 4 +- .../mysql-test/connect/t/mongo_test.inc | 8 +- .../mysql-test/connect/t/tbl_thread.test | 6 +- .../connect/mysql-test/connect/t/vcol.test | 31 + storage/connect/odbconn.cpp | 103 ++- storage/connect/plgdbsem.h | 3 +- storage/connect/plgdbutl.cpp | 143 ++- storage/connect/plugutil.cpp | 30 +- storage/connect/preparse.h | 2 +- storage/connect/rcmsg.c | 7 +- storage/connect/rcmsg.h | 2 +- storage/connect/reldef.cpp | 16 +- storage/connect/tabcol.cpp | 8 +- storage/connect/tabdos.cpp | 59 +- storage/connect/tabdos.h | 1 + storage/connect/tabext.cpp | 6 +- storage/connect/tabfix.cpp | 8 +- storage/connect/tabfmt.cpp | 36 +- storage/connect/tabjdbc.cpp | 35 +- storage/connect/tabjdbc.h | 2 + storage/connect/tabjson.cpp | 753 ++++++++------- storage/connect/tabjson.h | 44 +- storage/connect/table.cpp | 16 +- storage/connect/tabmac.cpp | 4 +- storage/connect/tabmul.cpp | 26 +- storage/connect/tabmysql.cpp | 28 +- storage/connect/tabodbc.cpp | 20 +- storage/connect/tabpivot.cpp | 2 +- storage/connect/tabsys.cpp | 12 +- storage/connect/tabtbl.cpp | 41 +- storage/connect/tabutil.cpp | 8 +- storage/connect/tabvct.cpp | 8 +- storage/connect/tabwmi.cpp | 4 +- storage/connect/tabxml.cpp | 26 +- storage/connect/user_connect.cc | 2 +- storage/connect/valblk.cpp | 2 +- storage/connect/value.cpp | 52 +- storage/connect/xindex.cpp | 88 +- storage/connect/xobject.cpp | 5 +- 97 files changed, 2536 insertions(+), 1772 deletions(-) create mode 100644 storage/connect/mysql-test/connect/r/vcol.result create mode 100644 storage/connect/mysql-test/connect/std_data/JavaWrappers.jar create mode 100644 storage/connect/mysql-test/connect/t/vcol.test diff --git a/.gitattributes b/.gitattributes index b2e324795aa..cbcf9c9c14f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -23,6 +23,7 @@ pcre/testdata/greppatN4 -text *.frm binary *.MYD binary *.MYI binary +*.jar binary *.c diff=cpp *.h diff=cpp diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 0c05bd72750..5695e981413 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -247,7 +247,7 @@ ENDIF(CONNECT_WITH_ODBC) # # JDBC with MongoDB Java Driver included but disabled if without MONGO # -# OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON) +#OPTION(CONNECT_WITH_MONGO "Compile CONNECT storage engine with MONGO support" ON) OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine with JDBC support" ON) IF(CONNECT_WITH_JDBC) @@ -343,6 +343,13 @@ IF(NOT TARGET connect) RETURN() ENDIF() +IF(WIN32) + IF (libmongoc-1.0_FOUND) + SET_TARGET_PROPERTIES(connect PROPERTIES LINK_FLAGS + "/DELAYLOAD:libbson-1.0.dll /DELAYLOAD:libmongoc-1.0.dll") + ENDIF(libmongoc-1.0_FOUND) +ENDIF(WIN32) + # Install some extra files that belong to connect engine IF(WIN32) # install ha_connect.lib diff --git a/storage/connect/Client.java b/storage/connect/Client.java index aaf1b7bf2f8..afa54fa4256 100644 --- a/storage/connect/Client.java +++ b/storage/connect/Client.java @@ -1,9 +1,13 @@ + package wrappers; import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStreamReader; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; public class Client { static boolean DEBUG = true; @@ -58,6 +62,9 @@ public class Client { String query; System.out.println("Successfully connected to " + parms[1]); + s = jdi.GetQuoteString(); + System.out.println("Qstr = '" + s + "'"); + while ((query = getLine("Query: ", false)) != null) { n = jdi.Execute(query); System.out.println("Returned n = " + n); @@ -79,7 +86,11 @@ public class Client { private static void PrintResult(int ncol) { // Get result set meta data int i; + Date date = new Date(0); + Time time = new Time(0); + Timestamp tsp = new Timestamp(0); String columnName; + Object job; // Get the column names; column indices start from 1 for (i = 1; i <= ncol; i++) { @@ -112,6 +123,7 @@ public class Client { case java.sql.Types.VARCHAR: case java.sql.Types.LONGVARCHAR: case java.sql.Types.CHAR: + case 1111: System.out.print(jdi.StringField(i, null)); break; case java.sql.Types.INTEGER: @@ -120,14 +132,17 @@ public class Client { case java.sql.Types.BIGINT: System.out.print(jdi.BigintField(i, null)); break; - case java.sql.Types.TIMESTAMP: - System.out.print(jdi.TimestampField(i, null)); - break; case java.sql.Types.TIME: - System.out.print(jdi.TimeField(i, null)); + time.setTime((long)jdi.TimeField(i, null) * 1000); + System.out.print(time); break; case java.sql.Types.DATE: - System.out.print(jdi.DateField(i, null)); + date.setTime((long)jdi.DateField(i, null) * 1000); + System.out.print(date); + break; + case java.sql.Types.TIMESTAMP: + tsp.setTime((long)jdi.TimestampField(i, null) * 1000); + System.out.print(tsp); break; case java.sql.Types.SMALLINT: System.out.print(jdi.IntField(i, null)); @@ -141,6 +156,8 @@ public class Client { case java.sql.Types.BOOLEAN: System.out.print(jdi.BooleanField(i, null)); default: + job = jdi.ObjectField(i, null); + System.out.print(job.toString()); break; } // endswitch Type diff --git a/storage/connect/JavaWrappers.jar b/storage/connect/JavaWrappers.jar index ef407f6a9c2d1e0ad1730c4b7194b012572ba8ce..33b29e7685b66ee03d1b3f5921f2ba32d48f76b3 100644 GIT binary patch delta 13062 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 delta 37949 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 diff --git a/storage/connect/JdbcInterface.java b/storage/connect/JdbcInterface.java index a1b1360e6ea..72ee4ab0d39 100644 --- a/storage/connect/JdbcInterface.java +++ b/storage/connect/JdbcInterface.java @@ -1,10 +1,22 @@ package wrappers; -import java.math.*; -import java.sql.*; +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.Date; +import java.sql.Driver; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Time; +import java.sql.Timestamp; import java.util.Collections; import java.util.Hashtable; import java.util.List; +import java.util.UUID; import javax.sql.DataSource; @@ -223,6 +235,24 @@ public class JdbcInterface { } // end of SetTimestampParm + public void SetUuidParm(int i, String s) { + try { + UUID uuid; + + if (s == null) + uuid = null; + else if (s.isEmpty()) + uuid = UUID.randomUUID(); + else + uuid = UUID.fromString(s); + + pstmt.setObject(i, uuid); + } catch (Exception e) { + SetErrmsg(e); + } // end try/catch + + } // end of SetUuidParm + public int SetNullParm(int i, int typ) { int rc = 0; @@ -481,6 +511,8 @@ public class JdbcInterface { System.out.println("Executing query '" + query + "'"); try { + if (rs != null) + rs.close(); rs = stmt.executeQuery(query); rsmd = rs.getMetaData(); ncol = rsmd.getColumnCount(); @@ -708,7 +740,7 @@ public class JdbcInterface { return 0; } // end of TimestampField - public Object ObjectField(int n, String name) { + public Object ObjectField(int n, String name) { if (rs == null) { System.out.println("No result set"); } else try { @@ -720,6 +752,22 @@ public class JdbcInterface { return null; } // end of ObjectField + public String UuidField(int n, String name) { + Object job; + + if (rs == null) { + System.out.println("No result set"); + } else + try { + job = (n > 0) ? rs.getObject(n) : rs.getObject(name); + return job.toString(); + } catch (SQLException se) { + SetErrmsg(se); + } // end try/catch + + return null; + } // end of UuidField + public int GetDrivers(String[] s, int mxs) { int n = 0; List drivers = Collections.list(DriverManager.getDrivers()); diff --git a/storage/connect/PostgresqlInterface.java b/storage/connect/PostgresqlInterface.java index adce0616a1b..9f611eeb23b 100644 --- a/storage/connect/PostgresqlInterface.java +++ b/storage/connect/PostgresqlInterface.java @@ -1,9 +1,10 @@ package wrappers; -import java.sql.*; +import java.sql.SQLException; import java.util.Hashtable; import javax.sql.DataSource; + import org.postgresql.jdbc2.optional.PoolingDataSource; public class PostgresqlInterface extends JdbcInterface { @@ -19,7 +20,7 @@ public class PostgresqlInterface extends JdbcInterface { } // end of constructor - @Override + @Override public int JdbcConnect(String[] parms, int fsize, boolean scrollable) { int rc = 0; String url = parms[1]; diff --git a/storage/connect/array.cpp b/storage/connect/array.cpp index 639edf63a1a..cd1785b48ac 100644 --- a/storage/connect/array.cpp +++ b/storage/connect/array.cpp @@ -82,7 +82,7 @@ PARRAY MakeValueArray(PGLOBAL g, PPARM pp) if ((valtyp = pp->Type) != TYPE_STRING) len = 1; - if (trace) + if (trace(1)) htrc("valtyp=%d len=%d\n", valtyp, len); /*********************************************************************/ @@ -287,7 +287,7 @@ bool ARRAY::AddValue(PGLOBAL g, PSZ strp) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding string(%d): '%s'\n", Nval, strp); //Value->SetValue_psz(strp); @@ -306,7 +306,7 @@ bool ARRAY::AddValue(PGLOBAL g, void *p) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding pointer(%d): %p\n", Nval, p); Vblp->SetValue((PSZ)p, Nval++); @@ -323,7 +323,7 @@ bool ARRAY::AddValue(PGLOBAL g, short n) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding SHORT(%d): %hd\n", Nval, n); //Value->SetValue(n); @@ -342,7 +342,7 @@ bool ARRAY::AddValue(PGLOBAL g, int n) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding int(%d): %d\n", Nval, n); //Value->SetValue(n); @@ -361,7 +361,7 @@ bool ARRAY::AddValue(PGLOBAL g, double d) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding float(%d): %lf\n", Nval, d); Value->SetValue(d); @@ -380,7 +380,7 @@ bool ARRAY::AddValue(PGLOBAL g, PXOB xp) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding (%d) from xp=%p\n", Nval, xp); //AddValue(xp->GetValue()); @@ -399,7 +399,7 @@ bool ARRAY::AddValue(PGLOBAL g, PVAL vp) return true; } // endif Type - if (trace) + if (trace(1)) htrc(" adding (%d) from vp=%p\n", Nval, vp); Vblp->SetValue(vp, Nval++); @@ -520,7 +520,7 @@ bool ARRAY::FilTest(PGLOBAL g, PVAL valp, OPVAL opc, int opm) } else if (opc != OP_EXIST) { sprintf(g->Message, MSG(MISSING_ARG), opc); - throw (int)TYPE_ARRAY; + throw (int)TYPE_ARRAY; } else // OP_EXIST return Nval > 0; @@ -990,7 +990,7 @@ PSZ ARRAY::MakeArrayList(PGLOBAL g) len += strlen(tp); } // enfor i - if (trace) + if (trace(1)) htrc("Arraylist: len=%d\n", len); p = (char *)PlugSubAlloc(g, NULL, len); @@ -1003,7 +1003,7 @@ PSZ ARRAY::MakeArrayList(PGLOBAL g) strcat(p, (++i == Nval) ? ")" : ","); } // enfor i - if (trace) + if (trace(1)) htrc("Arraylist: newlen=%d\n", strlen(p)); return p; diff --git a/storage/connect/blkfil.cpp b/storage/connect/blkfil.cpp index 802095f2f82..76c9d09ac93 100644 --- a/storage/connect/blkfil.cpp +++ b/storage/connect/blkfil.cpp @@ -241,7 +241,7 @@ int BLKFILARI::BlockEval(PGLOBAL) break; } // endswitch Opc - if (trace) + if (trace(1)) htrc("BlockEval: op=%d n=%d rc=%d\n", Opc, n, Result); return Result; @@ -338,7 +338,7 @@ int BLKFILAR2::BlockEval(PGLOBAL) break; } // endswitch Opc - if (trace) + if (trace(1)) htrc("BlockEval2: op=%d n=%d rc=%d\n", Opc, n, Result); return Result; @@ -474,7 +474,7 @@ int BLKFILMR2::BlockEval(PGLOBAL) break; } // endswitch Opc - if (trace) + if (trace(1)) htrc("BlockEval2: op=%d n=%d rc=%d\n", Opc, n, Result); return Result; @@ -567,7 +567,7 @@ int BLKSPCARI::BlockEval(PGLOBAL) break; } // endswitch Opc - if (trace) + if (trace(1)) htrc("BlockEval: op=%d n=%d rc=%d\n", Opc, n, Result); return Result; diff --git a/storage/connect/block.h b/storage/connect/block.h index 8ac7be80988..737c74c1293 100644 --- a/storage/connect/block.h +++ b/storage/connect/block.h @@ -38,8 +38,8 @@ typedef class BLOCK *PBLOCK; class DllExport BLOCK { public: void * operator new(size_t size, PGLOBAL g, void *p = NULL) { -// if (trace > 3) -// htrc("New BLOCK: size=%d g=%p p=%p\n", size, g, p); + if (trace(256)) + htrc("New BLOCK: size=%d g=%p p=%p\n", size, g, p); return (PlugSubAlloc(g, p, size)); } // end of new diff --git a/storage/connect/checklvl.h b/storage/connect/checklvl.h index 0c234dfb8b8..9029e616bb6 100644 --- a/storage/connect/checklvl.h +++ b/storage/connect/checklvl.h @@ -45,6 +45,7 @@ enum USETEMP {TMP_NO = 0, /* Never */ /***********************************************************************/ enum TYPCONV {TPC_NO = 0, /* Never */ TPC_YES = 1, /* Always */ - TPC_SKIP = 2}; /* Skip TEXT columns */ + TPC_FORCE = 2, /* Also convert BLOBs */ + TPC_SKIP = 3}; /* Skip TEXT columns */ #endif // _CHKLVL_DEFINED_ diff --git a/storage/connect/cmgoconn.cpp b/storage/connect/cmgoconn.cpp index 44fac56137f..edee1874b97 100644 --- a/storage/connect/cmgoconn.cpp +++ b/storage/connect/cmgoconn.cpp @@ -280,7 +280,7 @@ bool CMgoConn::MakeCursor(PGLOBAL g) all = true; if (Pcg->Pipe) { - if (trace) + if (trace(1)) htrc("Pipeline: %s\n", options); p = strrchr(options, ']'); @@ -330,7 +330,7 @@ bool CMgoConn::MakeCursor(PGLOBAL g) *(char*)p = ']'; // Restore Colist for discovery p = s->GetStr(); - if (trace) + if (trace(33)) htrc("New Pipeline: %s\n", p); Query = bson_new_from_json((const uint8_t *)p, -1, &Error); @@ -350,7 +350,7 @@ bool CMgoConn::MakeCursor(PGLOBAL g) } else { if (Pcg->Filter || filp) { - if (trace) { + if (trace(1)) { if (Pcg->Filter) htrc("Filter: %s\n", Pcg->Filter); @@ -377,7 +377,7 @@ bool CMgoConn::MakeCursor(PGLOBAL g) tp->SetFilter(NULL); // Not needed anymore } // endif To_Filter - if (trace) + if (trace(33)) htrc("selector: %s\n", s->GetStr()); s->Resize(s->GetLength() + 1); @@ -393,7 +393,7 @@ bool CMgoConn::MakeCursor(PGLOBAL g) if (!all) { if (options && *options) { - if (trace) + if (trace(1)) htrc("options=%s\n", options); p = options; @@ -450,10 +450,10 @@ int CMgoConn::ReadNext(PGLOBAL g) if (!Cursor && MakeCursor(g)) { rc = RC_FX; } else if (mongoc_cursor_next(Cursor, &Document)) { - if (trace > 1) { + if (trace(512)) { bson_iter_t iter; ShowDocument(&iter, Document, ""); - } else if (trace == 1) + } else if (trace(1)) htrc("%s\n", GetDocument(g)); } else if (mongoc_cursor_error(Cursor, &Error)) { @@ -589,7 +589,7 @@ int CMgoConn::Write(PGLOBAL g) if (DocWrite(g, Fpc)) return RC_FX; - if (trace) { + if (trace(2)) { char *str = bson_as_json(Fpc->Child, NULL); htrc("Inserting: %s\n", str); bson_free(str); @@ -623,7 +623,7 @@ int CMgoConn::Write(PGLOBAL g) } // endif iter if (b) { - if (trace) { + if (trace(2)) { char *str = bson_as_json(query, NULL); htrc("update query: %s\n", str); bson_free(str); diff --git a/storage/connect/colblk.cpp b/storage/connect/colblk.cpp index 2ffe51d2009..a9cf43f3d96 100644 --- a/storage/connect/colblk.cpp +++ b/storage/connect/colblk.cpp @@ -76,7 +76,7 @@ COLBLK::COLBLK(PCOL col1, PTDB tdbp) //To_Orig = col1; To_Tdb = tdbp; - if (trace > 1) + if (trace(2)) htrc(" copying COLBLK %s from %p to %p\n", Name, col1, this); if (tdbp) @@ -115,7 +115,7 @@ bool COLBLK::SetFormat(PGLOBAL, FORMAT& fmt) { fmt = Format; - if (trace > 1) + if (trace(2)) htrc("COLBLK: %p format=%c(%d,%d)\n", this, *fmt.Type, fmt.Length, fmt.Prec); @@ -128,7 +128,7 @@ bool COLBLK::SetFormat(PGLOBAL, FORMAT& fmt) /***********************************************************************/ bool COLBLK::Eval(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("Col Eval: %s status=%.4X\n", Name, Status); if (!GetStatus(BUF_READ)) { @@ -165,7 +165,7 @@ bool COLBLK::InitValue(PGLOBAL g) AddStatus(BUF_READY); Value->SetNullable(Nullable); - if (trace > 1) + if (trace(2)) htrc(" colp=%p type=%d value=%p coluse=%.4X status=%.4X\n", this, Buf_Type, Value, ColUse, Status); @@ -412,4 +412,3 @@ void SIDBLK::ReadColumn(PGLOBAL) // } // endif Sname } // end of ReadColumn - diff --git a/storage/connect/connect.cc b/storage/connect/connect.cc index 5e80201fccf..39123b18c59 100644 --- a/storage/connect/connect.cc +++ b/storage/connect/connect.cc @@ -92,7 +92,7 @@ void CntEndDB(PGLOBAL g) free(dbuserp); - if (trace) + if (trace(1)) htrc("CntEndDB: Freeing Dup\n"); g->Activityp->Aptr = NULL; @@ -112,14 +112,14 @@ bool CntCheckDB(PGLOBAL g, PHC handler, const char *pathname) bool rc= false; PDBUSER dbuserp= PlgGetUser(g); - if (trace) { + if (trace(1)) { printf("CntCheckDB: dbuserp=%p\n", dbuserp); } // endif trace if (!dbuserp || !handler) return true; - if (trace) + if (trace(1)) printf("cat=%p oldhandler=%p newhandler=%p\n", dbuserp->Catalog, (dbuserp->Catalog) ? ((MYCAT*)dbuserp->Catalog)->GetHandler() : NULL, handler); @@ -150,7 +150,7 @@ bool CntCheckDB(PGLOBAL g, PHC handler, const char *pathname) /*********************************************************************/ sprintf(g->Message, MSG(DATABASE_LOADED), "???"); - if (trace) + if (trace(1)) printf("msg=%s\n", g->Message); return rc; @@ -198,7 +198,7 @@ PTDB CntGetTDB(PGLOBAL g, LPCSTR name, MODE mode, PHC h) PDBUSER dup = PlgGetUser(g); volatile PCATLG cat = (dup) ? dup->Catalog : NULL; // Safe over throw - if (trace) + if (trace(1)) printf("CntGetTDB: name=%s mode=%d cat=%p\n", name, mode, cat); if (!cat) @@ -208,7 +208,7 @@ PTDB CntGetTDB(PGLOBAL g, LPCSTR name, MODE mode, PHC h) // Get table object from the catalog tabp = new(g) XTAB(name); - if (trace) + if (trace(1)) printf("CntGetTDB: tabp=%p\n", tabp); // Perhaps this should be made thread safe @@ -218,13 +218,13 @@ PTDB CntGetTDB(PGLOBAL g, LPCSTR name, MODE mode, PHC h) printf("CntGetTDB: %s\n", g->Message); } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); } catch (const char *msg) { strcpy(g->Message, msg); } // end catch - if (trace) + if (trace(1)) printf("Returning tdbp=%p mode=%d\n", tdbp, mode); return tdbp; @@ -243,7 +243,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2, //PCOLUMN cp; PDBUSER dup= PlgGetUser(g); - if (trace) + if (trace(1)) printf("CntOpenTable: tdbp=%p mode=%d\n", tdbp, mode); if (!tdbp) { @@ -260,7 +260,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2, } else for (p = c1; *p; p += n) { // Allocate only used column blocks - if (trace) + if (trace(1)) printf("Allocating column %s\n", p); g->Message[0] = 0; // To check whether ColDB made an error message @@ -325,7 +325,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2, tdbp->SetSetCols(tdbp->GetColumns()); // Now do open the physical table - if (trace) + if (trace(1)) printf("Opening table %s in mode %d tdbp=%p\n", tdbp->GetName(), mode, tdbp); @@ -341,7 +341,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2, } // endif del - if (trace) + if (trace(1)) printf("About to open the table: tdbp=%p\n", tdbp); if (mode != MODE_ANY && mode != MODE_ALTER) { @@ -356,7 +356,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2, rcop = false; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); } catch (const char *msg) { strcpy(g->Message, msg); @@ -399,12 +399,13 @@ RCODE EvalColumns(PGLOBAL g, PTDB tdbp, bool reset, bool mrr) } // endfor colp } catch (int n) { - if (trace) + if (trace(1)) printf("Error %d reading columns: %s\n", n, g->Message); rc = RC_FX; } catch (const char *msg) { strcpy(g->Message, msg); + rc = RC_NF; } // end catch return rc; @@ -549,7 +550,7 @@ int CntCloseTable(PGLOBAL g, PTDB tdbp, bool nox, bool abort) return rc; } // endif !USE_OPEN - if (trace) + if (trace(1)) printf("CntCloseTable: tdbp=%p mode=%d nox=%d abort=%d\n", tdbp, tdbp->GetMode(), nox, abort); @@ -579,11 +580,11 @@ int CntCloseTable(PGLOBAL g, PTDB tdbp, bool nox, bool abort) tdbp->CloseDB(g); tdbp->SetAbort(false); - if (trace > 1) + if (trace(2)) printf("Table %s closed\n", tdbp->GetName()); if (!nox && tdbp->GetMode() != MODE_READ && tdbp->GetMode() != MODE_ANY) { - if (trace > 1) + if (trace(2)) printf("About to reset opt\n"); if (!tdbp->IsRemote()) { @@ -603,7 +604,7 @@ int CntCloseTable(PGLOBAL g, PTDB tdbp, bool nox, bool abort) rc = RC_FX; } // end catch - if (trace > 1) + if (trace(2)) htrc("Done rc=%d\n", rc); return (rc == RC_OK || rc == RC_INFO) ? 0 : rc; @@ -922,7 +923,7 @@ int CntIndexRange(PGLOBAL g, PTDB ptdb, const uchar* *key, uint *len, valp->SetBinValue((void*)p); #endif // !WORDS_BIGENDIAN - if (trace) { + if (trace(1)) { char bf[32]; printf("i=%d n=%d key=%s\n", i, n, valp->GetCharString(bf)); } // endif trace @@ -944,7 +945,7 @@ int CntIndexRange(PGLOBAL g, PTDB ptdb, const uchar* *key, uint *len, xbp->SetNval(n); - if (trace) + if (trace(1)) printf("xbp=%p Nval=%d i=%d incl=%d\n", xbp, n, i, incl[i]); k[i]= xbp->Range(g, i + 1, incl[i]); @@ -953,7 +954,7 @@ int CntIndexRange(PGLOBAL g, PTDB ptdb, const uchar* *key, uint *len, } // endfor i - if (trace) + if (trace(1)) printf("k1=%d k0=%d\n", k[1], k[0]); return k[1] - k[0]; diff --git a/storage/connect/csort.cpp b/storage/connect/csort.cpp index 13f325d8f3f..670131b8fd2 100644 --- a/storage/connect/csort.cpp +++ b/storage/connect/csort.cpp @@ -351,7 +351,7 @@ void CSORT::Qstx(int *base, int *max) zlo = zhi = cnm = 0; // Avoid warning message - lo = max - base; // Number of elements as longs + lo = (int)(max - base); // Number of elements as longs if (Dup) cnm = Cmpnum(lo); @@ -472,7 +472,7 @@ void CSORT::Qstx(int *base, int *max) i = him + 1; if (Pof) - Pof[him - Pex] = Pof[mid - Pex] = i - j; + Pof[him - Pex] = Pof[mid - Pex] = (int)(i - j); /*******************************************************************/ /* Look at sizes of the two partitions, do the smaller one first */ @@ -481,8 +481,8 @@ void CSORT::Qstx(int *base, int *max) /* But only repeat (recursively or by branching) if the partition */ /* is of at least size THRESH. */ /*******************************************************************/ - lo = j - base; - hi = max - i; + lo = (int)(j - base); + hi = (int)(max - i); if (Dup) { // Update progress information zlo = Cmpnum(lo); @@ -726,7 +726,7 @@ void CSORT::Qstc(int *base, int *max) zlo = zhi = cnm = 0; // Avoid warning message - lo = max - base; // Number of elements as longs + lo = (int)(max - base); // Number of elements as longs if (Dup) cnm = Cmpnum(lo); @@ -853,7 +853,7 @@ void CSORT::Qstc(int *base, int *max) /* the offset array values indicating break point and block size. */ /*******************************************************************/ if (Pof) - Pof[lt - Pex] = Pof[(jj - 1) - Pex] = jj - lt; + Pof[lt - Pex] = Pof[(jj - 1) - Pex] = (int)(jj - lt); /*******************************************************************/ /* Look at sizes of the two partitions, do the smaller one first */ @@ -862,8 +862,8 @@ void CSORT::Qstc(int *base, int *max) /* But only repeat (recursively or by branching) if the partition */ /* is of at least size THRESH. */ /*******************************************************************/ - lo = lt - base; - hi = gt - Swix; + lo = (int)(lt - base); + hi = (int)(gt - Swix); if (Dup) { // Update progress information zlo = Cmpnum(lo); diff --git a/storage/connect/domdoc.cpp b/storage/connect/domdoc.cpp index e24e10835c1..ba8eb829abd 100644 --- a/storage/connect/domdoc.cpp +++ b/storage/connect/domdoc.cpp @@ -13,6 +13,7 @@ #elif defined(MSX4) #import "msxml4.dll" //Causes error C2872: DOMNodeType: ambiguous symbol ?? #elif defined(MSX6) +#pragma warning(suppress : 4192) #import "msxml6.dll" //Causes error C2872: DOMNodeType: ambiguous symbol ?? #else // MSX4 #error MSX? is not defined @@ -540,7 +541,7 @@ PXNODE DOMNODE::AddChildNode(PGLOBAL g, PCSZ name, PXNODE np) // If name has the format m[n] only m is taken as node name if ((p = strchr(name, '['))) - pn = BufAlloc(g, name, p - name); + pn = BufAlloc(g, name, (int)(p - name)); else pn = name; diff --git a/storage/connect/filamap.cpp b/storage/connect/filamap.cpp index 84dff422db7..6e71e1bf2cd 100644 --- a/storage/connect/filamap.cpp +++ b/storage/connect/filamap.cpp @@ -90,7 +90,7 @@ int MAPFAM::GetFileLength(PGLOBAL g) len = (To_Fb && To_Fb->Count) ? To_Fb->Length : TXTFAM::GetFileLength(g); - if (trace) + if (trace(1)) htrc("Mapped file length=%d\n", len); return len; @@ -128,7 +128,7 @@ bool MAPFAM::OpenTableFile(PGLOBAL g) && fp->Count && fp->Mode == mode) break; - if (trace) + if (trace(1)) htrc("Mapping file, fp=%p\n", fp); } else @@ -166,7 +166,7 @@ bool MAPFAM::OpenTableFile(PGLOBAL g) sprintf(g->Message, MSG(OPEN_MODE_ERROR), "map", (int) rc, filename); - if (trace) + if (trace(1)) htrc("CreateFileMap: %s\n", g->Message); return (mode == MODE_READ && rc == ENOENT) @@ -227,7 +227,7 @@ bool MAPFAM::OpenTableFile(PGLOBAL g) Fpos = Mempos = Memory; Top = Memory + len; - if (trace) + if (trace(1)) htrc("fp=%p count=%d MapView=%p len=%d Top=%p\n", fp, fp->Count, Memory, len, Top); @@ -247,7 +247,7 @@ int MAPFAM::GetRowID(void) /***********************************************************************/ int MAPFAM::GetPos(void) { - return Fpos - Memory; + return (int)(Fpos - Memory); } // end of GetPos /***********************************************************************/ @@ -255,7 +255,7 @@ int MAPFAM::GetPos(void) /***********************************************************************/ int MAPFAM::GetNextPos(void) { - return Mempos - Memory; + return (int)(Mempos - Memory); } // end of GetNextPos /***********************************************************************/ @@ -368,7 +368,7 @@ int MAPFAM::ReadBuffer(PGLOBAL g) } // endif Mempos // Set caller line buffer - len = (Mempos - Fpos) - n; + len = (int)(Mempos - Fpos) - n; // Don't rely on ENDING setting if (len > 0 && *(Mempos - 2) == '\r') @@ -407,7 +407,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) { int n; - if (trace) + if (trace(1)) htrc("MAP DeleteDB: irc=%d mempos=%p tobuf=%p Tpos=%p Spos=%p\n", irc, Mempos, To_Buf, Tpos, Spos); @@ -417,7 +417,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = Top; - if (trace) + if (trace(1)) htrc("Fpos placed at file top=%p\n", Fpos); } // endif irc @@ -428,14 +428,14 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) /* not required here, just setting of future Spos and Tpos. */ /*******************************************************************/ Tpos = Spos = Fpos; - } else if ((n = Fpos - Spos) > 0) { + } else if ((n = (int)(Fpos - Spos)) > 0) { /*******************************************************************/ /* Non consecutive line to delete. Move intermediate lines. */ /*******************************************************************/ memmove(Tpos, Spos, n); Tpos += n; - if (trace) + if (trace(1)) htrc("move %d bytes\n", n); } // endif n @@ -443,7 +443,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) if (irc == RC_OK) { Spos = Mempos; // New start position - if (trace) + if (trace(1)) htrc("after: Tpos=%p Spos=%p\n", Tpos, Spos); } else if (To_Fb) { // Can be NULL for deleted files @@ -461,7 +461,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) /*****************************************************************/ /* Remove extra records. */ /*****************************************************************/ - n = Tpos - Memory; + n = (int)(Tpos - Memory); #if defined(__WIN__) DWORD drc = SetFilePointer(fp->Handle, n, NULL, FILE_BEGIN); @@ -473,7 +473,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) return RC_FX; } // endif - if (trace) + if (trace(1)) htrc("done, Tpos=%p newsize=%d drc=%d\n", Tpos, n, drc); if (!SetEndOfFile(fp->Handle)) { @@ -511,7 +511,7 @@ void MAPFAM::CloseTableFile(PGLOBAL g, bool) PlugCloseFile(g, To_Fb); //To_Fb = NULL; // To get correct file size in Cardinality - if (trace) + if (trace(1)) htrc("MAP Close: closing %s count=%d\n", To_File, (To_Fb) ? To_Fb->Count : 0); @@ -627,7 +627,7 @@ int MBKFAM::ReadBuffer(PGLOBAL g) break; // Set caller line buffer - len = (Mempos - Fpos) - Ending; + len = (int)(Mempos - Fpos) - Ending; memcpy(Tdbp->GetLine(), Fpos, len); Tdbp->GetLine()[len] = '\0'; return RC_OK; diff --git a/storage/connect/filamdbf.cpp b/storage/connect/filamdbf.cpp index 44abd962c56..893e3da0d46 100644 --- a/storage/connect/filamdbf.cpp +++ b/storage/connect/filamdbf.cpp @@ -203,7 +203,7 @@ PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, bool info) PQRYRES qrp; PCOLRES crp; - if (trace) + if (trace(1)) htrc("DBFColumns: File %s\n", SVP(fn)); if (!info) { @@ -245,7 +245,7 @@ PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, bool info) return qrp; } // endif info - if (trace) { + if (trace(1)) { htrc("Structure of %s\n", filename); htrc("headlen=%hd reclen=%hd degree=%d\n", mainhead.Headlen(), mainhead.Reclen(), fields); @@ -271,7 +271,7 @@ PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, bool info) } else len = thisfield.Length; - if (trace) + if (trace(1)) htrc("%-11s %c %6ld %3d %2d %3d %3d\n", thisfield.Name, thisfield.Type, thisfield.Offset, len, thisfield.Decimals, thisfield.Setfield, thisfield.Mdxfield); @@ -522,14 +522,14 @@ bool DBFFAM::OpenTableFile(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); if (!(Stream = PlugOpenFile(g, filename, opmode))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (mode == MODE_READ && errno == ENOENT) ? PushWarning(g, Tdbp) : true; } // endif Stream - if (trace) + if (trace(1)) htrc("File %s is open in mode %s\n", filename, opmode); To_Fb = dbuserp->Openlist; // Keep track of File block @@ -938,7 +938,7 @@ void DBFFAM::CloseTableFile(PGLOBAL g, bool abort) rc = PlugCloseFile(g, To_Fb); fin: - if (trace) + if (trace(1)) htrc("DBF CloseTableFile: closing %s mode=%d wrc=%d rc=%d\n", To_File, mode, wrc, rc); diff --git a/storage/connect/filamfix.cpp b/storage/connect/filamfix.cpp index 1d6194b154d..0a98ec5b54a 100644 --- a/storage/connect/filamfix.cpp +++ b/storage/connect/filamfix.cpp @@ -322,7 +322,7 @@ int FIXFAM::ReadBuffer(PGLOBAL g) return RC_FX; } // endif fseek - if (trace > 1) + if (trace(2)) htrc("File position is now %d\n", ftell(Stream)); if (Padded) @@ -344,7 +344,7 @@ int FIXFAM::ReadBuffer(PGLOBAL g) sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(errno)); #endif - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return RC_FX; @@ -361,7 +361,7 @@ int FIXFAM::ReadBuffer(PGLOBAL g) /***********************************************************************/ int FIXFAM::WriteBuffer(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("FIX WriteDB: Mode=%d buf=%p line=%p Nrec=%d Rbuf=%d CurNum=%d\n", Tdbp->GetMode(), To_Buf, Tdbp->GetLine(), Nrec, Rbuf, CurNum); @@ -374,7 +374,7 @@ int FIXFAM::WriteBuffer(PGLOBAL g) return RC_OK; // We write only full blocks } // endif CurNum - if (trace > 1) + if (trace(2)) htrc(" First line is '%.*s'\n", Lrecl - 2, To_Buf); // Now start the writing process. @@ -388,7 +388,7 @@ int FIXFAM::WriteBuffer(PGLOBAL g) CurNum = 0; Tdbp->SetLine(To_Buf); - if (trace > 1) + if (trace(2)) htrc("write done\n"); } else { // Mode == MODE_UPDATE @@ -431,7 +431,7 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) /* file, and at the end erase all trailing records. */ /* This will be experimented. */ /*********************************************************************/ - if (trace > 1) + if (trace(2)) htrc("DOS DeleteDB: rc=%d UseTemp=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, Fpos, Tpos, Spos); @@ -441,7 +441,7 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = Tdbp->Cardinality(g); - if (trace > 1) + if (trace(2)) htrc("Fpos placed at file end=%d\n", Fpos); } else // Fpos is the deleted line position @@ -491,7 +491,7 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) OldBlk = -2; // To force fseek to be executed on next block } // endif moved - if (trace > 1) + if (trace(2)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else { @@ -540,7 +540,7 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) close(h); - if (trace > 1) + if (trace(2)) htrc("done, h=%d irc=%d\n", h, irc); } // endif UseTemp @@ -572,7 +572,7 @@ bool FIXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) req = (size_t)MY_MIN(n, Dbflen); len = fread(DelBuf, Lrecl, req, Stream); - if (trace > 1) + if (trace(2)) htrc("after read req=%d len=%d\n", req, len); if (len != req) { @@ -591,13 +591,13 @@ bool FIXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) return true; } // endif - if (trace > 1) + if (trace(2)) htrc("after write pos=%d\n", ftell(Stream)); Tpos += (int)req; Spos += (int)req; - if (trace > 1) + if (trace(2)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); *b = true; @@ -648,7 +648,7 @@ void FIXFAM::CloseTableFile(PGLOBAL g, bool abort) rc = PlugCloseFile(g, To_Fb); fin: - if (trace) + if (trace(1)) htrc("FIX CloseTableFile: closing %s mode=%d wrc=%d rc=%d\n", To_File, mode, wrc, rc); @@ -718,7 +718,7 @@ int BGXFAM::BigRead(PGLOBAL g __attribute__((unused)), DWORD nbr, drc, len = (DWORD)req; bool brc = ReadFile(h, inbuf, len, &nbr, NULL); - if (trace > 1) + if (trace(2)) htrc("after read req=%d brc=%d nbr=%d\n", req, brc, nbr); if (!brc) { @@ -730,7 +730,7 @@ int BGXFAM::BigRead(PGLOBAL g __attribute__((unused)), (LPTSTR)buf, sizeof(buf), NULL); sprintf(g->Message, MSG(READ_ERROR), To_File, buf); - if (trace > 1) + if (trace(2)) htrc("BIGREAD: %s\n", g->Message); rc = -1; @@ -757,7 +757,7 @@ bool BGXFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) DWORD nbw, drc, len = (DWORD)req; bool brc = WriteFile(h, inbuf, len, &nbw, NULL); - if (trace > 1) + if (trace(2)) htrc("after write req=%d brc=%d nbw=%d\n", req, brc, nbw); if (!brc || nbw != len) { @@ -775,7 +775,7 @@ bool BGXFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(WRITE_STRERROR), fn, buf); - if (trace > 1) + if (trace(2)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", nbw, len, drc, g->Message); @@ -790,7 +790,7 @@ bool BGXFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(WRITE_STRERROR), fn, strerror(errno)); - if (trace > 1) + if (trace(2)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", nbw, len, errno, g->Message); @@ -828,7 +828,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("OpenTableFile: filename=%s mode=%d\n", filename, mode); #if defined(__WIN__) @@ -888,7 +888,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) } else rc = 0; - if (trace > 1) + if (trace(2)) htrc(" rc=%d access=%p share=%p creation=%d handle=%p fn=%s\n", rc, access, share, creation, Hfile, filename); @@ -942,7 +942,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) } else rc = 0; - if (trace > 1) + if (trace(2)) htrc(" rc=%d oflag=%p tmode=%p handle=%p fn=%s\n", rc, oflag, tmode, Hfile, filename); @@ -1026,11 +1026,11 @@ int BGXFAM::Cardinality(PGLOBAL g) if (Hfile == INVALID_HANDLE_VALUE) { int h = open64(filename, O_RDONLY, 0); - if (trace) + if (trace(1)) htrc(" h=%d\n", h); if (h == INVALID_HANDLE_VALUE) { - if (trace) + if (trace(1)) htrc(" errno=%d ENOENT=%d\n", errno, ENOENT); if (errno != ENOENT) { @@ -1074,7 +1074,7 @@ int BGXFAM::Cardinality(PGLOBAL g) } else card = (int)(fsize / (BIGINT)Lrecl); // Fixed length file - if (trace) + if (trace(1)) htrc(" Computed max_K=%d fsize=%lf lrecl=%d\n", card, (double)fsize, Lrecl); @@ -1181,7 +1181,7 @@ int BGXFAM::ReadBuffer(PGLOBAL g) if (BigSeek(g, Hfile, (BIGINT)Fpos * (BIGINT)Lrecl)) return RC_FX; - if (trace > 1) + if (trace(2)) htrc("File position is now %d\n", Fpos); nbr = BigRead(g, Hfile, To_Buf, (Padded) ? Blksize : Lrecl * Nrec); @@ -1205,7 +1205,7 @@ int BGXFAM::ReadBuffer(PGLOBAL g) /***********************************************************************/ int BGXFAM::WriteBuffer(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("BIG WriteDB: Mode=%d buf=%p line=%p Nrec=%d Rbuf=%d CurNum=%d\n", Tdbp->GetMode(), To_Buf, Tdbp->GetLine(), Nrec, Rbuf, CurNum); @@ -1218,7 +1218,7 @@ int BGXFAM::WriteBuffer(PGLOBAL g) return RC_OK; // We write only full blocks } // endif CurNum - if (trace > 1) + if (trace(2)) htrc(" First line is '%.*s'\n", Lrecl - 2, To_Buf); // Now start the writing process. @@ -1229,7 +1229,7 @@ int BGXFAM::WriteBuffer(PGLOBAL g) CurNum = 0; Tdbp->SetLine(To_Buf); - if (trace > 1) + if (trace(2)) htrc("write done\n"); } else { // Mode == MODE_UPDATE @@ -1270,7 +1270,7 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc) /* file, and at the end erase all trailing records. */ /* This will be experimented. */ /*********************************************************************/ - if (trace > 1) + if (trace(2)) htrc("BGX DeleteDB: rc=%d UseTemp=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, Fpos, Tpos, Spos); @@ -1280,7 +1280,7 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = Tdbp->Cardinality(g); - if (trace > 1) + if (trace(2)) htrc("Fpos placed at file end=%d\n", Fpos); } else // Fpos is the deleted line position @@ -1318,7 +1318,7 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc) return RC_FX; if (irc == RC_OK) { - if (trace) + if (trace(1)) assert(Spos == Fpos); Spos++; // New start position is on next line @@ -1330,7 +1330,7 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc) OldBlk = -2; // To force fseek to be executed on next block } // endif moved - if (trace > 1) + if (trace(2)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else if (irc != RC_OK) { @@ -1459,7 +1459,7 @@ bool BGXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) Tpos += (int)req; Spos += (int)req; - if (trace > 1) + if (trace(2)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); *b = true; @@ -1510,7 +1510,7 @@ void BGXFAM::CloseTableFile(PGLOBAL g, bool abort) rc = PlugCloseFile(g, To_Fb); fin: - if (trace) + if (trace(1)) htrc("BGX CloseTableFile: closing %s mode=%d wrc=%d rc=%d\n", To_File, mode, wrc, rc); diff --git a/storage/connect/filamgz.cpp b/storage/connect/filamgz.cpp index df366ef15f9..880db54c91d 100644 --- a/storage/connect/filamgz.cpp +++ b/storage/connect/filamgz.cpp @@ -203,7 +203,7 @@ bool GZFAM::AllocateBuffer(PGLOBAL g) Buflen = Lrecl + 2; // Lrecl does not include CRLF //Buflen *= ((Mode == MODE_DELETE) ? DOS_BUFF_LEN : 1); NIY - if (trace) + if (trace(1)) htrc("SubAllocating a buffer of %d bytes\n", Buflen); To_Buf = (char*)PlugSubAlloc(g, NULL, Buflen); @@ -347,7 +347,7 @@ int GZFAM::ReadBuffer(PGLOBAL g) } else rc = Zerror(g); - if (trace > 1) + if (trace(2)) htrc(" Read: '%s' rc=%d\n", To_Buf, rc); return rc; @@ -389,7 +389,7 @@ void GZFAM::CloseTableFile(PGLOBAL, bool) { int rc = gzclose(Zfile); - if (trace) + if (trace(1)) htrc("GZ CloseDB: closing %s rc=%d\n", To_File, rc); Zfile = NULL; // So we can know whether table is open @@ -537,7 +537,7 @@ int ZBKFAM::ReadBuffer(PGLOBAL g) while (*NxtLine++ != '\n') ; // Set caller line buffer - n = NxtLine - CurLine - Ending; + n = (int)(NxtLine - CurLine - Ending); memcpy(Tdbp->GetLine(), CurLine, n); Tdbp->GetLine()[n] = '\0'; return RC_OK; @@ -588,7 +588,7 @@ int ZBKFAM::ReadBuffer(PGLOBAL g) for (NxtLine = CurLine; *NxtLine++ != '\n';) ; // Set caller line buffer - n = NxtLine - CurLine - Ending; + n = (int)(NxtLine - CurLine - Ending); memcpy(Tdbp->GetLine(), CurLine, n); Tdbp->GetLine()[n] = '\0'; Rbuf = (CurBlk == Block - 1) ? Last : Nrec; @@ -702,7 +702,7 @@ void ZBKFAM::CloseTableFile(PGLOBAL g, bool) } else rc = gzclose(Zfile); - if (trace) + if (trace(1)) htrc("GZ CloseDB: closing %s rc=%d\n", To_File, rc); Zfile = NULL; // So we can know whether table is open @@ -1087,7 +1087,7 @@ bool ZLBFAM::SetPos(PGLOBAL g, int pos __attribute__((unused))) /***********************************************************************/ int ZLBFAM::ReadBuffer(PGLOBAL g) { - int n; + size_t n; void *rdbuf; /*********************************************************************/ @@ -1299,7 +1299,7 @@ int ZLBFAM::WriteBuffer(PGLOBAL g) else NxtLine = CurLine + Lrecl; - BlkLen = NxtLine - To_Buf; + BlkLen = (int)(NxtLine - To_Buf); if (WriteCompressedBuffer(g)) { Closing = TRUE; // To tell CloseDB about a Write error @@ -1382,7 +1382,7 @@ void ZLBFAM::CloseTableFile(PGLOBAL g, bool) } else rc = fclose(Stream); - if (trace) + if (trace(1)) htrc("ZLB CloseTableFile: closing %s mode=%d rc=%d\n", To_File, Tdbp->GetMode(), rc); @@ -1408,7 +1408,7 @@ void ZLBFAM::Rewind(void) rewind(Stream); - if (!(st = fread(Zlenp, sizeof(int), 1, Stream)) && trace) + if (!(st = fread(Zlenp, sizeof(int), 1, Stream)) && trace(1)) htrc("fread error %d in Rewind", errno); fseek(Stream, *Zlenp + sizeof(int), SEEK_SET); diff --git a/storage/connect/filamtxt.cpp b/storage/connect/filamtxt.cpp index c456ee9e9b7..7c222eb3c80 100644 --- a/storage/connect/filamtxt.cpp +++ b/storage/connect/filamtxt.cpp @@ -194,12 +194,12 @@ int TXTFAM::GetFileLength(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); h= global_open(g, MSGID_OPEN_MODE_STRERROR, filename, _O_RDONLY); - if (trace) + if (trace(1)) htrc("GetFileLength: fn=%s h=%d\n", filename, h); if (h == -1) { if (errno != ENOENT) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); len = -1; @@ -249,7 +249,7 @@ int TXTFAM::Cardinality(PGLOBAL g) } // endif Padded - if (trace) + if (trace(1)) htrc(" Computed max_K=%d Filen=%d lrecl=%d\n", card, len, Lrecl); @@ -390,7 +390,7 @@ int TXTFAM::UpdateSortedRows(PGLOBAL g) return RC_OK; err: - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return RC_FX; @@ -439,7 +439,7 @@ int TXTFAM::DeleteSortedRows(PGLOBAL g) return RC_OK; err: - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return RC_FX; @@ -512,7 +512,7 @@ int DOSFAM::GetFileLength(PGLOBAL g) if ((len = _filelength(_fileno(Stream))) < 0) sprintf(g->Message, MSG(FILELEN_ERROR), "_filelength", To_File); - if (trace) + if (trace(1)) htrc("File length=%d\n", len); return len; @@ -598,14 +598,14 @@ bool DOSFAM::OpenTableFile(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); if (!(Stream = PlugOpenFile(g, filename, opmode))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (mode == MODE_READ && errno == ENOENT) ? PushWarning(g, Tdbp) : true; } // endif Stream - if (trace) + if (trace(1)) htrc("File %s open Stream=%p mode=%s\n", filename, Stream, opmode); To_Fb = dbuserp->Openlist; // Keep track of File block @@ -628,7 +628,7 @@ bool DOSFAM::AllocateBuffer(PGLOBAL g) // Lrecl does not include line ending Buflen = Lrecl + Ending + ((Bin) ? 1 : 0) + 1; // Sergei - if (trace) + if (trace(1)) htrc("SubAllocating a buffer of %d bytes\n", Buflen); To_Buf = (char*)PlugSubAlloc(g, NULL, Buflen); @@ -768,7 +768,7 @@ int DOSFAM::ReadBuffer(PGLOBAL g) if (!Stream) return RC_EF; - if (trace > 1) + if (trace(2)) htrc("ReadBuffer: Tdbp=%p To_Line=%p Placed=%d\n", Tdbp, Tdbp->To_Line, Placed); @@ -782,7 +782,7 @@ int DOSFAM::ReadBuffer(PGLOBAL g) CurBlk = (int)Rows++; - if (trace > 1) + if (trace(2)) htrc("ReadBuffer: CurBlk=%d\n", CurBlk); /********************************************************************/ @@ -803,14 +803,14 @@ int DOSFAM::ReadBuffer(PGLOBAL g) } else Placed = false; - if (trace > 1) + if (trace(2)) htrc(" About to read: stream=%p To_Buf=%p Buflen=%d\n", Stream, To_Buf, Buflen); if (fgets(To_Buf, Buflen, Stream)) { p = To_Buf + strlen(To_Buf) - 1; - if (trace > 1) + if (trace(2)) htrc(" Read: To_Buf=%p p=%c\n", To_Buf, To_Buf, p); #if defined(__WIN__) @@ -838,7 +838,7 @@ int DOSFAM::ReadBuffer(PGLOBAL g) } else if (*p == '\n') *p = '\0'; // Eliminate ending new-line character - if (trace > 1) + if (trace(2)) htrc(" To_Buf='%s'\n", To_Buf); strcpy(Tdbp->To_Line, To_Buf); @@ -853,13 +853,13 @@ int DOSFAM::ReadBuffer(PGLOBAL g) sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(0)); #endif - if (trace) + if (trace(1)) htrc("%s\n", g->Message); rc = RC_FX; } // endif's fgets - if (trace > 1) + if (trace(2)) htrc("ReadBuffer: rc=%d\n", rc); IsRead = true; @@ -895,7 +895,7 @@ int DOSFAM::WriteBuffer(PGLOBAL g) /*******************************************************************/ curpos = ftell(Stream); - if (trace) + if (trace(1)) htrc("Last : %d cur: %d\n", Fpos, curpos); if (UseTemp) { @@ -937,7 +937,7 @@ int DOSFAM::WriteBuffer(PGLOBAL g) return RC_FX; } // endif - if (trace) + if (trace(1)) htrc("write done\n"); return RC_OK; @@ -960,7 +960,7 @@ int DOSFAM::DeleteRecords(PGLOBAL g, int irc) /* file, and at the end erase all trailing records. */ /* This will be experimented. */ /*********************************************************************/ - if (trace) + if (trace(1)) htrc( "DOS DeleteDB: rc=%d UseTemp=%d curpos=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, curpos, Fpos, Tpos, Spos); @@ -972,7 +972,7 @@ int DOSFAM::DeleteRecords(PGLOBAL g, int irc) fseek(Stream, 0, SEEK_END); Fpos = ftell(Stream); - if (trace) + if (trace(1)) htrc("Fpos placed at file end=%d\n", Fpos); } // endif irc @@ -1015,7 +1015,7 @@ int DOSFAM::DeleteRecords(PGLOBAL g, int irc) Spos = GetNextPos(); // New start position - if (trace) + if (trace(1)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else { @@ -1058,7 +1058,7 @@ int DOSFAM::DeleteRecords(PGLOBAL g, int irc) close(h); - if (trace) + if (trace(1)) htrc("done, h=%d irc=%d\n", h, irc); } // endif !UseTemp @@ -1083,7 +1083,7 @@ bool DOSFAM::OpenTempFile(PGLOBAL g) strcat(PlugRemoveType(tempname, tempname), ".t"); if (!(T_Stream = PlugOpenFile(g, tempname, "wb"))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); rc = true; @@ -1112,7 +1112,7 @@ bool DOSFAM::MoveIntermediateLines(PGLOBAL g, bool *b) req = (size_t)MY_MIN(n, Dbflen); len = fread(DelBuf, 1, req, Stream); - if (trace) + if (trace(1)) htrc("after read req=%d len=%d\n", req, len); if (len != req) { @@ -1131,13 +1131,13 @@ bool DOSFAM::MoveIntermediateLines(PGLOBAL g, bool *b) return true; } // endif - if (trace) + if (trace(1)) htrc("after write pos=%d\n", ftell(Stream)); Tpos += (int)req; Spos += (int)req; - if (trace) + if (trace(1)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); *b = true; @@ -1217,7 +1217,7 @@ void DOSFAM::CloseTableFile(PGLOBAL g, bool abort) } else { rc = PlugCloseFile(g, To_Fb); - if (trace) + if (trace(1)) htrc("DOS Close: closing %s rc=%d\n", To_File, rc); } // endif UseTemp @@ -1351,7 +1351,7 @@ int BLKFAM::GetPos(void) /***********************************************************************/ int BLKFAM::GetNextPos(void) { - return Fpos + NxtLine - CurLine; + return (int)(Fpos + NxtLine - CurLine); } // end of GetNextPos /***********************************************************************/ @@ -1396,7 +1396,8 @@ int BLKFAM::SkipRecord(PGLOBAL, bool header) /***********************************************************************/ int BLKFAM::ReadBuffer(PGLOBAL g) { - int i, n, rc = RC_OK; + int i, rc = RC_OK; + size_t n; /*********************************************************************/ /* Sequential reading when Placed is not true. */ @@ -1452,13 +1453,13 @@ int BLKFAM::ReadBuffer(PGLOBAL g) // Calculate the length of block to read BlkLen = BlkPos[CurBlk + 1] - BlkPos[CurBlk]; - if (trace) + if (trace(1)) htrc("File position is now %d\n", ftell(Stream)); // Read the entire next block n = fread(To_Buf, 1, (size_t)BlkLen, Stream); - if (n == BlkLen) { + if ((size_t) n == (size_t) BlkLen) { // ReadBlks++; num_read++; Rbuf = (CurBlk == Block - 1) ? Last : Nrec; @@ -1486,7 +1487,7 @@ int BLKFAM::ReadBuffer(PGLOBAL g) sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(errno)); #endif - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return RC_FX; @@ -1497,7 +1498,7 @@ int BLKFAM::ReadBuffer(PGLOBAL g) fin: // Store the current record file position for Delete and Update - Fpos = BlkPos[CurBlk] + CurLine - To_Buf; + Fpos = (int)(BlkPos[CurBlk] + CurLine - To_Buf); return rc; } // end of ReadBuffer @@ -1524,7 +1525,7 @@ int BLKFAM::WriteBuffer(PGLOBAL g) // Now start the writing process. NxtLine = CurLine + strlen(CurLine); - BlkLen = NxtLine - To_Buf; + BlkLen = (int)(NxtLine - To_Buf); if (fwrite(To_Buf, 1, BlkLen, Stream) != (size_t)BlkLen) { sprintf(g->Message, MSG(FWRITE_ERROR), strerror(errno)); @@ -1636,7 +1637,7 @@ void BLKFAM::CloseTableFile(PGLOBAL g, bool abort) rc = PlugCloseFile(g, To_Fb); - if (trace) + if (trace(1)) htrc("BLK CloseTableFile: closing %s mode=%d wrc=%d rc=%d\n", To_File, Tdbp->GetMode(), wrc, rc); diff --git a/storage/connect/filamvct.cpp b/storage/connect/filamvct.cpp index 871613cb4b4..244acfdc5c8 100755 --- a/storage/connect/filamvct.cpp +++ b/storage/connect/filamvct.cpp @@ -336,7 +336,7 @@ int VCTFAM::Cardinality(PGLOBAL g) else sprintf(g->Message, MSG(NOT_FIXED_LEN), To_File, len, clen); - if (trace) + if (trace(1)) htrc(" Computed max_K=%d Filen=%d Clen=%d\n", card, len, clen); } else @@ -469,14 +469,14 @@ bool VCTFAM::OpenTableFile(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); if (!(Stream = PlugOpenFile(g, filename, opmode))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (mode == MODE_READ && errno == ENOENT) ? PushWarning(g, Tdbp) : true; } // endif Stream - if (trace) + if (trace(1)) htrc("File %s is open in mode %s\n", filename, opmode); To_Fb = dbuserp->Openlist; // Keep track of File block @@ -581,7 +581,7 @@ bool VCTFAM::InitInsert(PGLOBAL g) cp->ReadBlock(g); } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); rc = true; } catch (const char *msg) { @@ -652,7 +652,7 @@ int VCTFAM::ReadBuffer(PGLOBAL g) OldBlk = CurBlk; // Last block actually read } // endif oldblk - if (trace) + if (trace(1)) htrc(" Read: CurNum=%d CurBlk=%d rc=%d\n", CurNum, CurBlk, RC_OK); return rc; @@ -663,7 +663,7 @@ int VCTFAM::ReadBuffer(PGLOBAL g) /***********************************************************************/ int VCTFAM::WriteBuffer(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("VCT WriteBuffer: R%d Mode=%d CurNum=%d CurBlk=%d\n", Tdbp->GetTdb_No(), Tdbp->GetMode(), CurNum, CurBlk); @@ -756,7 +756,7 @@ int VCTFAM::DeleteRecords(PGLOBAL g, int irc) { bool eof = false; - if (trace) + if (trace(1)) htrc("VCT DeleteDB: rc=%d UseTemp=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, Fpos, Tpos, Spos); @@ -766,7 +766,7 @@ int VCTFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = (Block - 1) * Nrec + Last; - if (trace) + if (trace(1)) htrc("Fpos placed at file end=%d\n", Fpos); eof = UseTemp && !MaxBlk; @@ -807,7 +807,7 @@ int VCTFAM::DeleteRecords(PGLOBAL g, int irc) #endif Spos++; // New start position is on next line - if (trace) + if (trace(1)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else { @@ -856,7 +856,7 @@ int VCTFAM::DeleteRecords(PGLOBAL g, int irc) close(h); - if (trace) + if (trace(1)) htrc("done, h=%d irc=%d\n", h, irc); } else @@ -899,7 +899,7 @@ bool VCTFAM::OpenTempFile(PGLOBAL g) opmode = "wb"; if (!(T_Stream = PlugOpenFile(g, tempname, opmode))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); rc = true; @@ -947,7 +947,7 @@ bool VCTFAM::MoveIntermediateLines(PGLOBAL g, bool *b) len = fread(To_Buf, Clens[i], req, Stream); - if (trace) + if (trace(1)) htrc("after read req=%d len=%d\n", req, len); if (len != req) { @@ -976,7 +976,7 @@ bool VCTFAM::MoveIntermediateLines(PGLOBAL g, bool *b) } // endif UseTemp - if (trace) + if (trace(1)) htrc("after write pos=%d\n", ftell(Stream)); } // endfor i @@ -1007,7 +1007,7 @@ bool VCTFAM::MoveIntermediateLines(PGLOBAL g, bool *b) } // endif UseTemp - if (trace) + if (trace(1)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); } // endfor n @@ -1144,7 +1144,7 @@ void VCTFAM::CloseTableFile(PGLOBAL g, bool abort) if (!(UseTemp && T_Stream)) rc = PlugCloseFile(g, To_Fb); - if (trace) + if (trace(1)) htrc("VCT CloseTableFile: closing %s wrc=%d rc=%d\n", To_File, wrc, rc); @@ -1217,7 +1217,7 @@ bool VCTFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) else // Blocked vector format len = Nrec * (colp->Deplac + Lrecl * CurBlk); - if (trace) + if (trace(1)) htrc("len=%d Nrec=%d Deplac=%d Lrecl=%d CurBlk=%d maxblk=%d\n", len, Nrec, colp->Deplac, Lrecl, CurBlk, MaxBlk); @@ -1236,13 +1236,13 @@ bool VCTFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(errno)); - if (trace) + if (trace(1)) htrc(" Read error: %s\n", g->Message); return true; } // endif - if (trace) + if (trace(1)) num_read++; return false; @@ -1268,7 +1268,7 @@ bool VCTFAM::WriteBlock(PGLOBAL g, PVCTCOL colp) else // Old VCT format len = Nrec * (colp->Deplac + Lrecl * colp->ColBlk); - if (trace) + if (trace(1)) htrc("modif=%d len=%d Nrec=%d Deplac=%d Lrecl=%d colblk=%d\n", Modif, len, Nrec, colp->Deplac, Lrecl, colp->ColBlk); @@ -1287,7 +1287,7 @@ bool VCTFAM::WriteBlock(PGLOBAL g, PVCTCOL colp) sprintf(g->Message, MSG(WRITE_STRERROR), (UseTemp) ? To_Fbt->Fname : To_File, strerror(errno)); - if (trace) + if (trace(1)) htrc("Write error: %s\n", strerror(errno)); return true; @@ -1358,7 +1358,7 @@ bool VCMFAM::OpenTableFile(PGLOBAL g) && fp->Count && fp->Mode == mode) break; - if (trace) + if (trace(1)) htrc("Mapping VCM file, fp=%p cnt=%d\n", fp, fp->Count); } else @@ -1416,7 +1416,7 @@ bool VCMFAM::OpenTableFile(PGLOBAL g) sprintf(g->Message, MSG(OPEN_MODE_ERROR), "map", (int) rc, filename); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (mode == MODE_READ && rc == ENOENT) @@ -1467,7 +1467,7 @@ bool VCMFAM::OpenTableFile(PGLOBAL g) To_Fb = fp; // Useful when closing - if (trace) + if (trace(1)) htrc("fp=%p count=%d MapView=%p len=%d Top=%p\n", fp, fp->Count, Memory, len); @@ -1551,7 +1551,7 @@ bool VCMFAM::InitInsert(PGLOBAL g) cp->ReadBlock(g); } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); rc = true; } catch (const char *msg) { @@ -1567,7 +1567,7 @@ bool VCMFAM::InitInsert(PGLOBAL g) /***********************************************************************/ int VCMFAM::WriteBuffer(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("VCM WriteBuffer: R%d Mode=%d CurNum=%d CurBlk=%d\n", Tdbp->GetTdb_No(), Tdbp->GetMode(), CurNum, CurBlk); @@ -1608,7 +1608,7 @@ int VCMFAM::WriteBuffer(PGLOBAL g) /***********************************************************************/ int VCMFAM::DeleteRecords(PGLOBAL g, int irc) { - if (trace) + if (trace(1)) htrc("VCM DeleteDB: irc=%d tobuf=%p Tpos=%p Spos=%p\n", irc, To_Buf, Tpos, Spos); @@ -1618,7 +1618,7 @@ int VCMFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = (Block - 1) * Nrec + Last; - if (trace) + if (trace(1)) htrc("Fpos placed at file top=%p\n", Fpos); } else // Fpos is the Deleted line position @@ -1636,7 +1636,7 @@ int VCMFAM::DeleteRecords(PGLOBAL g, int irc) if (irc == RC_OK) { Spos = Fpos + 1; // New start position - if (trace) + if (trace(1)) htrc("after: Tpos=%p Spos=%p\n", Tpos, Spos); } else { @@ -1680,7 +1680,7 @@ int VCMFAM::DeleteRecords(PGLOBAL g, int irc) return RC_FX; } // endif - if (trace) + if (trace(1)) htrc("done, Tpos=%p newsize=%d drc=%d\n", Tpos, n, drc); if (!SetEndOfFile(fp->Handle)) { @@ -1755,7 +1755,7 @@ bool VCMFAM::MoveIntermediateLines(PGLOBAL, bool *) Tpos += n; } // endif MaxBlk - if (trace) + if (trace(1)) htrc("move %d bytes\n", n); } // endif n @@ -1812,14 +1812,14 @@ bool VCMFAM::ReadBlock(PGLOBAL, PVCTCOL colp) /*********************************************************************/ mempos = Memcol[i] + n * CurBlk; - if (trace) + if (trace(1)) htrc("mempos=%p i=%d Nrec=%d Clen=%d CurBlk=%d\n", mempos, i, Nrec, colp->Clen, CurBlk); if (colp->GetStatus(BUF_MAPPED)) colp->Blk->SetValPointer(mempos); - if (trace) + if (trace(1)) num_read++; return false; @@ -1843,7 +1843,7 @@ bool VCMFAM::WriteBlock(PGLOBAL, PVCTCOL colp __attribute__((unused))) /*********************************************************************/ mempos = Memcol[i] + n * CurBlk; - if (trace) + if (trace(1)) htrc("modif=%d mempos=%p i=%d Nrec=%d Clen=%d colblk=%d\n", Modif, mempos, i, Nrec, colp->Clen, colp->ColBlk); @@ -2008,14 +2008,14 @@ bool VECFAM::OpenColumnFile(PGLOBAL g, PCSZ opmode, int i) sprintf(filename, Colfn, i+1); if (!(Streams[i] = PlugOpenFile(g, filename, opmode))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (Tdbp->GetMode() == MODE_READ && errno == ENOENT) ? PushWarning(g, Tdbp) : true; } // endif Streams - if (trace) + if (trace(1)) htrc("File %s is open in mode %s\n", filename, opmode); To_Fbs[i] = dup->Openlist; // Keep track of File blocks @@ -2163,7 +2163,7 @@ void VECFAM::ResetBuffer(PGLOBAL g) /***********************************************************************/ int VECFAM::WriteBuffer(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("VCT WriteBuffer: R%d Mode=%d CurNum=%d CurBlk=%d\n", Tdbp->GetTdb_No(), Tdbp->GetMode(), CurNum, CurBlk); @@ -2205,7 +2205,7 @@ int VECFAM::WriteBuffer(PGLOBAL g) /***********************************************************************/ int VECFAM::DeleteRecords(PGLOBAL g, int irc) { - if (trace) + if (trace(1)) htrc("VEC DeleteDB: rc=%d UseTemp=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, Fpos, Tpos, Spos); @@ -2215,7 +2215,7 @@ int VECFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = Cardinality(g); - if (trace) + if (trace(1)) htrc("Fpos placed at file end=%d\n", Fpos); } else // Fpos is the Deleted line position @@ -2251,7 +2251,7 @@ int VECFAM::DeleteRecords(PGLOBAL g, int irc) #endif Spos++; // New start position is on next line - if (trace) + if (trace(1)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else { @@ -2294,7 +2294,7 @@ int VECFAM::DeleteRecords(PGLOBAL g, int irc) close(h); - if (trace) + if (trace(1)) htrc("done, h=%d irc=%d\n", h, irc); } // endfor i @@ -2332,7 +2332,7 @@ bool VECFAM::OpenTempFile(PGLOBAL g) sprintf(tempname, Tempat, i+1); if (!(T_Streams[i] = PlugOpenFile(g, tempname, "wb"))) { - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return true; @@ -2391,7 +2391,7 @@ bool VECFAM::MoveIntermediateLines(PGLOBAL g, bool *) len = fread(To_Buf, Clens[i], req, Streams[i]); - if (trace) + if (trace(1)) htrc("after read req=%d len=%d\n", req, len); if (len != req) { @@ -2410,7 +2410,7 @@ bool VECFAM::MoveIntermediateLines(PGLOBAL g, bool *) return true; } // endif - if (trace) + if (trace(1)) htrc("after write pos=%d\n", ftell(Streams[i])); } // endfor i @@ -2418,7 +2418,7 @@ bool VECFAM::MoveIntermediateLines(PGLOBAL g, bool *) Tpos += (int)req; Spos += (int)req; - if (trace) + if (trace(1)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); b = true; @@ -2541,7 +2541,7 @@ void VECFAM::CloseTableFile(PGLOBAL g, bool abort) To_Fbs[i] = NULL; } // endif Streams - if (trace) + if (trace(1)) htrc("VCT CloseTableFile: closing %s wrc=%d rc=%d\n", To_File, wrc, rc); } // end of CloseTableFile @@ -2560,7 +2560,7 @@ bool VECFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) len = Nrec * colp->Clen * CurBlk; i = colp->Index - 1; - if (trace) + if (trace(1)) htrc("len=%d i=%d Nrec=%d Deplac=%d Lrecl=%d CurBlk=%d\n", len, i, Nrec, colp->Deplac, Lrecl, CurBlk); @@ -2586,13 +2586,13 @@ bool VECFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) sprintf(g->Message, MSG(READ_ERROR), fn, strerror(errno)); - if (trace) + if (trace(1)) htrc(" Read error: %s\n", g->Message); return true; } // endif - if (trace) + if (trace(1)) num_read++; return false; @@ -2615,7 +2615,7 @@ bool VECFAM::WriteBlock(PGLOBAL g, PVCTCOL colp) len = Nrec * colp->Clen * colp->ColBlk; i = colp->Index - 1; - if (trace) + if (trace(1)) htrc("modif=%d len=%d i=%d Nrec=%d Deplac=%d Lrecl=%d colblk=%d\n", Modif, len, i, Nrec, colp->Deplac, Lrecl, colp->ColBlk); @@ -2638,7 +2638,7 @@ bool VECFAM::WriteBlock(PGLOBAL g, PVCTCOL colp) sprintf(fn, (UseTemp) ? Tempat : Colfn, colp->Index); sprintf(g->Message, MSG(WRITE_STRERROR), fn, strerror(errno)); - if (trace) + if (trace(1)) htrc("Write error: %s\n", strerror(errno)); return true; @@ -2782,7 +2782,7 @@ bool VMPFAM::MapColumnFile(PGLOBAL g, MODE mode, int i) && fp->Count && fp->Mode == mode) break; - if (trace) + if (trace(1)) htrc("Mapping file, fp=%p\n", fp); } else @@ -2807,7 +2807,7 @@ bool VMPFAM::MapColumnFile(PGLOBAL g, MODE mode, int i) if (!(*g->Message)) sprintf(g->Message, MSG(OPEN_MODE_ERROR), "map", (int) rc, filename); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return (mode == MODE_READ && rc == ENOENT) @@ -2858,7 +2858,7 @@ bool VMPFAM::MapColumnFile(PGLOBAL g, MODE mode, int i) To_Fbs[i] = fp; // Useful when closing - if (trace) + if (trace(1)) htrc("fp=%p count=%d MapView=%p len=%d\n", fp, fp->Count, Memcol[i], len); @@ -2903,7 +2903,7 @@ int VMPFAM::DeleteRecords(PGLOBAL g, int irc) int i; int m, n; - if (trace) + if (trace(1)) htrc("VMP DeleteDB: irc=%d tobuf=%p Tpos=%p Spos=%p\n", irc, To_Buf, Tpos, Spos); @@ -2913,7 +2913,7 @@ int VMPFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = (Block - 1) * Nrec + Last; - if (trace) + if (trace(1)) htrc("Fpos placed at file top=%p\n", Fpos); } else // Fpos is the Deleted line position @@ -2936,7 +2936,7 @@ int VMPFAM::DeleteRecords(PGLOBAL g, int irc) Tpos += n; - if (trace) + if (trace(1)) htrc("move %d bytes\n", n); } // endif n @@ -2944,7 +2944,7 @@ int VMPFAM::DeleteRecords(PGLOBAL g, int irc) if (irc == RC_OK) { Spos = Fpos + 1; // New start position - if (trace) + if (trace(1)) htrc("after: Tpos=%p Spos=%p\n", Tpos, Spos); } else { @@ -2981,7 +2981,7 @@ int VMPFAM::DeleteRecords(PGLOBAL g, int irc) return RC_FX; } // endif - if (trace) + if (trace(1)) htrc("done, Tpos=%p newsize=%d drc=%d\n", Tpos, n, drc); if (!SetEndOfFile(fp->Handle)) { @@ -3088,7 +3088,7 @@ bool BGVFAM::BigRead(PGLOBAL g, HANDLE h, void *inbuf, int req) DWORD nbr, drc, len = (DWORD)req; bool brc = ReadFile(h, inbuf, len, &nbr, NULL); - if (trace) + if (trace(1)) htrc("after read req=%d brc=%d nbr=%d\n", req, brc, nbr); if (!brc || nbr != len) { @@ -3105,7 +3105,7 @@ bool BGVFAM::BigRead(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(READ_ERROR), To_File, buf); - if (trace) + if (trace(1)) htrc("BIGREAD: %s\n", g->Message); rc = true; @@ -3119,7 +3119,7 @@ bool BGVFAM::BigRead(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(READ_ERROR), fn, strerror(errno)); - if (trace) + if (trace(1)) htrc("BIGREAD: nbr=%d len=%d errno=%d %s\n", nbr, len, errno, g->Message); @@ -3141,7 +3141,7 @@ bool BGVFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) DWORD nbw, drc, len = (DWORD)req; bool brc = WriteFile(h, inbuf, len, &nbw, NULL); - if (trace) + if (trace(1)) htrc("after write req=%d brc=%d nbw=%d\n", req, brc, nbw); if (!brc || nbw != len) { @@ -3159,7 +3159,7 @@ bool BGVFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(WRITE_STRERROR), fn, buf); - if (trace) + if (trace(1)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", nbw, len, drc, g->Message); @@ -3174,7 +3174,7 @@ bool BGVFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) sprintf(g->Message, MSG(WRITE_STRERROR), fn, strerror(errno)); - if (trace) + if (trace(1)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", nbw, len, errno, g->Message); @@ -3224,7 +3224,7 @@ int BGVFAM::GetBlockInfo(PGLOBAL g) if (h == INVALID_HANDLE_VALUE || !_filelength(h)) { #endif // !__WIN__ // Consider this is a void table - if (trace) + if (trace(1)) htrc("Void table h=%d\n", h); Last = Nrec; @@ -3248,7 +3248,7 @@ int BGVFAM::GetBlockInfo(PGLOBAL g) Block = (vh.NumRec > 0) ? (vh.NumRec + Nrec - 1) / Nrec : 0; Last = (vh.NumRec + Nrec - 1) % Nrec + 1; - if (trace) + if (trace(1)) htrc("Block=%d Last=%d\n", Block, Last); } // endif's @@ -3348,7 +3348,7 @@ bool BGVFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn) of.QuadPart = (BIGINT)n + (BIGINT)MaxBlk * (BIGINT)Blksize - (BIGINT)1; - if (trace) + if (trace(1)) htrc("MEF: of=%lld n=%d maxblk=%d blksize=%d\n", of.QuadPart, n, MaxBlk, Blksize); @@ -3394,7 +3394,7 @@ bool BGVFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn) pos = (BIGINT)n + (BIGINT)MaxBlk * (BIGINT)Blksize - (BIGINT)1; - if (trace) + if (trace(1)) htrc("MEF: pos=%lld n=%d maxblk=%d blksize=%d\n", pos, n, MaxBlk, Blksize); @@ -3439,7 +3439,7 @@ bool BGVFAM::OpenTableFile(PGLOBAL g) PlugSetPath(filename, To_File, Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("OpenTableFile: filename=%s mode=%d Last=%d\n", filename, mode, Last); @@ -3516,7 +3516,7 @@ bool BGVFAM::OpenTableFile(PGLOBAL g) strcat(g->Message, filename); } // endif Hfile - if (trace) + if (trace(1)) htrc(" rc=%d access=%p share=%p creation=%d handle=%p fn=%s\n", rc, access, share, creation, Hfile, filename); @@ -3605,7 +3605,7 @@ bool BGVFAM::OpenTableFile(PGLOBAL g) strcat(g->Message, strerror(errno)); } // endif Hfile - if (trace) + if (trace(1)) htrc(" rc=%d oflag=%p mode=%p handle=%d fn=%s\n", rc, oflag, mode, Hfile, filename); #endif // UNIX @@ -3626,7 +3626,7 @@ bool BGVFAM::OpenTableFile(PGLOBAL g) To_Fb->Mode = mode; To_Fb->Handle = Hfile; - if (trace) + if (trace(1)) htrc("File %s is open in mode %d\n", filename, mode); if (del) @@ -3729,7 +3729,7 @@ bool BGVFAM::AllocateBuffer(PGLOBAL g) /***********************************************************************/ int BGVFAM::WriteBuffer(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("BGV WriteDB: R%d Mode=%d CurNum=%d CurBlk=%d\n", Tdbp->GetTdb_No(), Tdbp->GetMode(), CurNum, CurBlk); @@ -3829,7 +3829,7 @@ int BGVFAM::DeleteRecords(PGLOBAL g, int irc) /* 2 - directly move the not deleted lines inside the original */ /* file, and at the end erase all trailing records. */ /*********************************************************************/ - if (trace) + if (trace(1)) htrc("BGV DeleteDB: irc=%d UseTemp=%d Fpos=%d Tpos=%d Spos=%d\n", irc, UseTemp, Fpos, Tpos, Spos); @@ -3839,7 +3839,7 @@ int BGVFAM::DeleteRecords(PGLOBAL g, int irc) /*******************************************************************/ Fpos = (Block - 1) * Nrec + Last; - if (trace) + if (trace(1)) htrc("Fpos placed at file end=%d\n", Fpos); eof = UseTemp && !MaxBlk; @@ -3878,7 +3878,7 @@ int BGVFAM::DeleteRecords(PGLOBAL g, int irc) #endif Spos++; // New start position is on next line - if (trace) + if (trace(1)) htrc("after: Tpos=%d Spos=%d\n", Tpos, Spos); } else { @@ -4065,7 +4065,7 @@ bool BGVFAM::MoveIntermediateLines(PGLOBAL g, bool *b) } // endif Usetemp... - if (trace) + if (trace(1)) htrc("loop: Tpos=%d Spos=%d\n", Tpos, Spos); } // endfor n @@ -4201,7 +4201,7 @@ void BGVFAM::CloseTableFile(PGLOBAL g, bool abort) if (Hfile != INVALID_HANDLE_VALUE) rc = PlugCloseFile(g, To_Fb); - if (trace) + if (trace(1)) htrc("BGV CloseTableFile: closing %s wrc=%d rc=%d\n", To_File, wrc, rc); @@ -4247,7 +4247,7 @@ bool BGVFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) pos = (BIGINT)Nrec * ((BIGINT)colp->Deplac + (BIGINT)Lrecl * (BIGINT)CurBlk); - if (trace) + if (trace(1)) htrc("RB: offset=%lld Nrec=%d Deplac=%d Lrecl=%d CurBlk=%d MaxBlk=%d\n", pos, Nrec, colp->Deplac, Lrecl, CurBlk, MaxBlk); @@ -4257,7 +4257,7 @@ bool BGVFAM::ReadBlock(PGLOBAL g, PVCTCOL colp) if (BigRead(g, Hfile, colp->Blk->GetValPointer(), colp->Clen * Nrec)) return true; - if (trace) + if (trace(1)) num_read++; return false; @@ -4284,7 +4284,7 @@ bool BGVFAM::WriteBlock(PGLOBAL g, PVCTCOL colp) pos = (BIGINT)Nrec * ((BIGINT)colp->Deplac + (BIGINT)Lrecl * (BIGINT)colp->ColBlk); - if (trace) + if (trace(1)) htrc("WB: offset=%lld Nrec=%d Deplac=%d Lrecl=%d ColBlk=%d\n", pos, Nrec, colp->Deplac, Lrecl, colp->ColBlk); diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp index dfd9343af76..e76dc496246 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamzip.cpp @@ -699,7 +699,7 @@ bool UNZIPUTL::openEntry(PGLOBAL g) entryopen = true; } // endif rc - if (trace) + if (trace(1)) htrc("Openning entry%s %s\n", fn, (entryopen) ? "oked" : "failed"); return !entryopen; @@ -748,10 +748,10 @@ UNZFAM::UNZFAM(PUNZFAM txfp) : MAPFAM(txfp) /***********************************************************************/ int UNZFAM::GetFileLength(PGLOBAL g) { - int len = (zutp && zutp->entryopen) ? Top - Memory + int len = (zutp && zutp->entryopen) ? (int)(Top - Memory) : TXTFAM::GetFileLength(g) * 3; - if (trace) + if (trace(1)) htrc("Zipped file length=%d\n", len); return len; @@ -1088,7 +1088,7 @@ int ZIPFAM::WriteBuffer(PGLOBAL g) // Prepare to write the new line strcat(strcpy(To_Buf, Tdbp->GetLine()), (Bin) ? CrLf : "\n"); - len = strchr(To_Buf, '\n') - To_Buf + 1; + len = (int)(strchr(To_Buf, '\n') - To_Buf + 1); return zutp->writeEntry(g, To_Buf, len); } // end of WriteBuffer diff --git a/storage/connect/filter.cpp b/storage/connect/filter.cpp index 079128f9aa6..469cd90d1d7 100644 --- a/storage/connect/filter.cpp +++ b/storage/connect/filter.cpp @@ -87,7 +87,7 @@ BYTE OpBmp(PGLOBAL g, OPVAL opc) case OP_EXIST: bt = 0x00; break; default: sprintf(g->Message, MSG(BAD_FILTER_OP), opc); - throw (int)TYPE_ARRAY; + throw (int)TYPE_FILTER; } // endswitch opc return bt; @@ -301,7 +301,7 @@ PFIL FILTER::Link(PGLOBAL g, PFIL fil2) { PFIL fil1; - if (trace) + if (trace(1)) htrc("Linking filter %p with op=%d... to filter %p with op=%d\n", this, Opc, fil2, (fil2) ? fil2->Opc : 0); @@ -355,7 +355,7 @@ int FILTER::CheckColumn(PGLOBAL g, PSQL sqlp, PXOB &p, int &ag) char errmsg[MAX_STR] = ""; int agg, k, n = 0; - if (trace) + if (trace(1)) htrc("FILTER CheckColumn: sqlp=%p ag=%d\n", sqlp, ag); switch (Opc) { @@ -540,7 +540,7 @@ PFIL FILTER::SortJoin(PGLOBAL g) bool FILTER::FindJoinFilter(POPJOIN opj, PFIL fprec, bool teq, bool tek, bool tk2, bool tc2, bool tix, bool thx) { - if (trace) + if (trace(1)) htrc("FindJoinFilter: opj=%p fprec=%p tests=(%d,%d,%d,%d)\n", opj, fprec, teq, tek, tk2, tc2); @@ -867,7 +867,7 @@ bool FILTER::CheckLocal(PTDB tdbp) { bool local = TRUE; - if (trace) { + if (trace(1)) { if (tdbp) htrc("CheckLocal: filp=%p R%d\n", this, tdbp->GetTdb_No()); else @@ -877,7 +877,7 @@ bool FILTER::CheckLocal(PTDB tdbp) for (int i = 0; local && i < 2; i++) local = Arg(i)->CheckLocal(tdbp); - if (trace) + if (trace(1)) htrc("FCL: returning %d\n", local); return (local); @@ -983,7 +983,7 @@ bool FILTER::Convert(PGLOBAL g, bool having) { int i, comtype = TYPE_ERROR; - if (trace) + if (trace(1)) htrc("converting(?) %s %p opc=%d\n", (having) ? "having" : "filter", this, Opc); @@ -1014,7 +1014,7 @@ bool FILTER::Convert(PGLOBAL g, bool having) return TRUE; } // endswitch - if (trace) + if (trace(1)) htrc("Filter(%d): Arg type=%d\n", i, GetArgType(i)); // Set default values @@ -1059,7 +1059,7 @@ bool FILTER::Convert(PGLOBAL g, bool having) return TRUE; } // endif - if (trace) + if (trace(1)) htrc(" comtype=%d, B_T(%d)=%d Val(%d)=%p\n", comtype, i, Test[i].B_T, i, Val(i)); @@ -1067,7 +1067,7 @@ bool FILTER::Convert(PGLOBAL g, bool having) // Set or allocate the filter argument values and buffers for (i = 0; i < 2; i++) { - if (trace) + if (trace(1)) htrc(" conv type %d ? i=%d B_T=%d comtype=%d\n", GetArgType(i), i, Test[i].B_T, comtype); @@ -1144,7 +1144,7 @@ bool FILTER::Convert(PGLOBAL g, bool having) TEST: // Test for possible Eval optimization - if (trace) + if (trace(1)) htrc("Filp %p op=%d argtypes=(%d,%d)\n", this, Opc, GetArgType(0), GetArgType(1)); @@ -1233,7 +1233,7 @@ bool FILTER::Eval(PGLOBAL g) else if (Test[i].Conv) Val(i)->SetValue_pval(Arg(i)->GetValue()); - if (trace) + if (trace(1)) htrc(" Filter: op=%d type=%d %d B_T=%d %d val=%p %p\n", Opc, GetArgType(0), GetArgType(1), Test[0].B_T, Test[1].B_T, Val(0), Val(1)); @@ -1273,7 +1273,7 @@ bool FILTER::Eval(PGLOBAL g) goto FilterError; } // endswitch Type - if (trace) { + if (trace(1)) { htrc(" IN filtering: ap=%p\n", ap); if (ap) @@ -1363,7 +1363,7 @@ bool FILTER::Eval(PGLOBAL g) goto FilterError; } // endswitch Opc - if (trace) + if (trace(1)) htrc("Eval: filter %p Opc=%d result=%d\n", this, Opc, Value->GetIntValue()); @@ -1775,7 +1775,7 @@ PFIL PrepareFilter(PGLOBAL g, PFIL fp, bool having) { PFIL filp = NULL; - if (trace) + if (trace(1)) htrc("PrepareFilter: fp=%p having=%d\n", fp, having); while (fp) { @@ -1790,14 +1790,14 @@ PFIL PrepareFilter(PGLOBAL g, PFIL fp, bool having) break; // Remove eventual ending separator(s) // if (fp->Convert(g, having)) -// (int)throw TYPE_ARRAY; +// throw (int)TYPE_FILTER; filp = fp; fp = fp->Next; filp->Next = NULL; } // endwhile - if (trace) + if (trace(1)) htrc(" returning filp=%p\n", filp); return filp; @@ -1823,7 +1823,7 @@ DllExport bool ApplyFilter(PGLOBAL g, PFIL filp) if (filp->Eval(g)) throw (int)TYPE_FILTER; - if (trace > 1) + if (trace(2)) htrc("PlugFilter filp=%p result=%d\n", filp, filp->GetResult()); diff --git a/storage/connect/fmdlex.c b/storage/connect/fmdlex.c index ef4f7bfc65a..729b1b883c1 100644 --- a/storage/connect/fmdlex.c +++ b/storage/connect/fmdlex.c @@ -283,7 +283,7 @@ static void yy_fatal_error YY_PROTO(( const char msg[] )); */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ - yyleng = yy_cp - yy_bp; \ + yyleng = (int)(yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; @@ -417,10 +417,10 @@ static PDTP pp; static void MakeParm(int n); static void MakeMMDD(int n); static void MakeAMPM(int n); -static void MakeIn(char *); -static void MakeOut(char *); -static void Quotin(char *); -static void Quotout(char *); +static void MakeIn(const char *); +static void MakeOut(const char *); +static void Quotin(const char *); +static void Quotout(const char *); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -695,7 +695,7 @@ case YY_STATE_EOF(dqt): case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1; + int yy_amount_of_matched_text = (int)(yy_cp - yytext_ptr - 1); /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; @@ -862,7 +862,7 @@ static int yy_get_next_buffer() /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = yy_c_buf_p - yytext_ptr; + number_to_move = (int)(yy_c_buf_p - yytext_ptr); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -888,7 +888,7 @@ static int yy_get_next_buffer() /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; - int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf; + int yy_c_buf_p_offset = (int)(yy_c_buf_p - b->yy_ch_buf); b->yy_buf_size *= 2; b->yy_ch_buf = (char *) @@ -1492,7 +1492,7 @@ void MakeAMPM(int n) } /* end of MakeAMPM */ -void MakeIn(char *text) +void MakeIn(const char *text) { if (!pp->InFmt) return; @@ -1500,14 +1500,14 @@ void MakeIn(char *text) strncat(pp->InFmt, text, (pp->Outsize - 1) - strlen(pp->InFmt)); } /* end of MakeIn */ -void MakeOut(char *text) +void MakeOut(const char *text) { if (!pp->OutFmt) return; strncat(pp->OutFmt, text, (pp->Outsize - 1) - strlen(pp->OutFmt)); } /* end of MakeOut */ -void Quotin(char *text) +void Quotin(const char *text) { if (!pp->InFmt) return; @@ -1516,7 +1516,7 @@ void Quotin(char *text) pp->InFmt[strlen(pp->InFmt)-1] = '\0'; } /* end of Quotin */ -void Quotout(char *text) +void Quotout(const char *text) { if (!pp->OutFmt) return; diff --git a/storage/connect/global.h b/storage/connect/global.h index e4b00786efa..472d09408c3 100644 --- a/storage/connect/global.h +++ b/storage/connect/global.h @@ -52,7 +52,7 @@ /***********************************************************************/ /* Define access to the thread based trace value. */ /***********************************************************************/ -#define trace GetTraceValue() +#define trace(T) (bool)(GetTraceValue() & (uint)T) /***********************************************************************/ /* Miscellaneous Constants */ @@ -220,14 +220,19 @@ DllExport BOOL PlugIsAbsolutePath(LPCSTR path); DllExport bool AllocSarea(PGLOBAL, uint); DllExport void FreeSarea(PGLOBAL); DllExport BOOL PlugSubSet(PGLOBAL, void *, uint); -DllExport void *PlugSubAlloc(PGLOBAL, void *, size_t); DllExport char *PlugDup(PGLOBAL g, const char *str); DllExport void *MakePtr(void *, OFFSET); DllExport void htrc(char const *fmt, ...); -DllExport int GetTraceValue(void); +//DllExport int GetTraceValue(void); +DllExport uint GetTraceValue(void); #if defined(__cplusplus) } // extern "C" #endif +/***********************************************************************/ +/* Non exported routine declarations. */ +/***********************************************************************/ +void *PlugSubAlloc(PGLOBAL, void *, size_t); // Does throw + /*-------------------------- End of Global.H --------------------------*/ diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 5964b1d049f..2b3db3753d5 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -98,8 +98,8 @@ rnd_next signals that it has reached the end of its data. Calls to ha_connect::extra() are hints as to what will be occuring to the request. - Author Olivier Bertrand -*/ + Author Olivier Bertrand + */ #ifdef USE_PRAGMA_IMPLEMENTATION #pragma implementation // gcc: Class implementation @@ -174,9 +174,9 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.06.0005 October 14, 2017"; + char version[]= "Version 1.06.0007 March 11, 2018"; #if defined(__WIN__) - char compver[]= "Version 1.06.0005 " __DATE__ " " __TIME__; + char compver[]= "Version 1.06.0007 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; @@ -266,16 +266,38 @@ static char *strz(PGLOBAL g, LEX_STRING &ls) /***********************************************************************/ /* CONNECT session variables definitions. */ /***********************************************************************/ -// Tracing: 0 no, 1 yes, >1 more tracing -static MYSQL_THDVAR_INT(xtrace, - PLUGIN_VAR_RQCMDARG, "Console trace value.", - NULL, NULL, 0, 0, INT_MAX, 1); +// Tracing: 0 no, 1 yes, 2 more, 4 index... 511 all +const char *xtrace_names[] = +{ + "YES", "MORE", "INDEX", "MEMORY", "SUBALLOC", + "QUERY", "STMT", "HANDLER", "BLOCK", "MONGO", NullS +}; + +TYPELIB xtrace_typelib = +{ + array_elements(xtrace_names) - 1, "xtrace_typelib", + xtrace_names, NULL +}; + +static MYSQL_THDVAR_SET( + xtrace, // name + PLUGIN_VAR_RQCMDARG, // opt + "Trace values.", // comment + NULL, // check + NULL, // update function + 0, // def (NO) + &xtrace_typelib); // typelib // Getting exact info values static MYSQL_THDVAR_BOOL(exact_info, PLUGIN_VAR_RQCMDARG, "Getting exact info values", NULL, NULL, 0); +// Enabling cond_push +static MYSQL_THDVAR_BOOL(cond_push, PLUGIN_VAR_RQCMDARG, + "Enabling cond_push", + NULL, NULL, 1); // YES by default + /** Temporary file usage: no: Not using temporary file @@ -314,17 +336,18 @@ static MYSQL_THDVAR_UINT(work_size, static MYSQL_THDVAR_INT(conv_size, PLUGIN_VAR_RQCMDARG, // opt "Size used when converting TEXT columns.", - NULL, NULL, SZCONV, 0, 65500, 1); + NULL, NULL, SZCONV, 0, 65500, 8192); /** Type conversion: no: Unsupported types -> TYPE_ERROR yes: TEXT -> VARCHAR + force: Do it also for ODBC BINARY and BLOBs skip: skip unsupported type columns in Discovery */ const char *xconv_names[]= { - "NO", "YES", "SKIP", NullS + "NO", "YES", "FORCE", "SKIP", NullS }; TYPELIB xconv_typelib= @@ -339,7 +362,7 @@ static MYSQL_THDVAR_ENUM( "Unsupported types conversion.", // comment NULL, // check NULL, // update function - 0, // def (no) + 1, // def (yes) &xconv_typelib); // typelib // Null representation for JSON values @@ -364,12 +387,17 @@ static MYSQL_THDVAR_STR(java_wrapper, NULL, NULL, "wrappers/JdbcInterface"); #endif // JAVA_SUPPORT -#if 0 // This is apparently not acceptable for a plugin +// This is apparently not acceptable for a plugin so it is undocumented +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) // Enabling MONGO table type +#if defined(MONGO_SUPPORT) || (MYSQL_VERSION_ID > 100200) static MYSQL_THDVAR_BOOL(enable_mongo, PLUGIN_VAR_RQCMDARG, - "Enabling the MongoDB access", - NULL, NULL, MONGO_ENABLED); -#endif // 0 + "Enabling the MongoDB access", NULL, NULL, 1); +#else // !version 2,3 +static MYSQL_THDVAR_BOOL(enable_mongo, PLUGIN_VAR_RQCMDARG, + "Enabling the MongoDB access", NULL, NULL, 0); +#endif // !version 2,3 +#endif // JAVA_SUPPORT || CMGO_SUPPORT #if defined(XMSG) || defined(NEWMSG) const char *language_names[]= @@ -401,9 +429,10 @@ handlerton *connect_hton= NULL; /***********************************************************************/ /* Function to export session variable values to other source files. */ /***********************************************************************/ -extern "C" int GetTraceValue(void) - {return connect_hton ? THDVAR(current_thd, xtrace) : 0;} +uint GetTraceValue(void) + {return (uint)(connect_hton ? THDVAR(current_thd, xtrace) : 0);} bool ExactInfo(void) {return THDVAR(current_thd, exact_info);} +bool CondPushEnabled(void) {return THDVAR(current_thd, cond_push);} USETEMP UseTemp(void) {return (USETEMP)THDVAR(current_thd, use_tempfile);} int GetConvSize(void) {return THDVAR(current_thd, conv_size);} TYPCONV GetTypeConv(void) {return (TYPCONV)THDVAR(current_thd, type_conv);} @@ -419,22 +448,20 @@ void SetWorkSize(uint) push_warning(current_thd, Sql_condition::WARN_LEVEL_WARN, 0, "Work size too big, try setting a smaller value"); } // end of SetWorkSize -#if defined(XMSG) || defined(NEWMSG) -extern "C" const char *msglang(void) -{ - return language_names[THDVAR(current_thd, msg_lang)]; -} // end of msglang -#else // !XMSG && !NEWMSG #if defined(JAVA_SUPPORT) char *GetJavaWrapper(void) {return connect_hton ? THDVAR(current_thd, java_wrapper) : (char*)"wrappers/JdbcInterface";} #endif // JAVA_SUPPORT -#if defined(JAVA_SUPPORT) -//bool MongoEnabled(void) { return THDVAR(current_thd, enable_mongo); } -#endif // JAVA_SUPPORT +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) +bool MongoEnabled(void) {return THDVAR(current_thd, enable_mongo);} +#endif // JAVA_SUPPORT || CMGO_SUPPORT +#if defined(XMSG) || defined(NEWMSG) +extern "C" const char *msglang(void) + {return language_names[THDVAR(current_thd, msg_lang)];} +#else // !XMSG && !NEWMSG extern "C" const char *msglang(void) { #if defined(FRENCH) @@ -726,7 +753,7 @@ static int connect_init_func(void *p) connect_hton->tablefile_extensions= ha_connect_exts; connect_hton->discover_table_structure= connect_assisted_discovery; - if (trace) + if (trace(128)) sql_print_information("connect_init: hton=%p", p); DTVAL::SetTimeShift(); // Initialize time zone shift once for all @@ -818,7 +845,7 @@ static handler* connect_create_handler(handlerton *hton, { handler *h= new (mem_root) ha_connect(hton, table); - if (trace) + if (trace(128)) htrc("New CONNECT %p, table: %.*s\n", h, table ? table->table_name.length : 6, table ? table->table_name.str : ""); @@ -874,7 +901,7 @@ ha_connect::ha_connect(handlerton *hton, TABLE_SHARE *table_arg) /****************************************************************************/ ha_connect::~ha_connect(void) { - if (trace) + if (trace(128)) htrc("Delete CONNECT %p, table: %.*s, xp=%p count=%d\n", this, table ? table->s->table_name.length : 6, table ? table->s->table_name.str : "", @@ -1086,55 +1113,55 @@ PCSZ GetListOption(PGLOBAL g, PCSZ opname, PCSZ oplist, PCSZ def) if (!oplist) return (char*)def; - char key[16], val[256]; - char *pv, *pn, *pk= (char*)oplist; - PCSZ opval= def; - int n; + char key[16], val[256]; + char *pv, *pn, *pk = (char*)oplist; + PCSZ opval = def; + int n; while (*pk == ' ') pk++; - for (; pk; pk= pn) { - pn= strchr(pk, ','); - pv= strchr(pk, '='); + for (; pk; pk = pn) { + pn = strchr(pk, ','); + pv = strchr(pk, '='); - if (pv && (!pn || pv < pn)) { + if (pv && (!pn || pv < pn)) { n = MY_MIN(static_cast(pv - pk), sizeof(key) - 1); memcpy(key, pk, n); while (n && key[n - 1] == ' ') n--; - key[n]= 0; + key[n] = 0; - while(*(++pv) == ' ') ; + while (*(++pv) == ' '); - n= MY_MIN((pn ? pn - pv : strlen(pv)), sizeof(val) - 1); - memcpy(val, pv, n); + n = MY_MIN((pn ? pn - pv : strlen(pv)), sizeof(val) - 1); + memcpy(val, pv, n); while (n && val[n - 1] == ' ') n--; - val[n]= 0; - } else { - n= MY_MIN((pn ? pn - pk : strlen(pk)), sizeof(key) - 1); - memcpy(key, pk, n); + val[n] = 0; + } else { + n = MY_MIN((pn ? pn - pk : strlen(pk)), sizeof(key) - 1); + memcpy(key, pk, n); while (n && key[n - 1] == ' ') n--; - key[n]= 0; - val[0]= 0; - } // endif pv + key[n] = 0; + val[0] = 0; + } // endif pv - if (!stricmp(opname, key)) { - opval= PlugDup(g, val); - break; - } else if (!pn) - break; + if (!stricmp(opname, key)) { + opval = PlugDup(g, val); + break; + } else if (!pn) + break; - while (*(++pn) == ' ') ; - } // endfor pk + while (*(++pn) == ' '); + } // endfor pk return opval; } // end of GetListOption @@ -1658,7 +1685,7 @@ PIXDEF ha_connect::GetIndexInfo(TABLE_SHARE *s) s= table->s; for (int n= 0; (unsigned)n < s->keynames.count; n++) { - if (trace) + if (trace(1)) htrc("Getting created index %d info\n", n + 1); // Find the index to describe @@ -2004,7 +2031,7 @@ bool ha_connect::CheckColumnList(PGLOBAL g) } // endif } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); brc = true; } catch (const char *msg) { @@ -2061,7 +2088,7 @@ int ha_connect::MakeRecord(char *buf) PCOL colp= NULL; DBUG_ENTER("ha_connect::MakeRecord"); - if (trace > 1) + if (trace(2)) htrc("Maps: read=%08X write=%08X vcol=%08X defr=%08X defw=%08X\n", *table->read_set->bitmap, *table->write_set->bitmap, (table->vcol_set) ? *table->vcol_set->bitmap : 0, @@ -2585,14 +2612,14 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) if (!cond) return NULL; - if (trace) + if (trace(1)) htrc("Cond type=%d\n", cond->type()); if (cond->type() == COND::COND_ITEM) { PFIL fp; Item_cond *cond_item= (Item_cond *)cond; - if (trace) + if (trace(1)) htrc("Cond: Ftype=%d name=%s\n", cond_item->functype(), cond_item->func_name()); @@ -2626,7 +2653,7 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) Item_func *condf= (Item_func *)cond; Item* *args= condf->arguments(); - if (trace) + if (trace(1)) htrc("Func type=%d argnum=%d\n", condf->functype(), condf->argument_count()); @@ -2655,11 +2682,11 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) return NULL; for (i= 0; i < condf->argument_count(); i++) { - if (trace) + if (trace(1)) htrc("Argtype(%d)=%d\n", i, args[i]->type()); if (i >= 2 && !ismul) { - if (trace) + if (trace(1)) htrc("Unexpected arg for vop=%d\n", vop); continue; @@ -2689,7 +2716,7 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) break; } // endswitch type - if (trace) { + if (trace(1)) { htrc("Field index=%d\n", pField->field->field_index); htrc("Field name=%s\n", pField->field->field_name); } // endif trace @@ -2736,7 +2763,7 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) return NULL; } // endswitch type - if (trace) + if (trace(1)) htrc("Value type=%hd\n", pp->Type); // Append the value to the argument list @@ -2754,7 +2781,7 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond) filp= MakeFilter(g, colp, pop, pfirst, neg); } else { - if (trace) + if (trace(1)) htrc("Unsupported condition\n"); return NULL; @@ -2780,7 +2807,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) if (!cond) return NULL; - if (trace) + if (trace(1)) htrc("Cond type=%d\n", cond->type()); if (cond->type() == COND::COND_ITEM) { @@ -2793,7 +2820,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) else pb0= pb1= pb2= ph0= ph1= ph2= NULL; - if (trace) + if (trace(1)) htrc("Cond: Ftype=%d name=%s\n", cond_item->functype(), cond_item->func_name()); @@ -2879,7 +2906,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) filp->Bd = filp->Hv = false; - if (trace) + if (trace(1)) htrc("Func type=%d argnum=%d\n", condf->functype(), condf->argument_count()); @@ -2916,11 +2943,11 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) return NULL; for (i= 0; i < condf->argument_count(); i++) { - if (trace) + if (trace(1)) htrc("Argtype(%d)=%d\n", i, args[i]->type()); if (i >= 2 && !ismul) { - if (trace) + if (trace(1)) htrc("Unexpected arg for vop=%d\n", vop); continue; @@ -2963,7 +2990,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) } // endif's - if (trace) { + if (trace(1)) { htrc("Field index=%d\n", pField->field->field_index); htrc("Field name=%s\n", pField->field->field_name); htrc("Field type=%d\n", pField->field->type()); @@ -3001,7 +3028,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) if ((res= pval->val_str(&tmp)) == NULL) return NULL; // To be clarified - if (trace) + if (trace(1)) htrc("Value=%.*s\n", res->length(), res->ptr()); // IN and BETWEEN clauses should be col VOP list @@ -3142,7 +3169,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) filp->Bd = true; } else { - if (trace) + if (trace(1)) htrc("Unsupported condition\n"); return NULL; @@ -3175,7 +3202,7 @@ const COND *ha_connect::cond_push(const COND *cond) { DBUG_ENTER("ha_connect::cond_push"); - if (tdbp) { + if (tdbp && CondPushEnabled()) { PGLOBAL& g= xp->g; AMT tty= tdbp->GetAmType(); bool x= (tty == TYPE_AM_MYX || tty == TYPE_AM_XDBC); @@ -3209,7 +3236,7 @@ const COND *ha_connect::cond_push(const COND *cond) if (filp->Having && strlen(filp->Having) > 255) goto fin; // Memory collapse - if (trace) + if (trace(1)) htrc("cond_push: %s\n", filp->Body); tdbp->SetCond(cond); @@ -3235,7 +3262,7 @@ const COND *ha_connect::cond_push(const COND *cond) } // endif tty } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); } catch (const char *msg) { strcpy(g->Message, msg); @@ -3288,7 +3315,7 @@ bool ha_connect::get_error_message(int error, String* buf) &my_charset_latin1, &dummy_errors); - if (trace) + if (trace(1)) htrc("GEM(%d): len=%u %s\n", error, len, g->Message); msg[len]= '\0'; @@ -3340,7 +3367,7 @@ int ha_connect::open(const char *name, int mode, uint test_if_locked) int rc= 0; DBUG_ENTER("ha_connect::open"); - if (trace) + if (trace(1)) htrc("open: name=%s mode=%d test=%u\n", name, mode, test_if_locked); if (!(share= get_share())) @@ -3415,7 +3442,7 @@ int ha_connect::optimize(THD* thd, HA_CHECK_OPT*) rc = HA_ERR_INTERNAL_ERROR; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); rc = HA_ERR_INTERNAL_ERROR; } catch (const char *msg) { @@ -3563,7 +3590,7 @@ int ha_connect::update_row(const uchar *old_data, uchar *new_data) PGLOBAL& g= xp->g; DBUG_ENTER("ha_connect::update_row"); - if (trace > 1) + if (trace(2)) htrc("update_row: old=%s new=%s\n", old_data, new_data); // Check values for possible change in indexed column @@ -3624,7 +3651,7 @@ int ha_connect::index_init(uint idx, bool sorted) PGLOBAL& g= xp->g; DBUG_ENTER("index_init"); - if (trace) + if (trace(1)) htrc("index_init: this=%p idx=%u sorted=%d\n", this, idx, sorted); if (GetIndexType(GetRealType()) == 2) { @@ -3677,7 +3704,7 @@ int ha_connect::index_init(uint idx, bool sorted) rc= 0; } // endif indexing - if (trace) + if (trace(1)) htrc("index_init: rc=%d indexing=%d active_index=%d\n", rc, indexing, active_index); @@ -3724,7 +3751,7 @@ int ha_connect::ReadIndexed(uchar *buf, OPVAL op, const key_range *kr) break; } // endswitch RC - if (trace > 1) + if (trace(2)) htrc("ReadIndexed: op=%d rc=%d\n", op, rc); table->status= (rc == RC_OK) ? 0 : STATUS_NOT_FOUND; @@ -3767,7 +3794,7 @@ int ha_connect::index_read(uchar * buf, const uchar * key, uint key_len, default: DBUG_RETURN(-1); break; } // endswitch find_flag - if (trace > 1) + if (trace(2)) htrc("%p index_read: op=%d\n", this, op); if (indexing > 0) { @@ -3931,7 +3958,7 @@ int ha_connect::rnd_init(bool scan) alter= 1; } // endif xmod - if (trace) + if (trace(1)) htrc("rnd_init: this=%p scan=%d xmod=%d alter=%d\n", this, scan, xmod, alter); @@ -4037,7 +4064,7 @@ int ha_connect::rnd_next(uchar *buf) break; } // endswitch RC - if (trace > 1 && (rc || !(xp->nrd++ % 16384))) { + if (trace(2) && (rc || !(xp->nrd++ % 16384))) { ulonglong tb2= my_interval_timer(); double elapsed= (double) (tb2 - xp->tb1) / 1000000000ULL; DBUG_PRINT("rnd_next", ("rc=%d nrd=%u fnd=%u nfd=%u sec=%.3lf\n", @@ -4081,7 +4108,7 @@ void ha_connect::position(const uchar *) DBUG_ENTER("ha_connect::position"); my_store_ptr(ref, ref_length, (my_off_t)tdbp->GetRecpos()); - if (trace > 1) + if (trace(2)) htrc("position: pos=%d\n", tdbp->GetRecpos()); DBUG_VOID_RETURN; @@ -4111,7 +4138,7 @@ int ha_connect::rnd_pos(uchar *buf, uchar *pos) DBUG_ENTER("ha_connect::rnd_pos"); if (!tdbp->SetRecpos(xp->g, (int)my_get_ptr(pos, ref_length))) { - if (trace) + if (trace(1)) htrc("rnd_pos: %d\n", tdbp->GetRecpos()); tdbp->SetFilter(NULL); @@ -4177,7 +4204,7 @@ int ha_connect::info(uint flag) DBUG_RETURN(HA_ERR_INTERNAL_ERROR); } // endif g - if (trace) + if (trace(1)) htrc("%p In info: flag=%u valid_info=%d\n", this, flag, valid_info); // tdbp must be available to get updated info @@ -4370,54 +4397,59 @@ bool ha_connect::check_privileges(THD *thd, PTOS options, char *dbn, bool quick) my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--secure-file-priv"); return true; } // endif path - } + + } // endif !quick + } else return false; - // check FILE_ACL - // fall through - case TAB_ODBC: - case TAB_JDBC: + // Fall through case TAB_MYSQL: - case TAB_MONGO: case TAB_DIR: - case TAB_MAC: - case TAB_WMI: case TAB_ZIP: case TAB_OEM: #ifdef NO_EMBEDDED_ACCESS_CHECKS - return false; -#endif - /* - If table or table->mdl_ticket is NULL - it's a DLL, e.g. CREATE TABLE. - if the table has an MDL_EXCLUSIVE lock - it's a DDL too, e.g. the - insert step of CREATE ... SELECT. + return false; + #endif - Otherwise it's a DML, the table was normally opened, locked, - privilege were already checked, and table->grant.privilege is set. - With SQL SECURITY DEFINER, table->grant.privilege has definer's privileges. + /* + Check FILE_ACL + If table or table->mdl_ticket is NULL - it's a DLL, e.g. CREATE TABLE. + if the table has an MDL_EXCLUSIVE lock - it's a DDL too, e.g. the + insert step of CREATE ... SELECT. + + Otherwise it's a DML, the table was normally opened, locked, + privilege were already checked, and table->grant.privilege is set. + With SQL SECURITY DEFINER, table->grant.privilege has definer's privileges. + + Unless we're in prelocking mode, in this case table->grant.privilege + is only checked in start_stmt(), not in external_lock(). + */ + if (!table || !table->mdl_ticket || table->mdl_ticket->get_type() == MDL_EXCLUSIVE) + return check_access(thd, FILE_ACL, db, NULL, NULL, 0, 0); - Unless we're in prelocking mode, in this case table->grant.privilege - is only checked in start_stmt(), not in external_lock(). - */ - if (!table || !table->mdl_ticket || table->mdl_ticket->get_type() == MDL_EXCLUSIVE) - return check_access(thd, FILE_ACL, db, NULL, NULL, 0, 0); - if ((!quick && thd->lex->requires_prelocking()) || table->grant.privilege & FILE_ACL) - return false; - status_var_increment(thd->status_var.access_denied_errors); - my_error(access_denied_error_code(thd->password), MYF(0), - thd->security_ctx->priv_user, thd->security_ctx->priv_host, - (thd->password ? ER(ER_YES) : ER(ER_NO))); - return true; + if ((!quick && thd->lex->requires_prelocking()) || table->grant.privilege & FILE_ACL) + return false; - // This is temporary until a solution is found + status_var_increment(thd->status_var.access_denied_errors); + my_error(access_denied_error_code(thd->password), MYF(0), + thd->security_ctx->priv_user, thd->security_ctx->priv_host, + (thd->password ? ER(ER_YES) : ER(ER_NO))); + return true; + case TAB_ODBC: + case TAB_JDBC: + case TAB_MONGO: + case TAB_MAC: + case TAB_WMI: + return false; case TAB_TBL: case TAB_XCL: case TAB_PRX: case TAB_OCCUR: case TAB_PIVOT: case TAB_VIR: - return false; + // This is temporary until a solution is found + return false; } // endswitch type my_printf_error(ER_UNKNOWN_ERROR, "check_privileges failed", MYF(0)); @@ -4455,7 +4487,7 @@ MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, #if defined(DEVELOPMENT) if (true) { #else - if (trace) { + if (trace(65)) { #endif LEX_STRING *query_string= thd_query_string(thd); htrc("%p check_mode: cmdtype=%d\n", this, thd_sql_command(thd)); @@ -4576,7 +4608,7 @@ MODE ha_connect::CheckMode(PGLOBAL g, THD *thd, } // endif's newmode - if (trace) + if (trace(1)) htrc("New mode=%d\n", newmode); return newmode; @@ -4654,7 +4686,7 @@ int ha_connect::external_lock(THD *thd, int lock_type) DBUG_ASSERT(thd == current_thd); - if (trace) + if (trace(1)) htrc("external_lock: this=%p thd=%p xp=%p g=%p lock_type=%d\n", this, thd, xp, g, lock_type); @@ -4847,7 +4879,7 @@ int ha_connect::external_lock(THD *thd, int lock_type) if (cras) g->Createas= 1; // To tell created table to ignore FLAG - if (trace) { + if (trace(1)) { #if 0 htrc("xcheck=%d cras=%d\n", xcheck, cras); @@ -4880,7 +4912,7 @@ int ha_connect::external_lock(THD *thd, int lock_type) // Delay open until used fields are known } // endif tdbp - if (trace) + if (trace(1)) htrc("external_lock: rc=%d\n", rc); DBUG_RETURN(rc); @@ -5016,7 +5048,7 @@ int ha_connect::delete_or_rename_table(const char *name, const char *to) THD *thd= current_thd; int sqlcom= thd_sql_command(thd); - if (trace) { + if (trace(1)) { if (to) htrc("rename_table: this=%p thd=%p sqlcom=%d from=%s to=%s\n", this, thd, sqlcom, name, to); @@ -5127,7 +5159,7 @@ ha_rows ha_connect::records_in_range(uint inx, key_range *min_key, if (index_init(inx, false)) DBUG_RETURN(HA_POS_ERROR); - if (trace) + if (trace(1)) htrc("records_in_range: inx=%d indexing=%d\n", inx, indexing); if (indexing > 0) { @@ -5156,7 +5188,7 @@ ha_rows ha_connect::records_in_range(uint inx, key_range *min_key, else rows= HA_POS_ERROR; - if (trace) + if (trace(1)) htrc("records_in_range: rows=%llu\n", rows); DBUG_RETURN(rows); @@ -5378,7 +5410,7 @@ static int init_table_share(THD* thd, } // endif charset - if (trace) + if (trace(1)) htrc("s_init: %.*s\n", sql->length(), sql->ptr()); return table_s->init_from_sql_statement_string(thd, true, @@ -5411,7 +5443,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, #endif // __WIN__ //int hdr, mxe; int port = 0, mxr = 0, rc = 0, mul = 0, lrecl = 0; - PCSZ tabtyp = NULL; +//PCSZ tabtyp = NULL; #if defined(ODBC_SUPPORT) POPARM sop= NULL; PCSZ ucnc= NULL; @@ -5475,7 +5507,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, #endif // __WIN__ port= atoi(GetListOption(g, "port", topt->oplist, "0")); #if defined(ODBC_SUPPORT) - tabtyp = GetListOption(g, "Tabtype", topt->oplist, NULL); +// tabtyp = GetListOption(g, "Tabtype", topt->oplist, NULL); mxr= atoi(GetListOption(g,"maxres", topt->oplist, "0")); cto= atoi(GetListOption(g,"ConnectTimeout", topt->oplist, "-1")); qto= atoi(GetListOption(g,"QueryTimeout", topt->oplist, "-1")); @@ -5609,7 +5641,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, #endif // JAVA_SUPPORT case TAB_DBF: dbf = true; - // Passthru + // fall through case TAB_CSV: if (!fn && fnc != FNC_NO) sprintf(g->Message, "Missing %s file name", topt->type); @@ -5788,7 +5820,8 @@ static int connect_assisted_discovery(handlerton *, THD* thd, break; case FNC_TABLE: - qrp = JDBCTables(g, shm, tab, tabtyp, mxr, true, sjp); +// qrp = JDBCTables(g, shm, tab, tabtyp, mxr, true, sjp); + qrp = JDBCTables(g, shm, tab, NULL, mxr, true, sjp); break; #if 0 case FNC_DSN: @@ -5843,12 +5876,12 @@ static int connect_assisted_discovery(handlerton *, THD* thd, case TAB_JSON: qrp = JSONColumns(g, db, dsn, topt, fnc == FNC_COL); break; -#if defined(MONGO_SUPPORT) +#if defined(JAVA_SUPPORT) case TAB_MONGO: url = strz(g, create_info->connect_string); qrp = MGOColumns(g, db, url, topt, fnc == FNC_COL); break; -#endif // MONGO_SUPPORT +#endif // JAVA_SUPPORT #if defined(LIBXML2_SUPPORT) || defined(DOMDOC_SUPPORT) case TAB_XML: qrp = XMLColumns(g, (char*)db, tab, topt, fnc == FNC_COL); @@ -6091,7 +6124,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, } // endif ok } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); rc = HA_ERR_INTERNAL_ERROR; } catch (const char *msg) { @@ -6185,7 +6218,7 @@ int ha_connect::create(const char *name, TABLE *table_arg, table= table_arg; // Used by called functions - if (trace) + if (trace(1)) htrc("create: this=%p thd=%p xp=%p g=%p sqlcom=%d name=%s\n", this, thd, xp, g, sqlcom, GetTableName()); @@ -6574,7 +6607,7 @@ int ha_connect::create(const char *name, TABLE *table_arg, } // endif sqlcom - if (trace) + if (trace(1)) htrc("xchk=%p createas=%d\n", g->Xchk, g->Createas); if (options->zipped) { @@ -6949,7 +6982,7 @@ ha_connect::check_if_supported_inplace_alter(TABLE *altered_table, xcp->newsep= xcp->SetName(g, GetStringOption("optname")); tshp= NULL; - if (trace && g->Xchk) + if (trace(1) && g->Xchk) htrc( "oldsep=%d newsep=%d oldopn=%s newopn=%s oldpix=%p newpix=%p\n", xcp->oldsep, xcp->newsep, @@ -7213,10 +7246,11 @@ static struct st_mysql_sys_var* connect_system_variables[]= { MYSQL_SYSVAR(class_path), MYSQL_SYSVAR(java_wrapper), #endif // JAVA_SUPPORT -#if defined(JAVA_SUPPORT) -//MYSQL_SYSVAR(enable_mongo), -#endif // JAVA_SUPPORT -NULL +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) + MYSQL_SYSVAR(enable_mongo), +#endif // JAVA_SUPPORT || CMGO_SUPPORT + MYSQL_SYSVAR(cond_push), + NULL }; maria_declare_plugin(connect) @@ -7229,10 +7263,10 @@ maria_declare_plugin(connect) PLUGIN_LICENSE_GPL, connect_init_func, /* Plugin Init */ connect_done_func, /* Plugin Deinit */ - 0x0106, /* version number (1.05) */ + 0x0107, /* version number (1.05) */ NULL, /* status variables */ connect_system_variables, /* system variables */ - "1.06.0005", /* string version */ + "1.06.0007", /* string version */ MariaDB_PLUGIN_MATURITY_STABLE /* maturity */ } maria_declare_plugin_end; diff --git a/storage/connect/inihandl.cpp b/storage/connect/inihandl.cpp index 96ae0a67a6b..c039a980bcb 100644 --- a/storage/connect/inihandl.cpp +++ b/storage/connect/inihandl.cpp @@ -293,7 +293,7 @@ static PROFILESECTION *PROFILE_Load( FILE *file ) next_key = §ion->key; prev_key = NULL; - if (trace > 1) + if (trace(2)) htrc("New section: '%s'\n",section->name); continue; @@ -336,7 +336,7 @@ static PROFILESECTION *PROFILE_Load( FILE *file ) next_key = &key->next; prev_key = key; - if (trace > 1) + if (trace(2)) htrc("New key: name='%s', value='%s'\n", key->name,key->value?key->value:"(none)"); @@ -359,7 +359,7 @@ static BOOL PROFILE_FlushFile(void) FILE *file = NULL; struct stat buf; - if (trace > 1) + if (trace(2)) htrc("PROFILE_FlushFile: CurProfile=%p\n", CurProfile); if (!CurProfile) { @@ -398,7 +398,7 @@ static BOOL PROFILE_FlushFile(void) return FALSE; } // endif !file - if (trace > 1) + if (trace(2)) htrc("Saving '%s'\n", CurProfile->filename); PROFILE_Save(file, CurProfile->section); @@ -447,7 +447,7 @@ static BOOL PROFILE_Open(LPCSTR filename) struct stat buf; PROFILE *tempProfile; - if (trace > 1) + if (trace(2)) htrc("PROFILE_Open: CurProfile=%p N=%d\n", CurProfile, N_CACHED_PROFILES); /* First time around */ @@ -468,7 +468,7 @@ static BOOL PROFILE_Open(LPCSTR filename) /* Check for a match */ for (i = 0; i < N_CACHED_PROFILES; i++) { - if (trace > 1) + if (trace(2)) htrc("MRU=%s i=%d\n", SVP(MRUProfile[i]->filename), i); if (MRUProfile[i]->filename && !strcmp(filename, MRUProfile[i]->filename)) { @@ -483,11 +483,11 @@ static BOOL PROFILE_Open(LPCSTR filename) } // endif i if (!stat(CurProfile->filename, &buf) && CurProfile->mtime == buf.st_mtime) { - if (trace > 1) + if (trace(2)) htrc("(%s): already opened (mru=%d)\n", filename, i); } else { - if (trace > 1) + if (trace(2)) htrc("(%s): already opened, needs refreshing (mru=%d)\n", filename, i); } // endif stat @@ -535,11 +535,11 @@ static BOOL PROFILE_Open(LPCSTR filename) // strcpy(p, filename); // _strlwr(p); - if (trace > 1) + if (trace(2)) htrc("Opening %s\n", filename); if ((file = fopen(filename, "r"))) { - if (trace > 1) + if (trace(2)) htrc("(%s): found it\n", filename); // CurProfile->unix_name = malloc(strlen(buffer)+1); @@ -574,12 +574,12 @@ void PROFILE_Close(LPCSTR filename) struct stat buf; PROFILE *tempProfile; - if (trace > 1) + if (trace(2)) htrc("PROFILE_Close: CurProfile=%p N=%d\n", CurProfile, N_CACHED_PROFILES); /* Check for a match */ for (i = 0; i < N_CACHED_PROFILES; i++) { - if (trace > 1) + if (trace(2)) htrc("MRU=%s i=%d\n", SVP(MRUProfile[i]->filename), i); if (MRUProfile[i]->filename && !strcmp(filename, MRUProfile[i]->filename)) { @@ -591,7 +591,7 @@ void PROFILE_Close(LPCSTR filename) CurProfile=tempProfile; } // endif i - if (trace > 1) { + if (trace(2)) { if (!stat(CurProfile->filename, &buf) && CurProfile->mtime == buf.st_mtime) htrc("(%s): already opened (mru=%d)\n", filename, i); else @@ -620,7 +620,7 @@ void PROFILE_End(void) { int i; - if (trace) + if (trace(3)) htrc("PROFILE_End: CurProfile=%p N=%d\n", CurProfile, N_CACHED_PROFILES); if (!CurProfile) // Sergey Vojtovich @@ -628,7 +628,7 @@ void PROFILE_End(void) /* Close all opened files and free the cache structure */ for (i = 0; i < N_CACHED_PROFILES; i++) { - if (trace) + if (trace(3)) htrc("MRU=%s i=%d\n", SVP(MRUProfile[i]->filename), i); // CurProfile = MRUProfile[i]; Sergey Vojtovich @@ -894,7 +894,7 @@ static int PROFILE_GetSectionNames(LPSTR buffer, uint len) uint f,l; PROFILESECTION *section; - if (trace > 1) + if (trace(2)) htrc("GetSectionNames: buffer=%p len=%u\n", buffer, len); if (!buffer || !len) @@ -909,17 +909,17 @@ static int PROFILE_GetSectionNames(LPSTR buffer, uint len) buf = buffer; section = CurProfile->section; - if (trace > 1) + if (trace(2)) htrc("GetSectionNames: section=%p\n", section); while (section != NULL) { - if (trace > 1) + if (trace(2)) htrc("section=%s\n", section->name); if (section->name[0]) { l = strlen(section->name) + 1; - if (trace > 1) + if (trace(2)) htrc("l=%u f=%u\n", l, f); if (l > f) { @@ -982,7 +982,7 @@ static int PROFILE_GetString(LPCSTR section, LPCSTR key_name, key = PROFILE_Find(&CurProfile->section, section, key_name, FALSE, FALSE); PROFILE_CopyEntry(buffer, (key && key->value) ? key->value : def_val, len, FALSE); - if (trace > 1) + if (trace(2)) htrc("('%s','%s','%s'): returning '%s'\n", section, key_name, def_val, buffer ); @@ -1010,7 +1010,7 @@ static BOOL PROFILE_SetString(LPCSTR section_name, LPCSTR key_name, LPCSTR value, BOOL create_always) { if (!key_name) { /* Delete a whole section */ - if (trace > 1) + if (trace(2)) htrc("Deleting('%s')\n", section_name); CurProfile->changed |= PROFILE_DeleteSection(&CurProfile->section, @@ -1018,7 +1018,7 @@ static BOOL PROFILE_SetString(LPCSTR section_name, LPCSTR key_name, return TRUE; /* Even if PROFILE_DeleteSection() has failed, this is not an error on application's level.*/ } else if (!value) { /* Delete a key */ - if (trace > 1) + if (trace(2)) htrc("Deleting('%s','%s')\n", section_name, key_name); CurProfile->changed |= PROFILE_DeleteKey(&CurProfile->section, @@ -1027,7 +1027,7 @@ static BOOL PROFILE_SetString(LPCSTR section_name, LPCSTR key_name, } else { /* Set the key value */ PROFILEKEY *key = PROFILE_Find(&CurProfile->section, section_name, key_name, TRUE, create_always); - if (trace > 1) + if (trace(2)) htrc("Setting('%s','%s','%s')\n", section_name, key_name, value); if (!key) @@ -1040,17 +1040,17 @@ static BOOL PROFILE_SetString(LPCSTR section_name, LPCSTR key_name, value++; if (!strcmp(key->value, value)) { - if (trace > 1) + if (trace(2)) htrc(" no change needed\n" ); return TRUE; /* No change needed */ } // endif value - if (trace > 1) + if (trace(2)) htrc(" replacing '%s'\n", key->value); free(key->value); - } else if (trace > 1) + } else if (trace(2)) htrc(" creating key\n" ); key->value = (char*)malloc(strlen(value) + 1); @@ -1345,7 +1345,7 @@ GetPrivateProfileSectionNames(LPSTR buffer, DWORD size, LPCSTR filename) { DWORD ret = 0; - if (trace > 1) + if (trace(2)) htrc("GPPSN: filename=%s\n", filename); EnterCriticalSection(&PROFILE_CritSect); diff --git a/storage/connect/javaconn.cpp b/storage/connect/javaconn.cpp index 90f834ef9a7..d1be0ca1848 100644 --- a/storage/connect/javaconn.cpp +++ b/storage/connect/javaconn.cpp @@ -363,7 +363,7 @@ bool JAVAConn::GetJVM(PGLOBAL g) bool JAVAConn::Open(PGLOBAL g) { bool brc = true, err = false; - jboolean jt = (trace > 0); + jboolean jt = (trace(1)); // Link or check whether jvm library was linked if (GetJVM(g)) @@ -430,7 +430,7 @@ bool JAVAConn::Open(PGLOBAL g) jpop->Append(cp); } // endif cp - if (trace) { + if (trace(1)) { htrc("ClassPath=%s\n", ClassPath); htrc("CLASSPATH=%s\n", cp); htrc("%s\n", jpop->GetStr()); @@ -486,7 +486,7 @@ bool JAVAConn::Open(PGLOBAL g) break; } // endswitch rc - if (trace) + if (trace(1)) htrc("%s\n", g->Message); if (brc) diff --git a/storage/connect/jdbconn.cpp b/storage/connect/jdbconn.cpp index 4c21c2c9681..ddbc3115f0b 100644 --- a/storage/connect/jdbconn.cpp +++ b/storage/connect/jdbconn.cpp @@ -1,7 +1,7 @@ /************ Jdbconn C++ Functions Source Code File (.CPP) ************/ -/* Name: JDBCONN.CPP Version 1.1 */ +/* Name: JDBCONN.CPP Version 1.2 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2016-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 2016-2018 */ /* */ /* This file contains the JDBC connection classes functions. */ /***********************************************************************/ @@ -116,10 +116,26 @@ int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v) return TYPE_ERROR; else len = MY_MIN(abs(len), GetConvSize()); + // Pass through case 12: // VARCHAR + if (tn && !stricmp(tn, "TEXT")) + // Postgresql returns 12 for TEXT + if (GetTypeConv() == TPC_NO) + return TYPE_ERROR; + + // Postgresql can return this + if (len == 0x7FFFFFFF) + len = GetConvSize(); + + // Pass through case -9: // NVARCHAR (unicode) + // Postgresql can return this when size is unknown + if (len == 0x7FFFFFFF) + len = GetConvSize(); + v = 'V'; + // Pass through case 1: // CHAR case -15: // NCHAR (unicode) case -8: // ROWID @@ -154,13 +170,13 @@ int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v) case 91: // DATE, YEAR type = TYPE_DATE; - if (!tn || toupper(tn[0]) != 'Y') { - len = 10; - v = 'D'; - } else { - len = 4; - v = 'Y'; - } // endif len + if (!tn || toupper(tn[0]) != 'Y') { + len = 10; + v = 'D'; + } else { + len = 4; + v = 'Y'; + } // endif len break; case 92: // TIME @@ -192,6 +208,104 @@ int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v) return type; } // end of TranslateJDBCType + /***********************************************************************/ + /* A helper class to split an optionally qualified table name into */ + /* components. */ + /* These formats are understood: */ + /* "CatalogName.SchemaName.TableName" */ + /* "SchemaName.TableName" */ + /* "TableName" */ + /***********************************************************************/ +class SQLQualifiedName { + static const uint max_parts = 3; // Catalog.Schema.Table + MYSQL_LEX_STRING m_part[max_parts]; + char m_buf[512]; + + void lex_string_set(MYSQL_LEX_STRING *S, char *str, size_t length) + { + S->str = str; + S->length = length; + } // end of lex_string_set + + void lex_string_shorten_down(MYSQL_LEX_STRING *S, size_t offs) + { + DBUG_ASSERT(offs <= S->length); + S->str += offs; + S->length -= offs; + } // end of lex_string_shorten_down + + /*********************************************************************/ + /* Find the rightmost '.' delimiter and return the length */ + /* of the qualifier, including the rightmost '.' delimier. */ + /* For example, for the string {"a.b.c",5} it will return 4, */ + /* which is the length of the qualifier "a.b." */ + /*********************************************************************/ + size_t lex_string_find_qualifier(MYSQL_LEX_STRING *S) + { + size_t i; + for (i = S->length; i > 0; i--) + { + if (S->str[i - 1] == '.') + { + S->str[i - 1] = '\0'; + return i; + } + } + return 0; + } // end of lex_string_find_qualifier + +public: + /*********************************************************************/ + /* Initialize to the given optionally qualified name. */ + /* NULL pointer in "name" is supported. */ + /* name qualifier has precedence over schema. */ + /*********************************************************************/ + SQLQualifiedName(JCATPARM *cap) + { + const char *name = (const char *)cap->Tab; + char *db = (char *)cap->DB; + size_t len, i; + + // Initialize the parts + for (i = 0; i < max_parts; i++) + lex_string_set(&m_part[i], NULL, 0); + + if (name) { + // Initialize the first (rightmost) part + lex_string_set(&m_part[0], m_buf, + strmake(m_buf, name, sizeof(m_buf) - 1) - m_buf); + + // Initialize the other parts, if exist. + for (i = 1; i < max_parts; i++) { + if (!(len = lex_string_find_qualifier(&m_part[i - 1]))) + break; + + lex_string_set(&m_part[i], m_part[i - 1].str, len - 1); + lex_string_shorten_down(&m_part[i - 1], len); + } // endfor i + + } // endif name + + // If it was not specified, set schema as the passed db name + if (db && !m_part[1].length) + lex_string_set(&m_part[1], db, strlen(db)); + + } // end of SQLQualifiedName + + char *ptr(uint i) + { + DBUG_ASSERT(i < max_parts); + return (char *)(m_part[i].length ? m_part[i].str : NULL); + } // end of ptr + + size_t length(uint i) + { + DBUG_ASSERT(i < max_parts); + return m_part[i].length; + } // end of length + +}; // end of class SQLQualifiedName + /***********************************************************************/ /* Allocate the structure used to refer to the result set. */ /***********************************************************************/ @@ -270,7 +384,7 @@ PQRYRES JDBCColumns(PGLOBAL g, PCSZ db, PCSZ table, PCSZ colpat, length[11] = 255; } // endif jcp - if (trace) + if (trace(1)) htrc("JDBCColumns: max=%d len=%d,%d,%d,%d\n", maxres, length[0], length[1], length[2], length[3]); @@ -287,7 +401,7 @@ PQRYRES JDBCColumns(PGLOBAL g, PCSZ db, PCSZ table, PCSZ colpat, if (info || !qrp) // Info table return qrp; - if (trace) + if (trace(1)) htrc("Getting col results ncol=%d\n", qrp->Nbcol); if (!(cap = AllocCatInfo(g, JCAT_COL, db, table, qrp))) @@ -303,7 +417,7 @@ PQRYRES JDBCColumns(PGLOBAL g, PCSZ db, PCSZ table, PCSZ colpat, qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("Columns: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -394,7 +508,7 @@ PQRYRES JDBCTables(PGLOBAL g, PCSZ db, PCSZ tabpat, PCSZ tabtyp, length[4] = 255; } // endif info - if (trace) + if (trace(1)) htrc("JDBCTables: max=%d len=%d,%d\n", maxres, length[0], length[1]); /************************************************************************/ @@ -417,7 +531,7 @@ PQRYRES JDBCTables(PGLOBAL g, PCSZ db, PCSZ tabpat, PCSZ tabtyp, cap->Pat = tabtyp; - if (trace) + if (trace(1)) htrc("Getting table results ncol=%d\n", cap->Qrp->Nbcol); /************************************************************************/ @@ -427,7 +541,7 @@ PQRYRES JDBCTables(PGLOBAL g, PCSZ db, PCSZ tabpat, PCSZ tabtyp, qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("Tables: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -475,7 +589,7 @@ PQRYRES JDBCDrivers(PGLOBAL g, int maxres, bool info) } else maxres = 0; - if (trace) + if (trace(1)) htrc("JDBCDrivers: max=%d len=%d\n", maxres, length[0]); /************************************************************************/ @@ -519,7 +633,7 @@ JDBConn::JDBConn(PGLOBAL g, PCSZ wrapper) : JAVAConn(g, wrapper) xqid = xuid = xid = grs = readid = fetchid = typid = errid = nullptr; prepid = xpid = pcid = nullptr; chrfldid = intfldid = dblfldid = fltfldid = bigfldid = nullptr; - objfldid = datfldid = timfldid = tspfldid = nullptr; + objfldid = datfldid = timfldid = tspfldid = uidfldid = nullptr; DiscFunc = "JdbcDisconnect"; m_Ncol = 0; m_Aff = 0; @@ -535,12 +649,84 @@ JDBConn::JDBConn(PGLOBAL g, PCSZ wrapper) : JAVAConn(g, wrapper) m_IDQuoteChar[1] = 0; } // end of JDBConn -//JDBConn::~JDBConn() -// { -//if (Connected()) -// EndCom(); +/***********************************************************************/ +/* Search for UUID columns. */ +/***********************************************************************/ +bool JDBConn::SetUUID(PGLOBAL g, PTDBJDBC tjp) +{ + int ncol, ctyp; + bool brc = true; + PCSZ fnc = "GetColumns"; + PCOL colp; + JCATPARM *cap; + //jint jtyp; + jboolean rc = false; + jobjectArray parms; + jmethodID catid = nullptr; -// } // end of ~JDBConn + if (gmID(g, catid, fnc, "([Ljava/lang/String;)I")) + return true; + else if (gmID(g, intfldid, "IntField", "(ILjava/lang/String;)I")) + return true; + else if (gmID(g, readid, "ReadNext", "()I")) + return true; + + cap = AllocCatInfo(g, JCAT_COL, tjp->Schema, tjp->TableName, NULL); + SQLQualifiedName name(cap); + + // Build the java string array + parms = env->NewObjectArray(4, env->FindClass("java/lang/String"), NULL); + env->SetObjectArrayElement(parms, 0, env->NewStringUTF(name.ptr(2))); + env->SetObjectArrayElement(parms, 1, env->NewStringUTF(name.ptr(1))); + env->SetObjectArrayElement(parms, 2, env->NewStringUTF(name.ptr(0))); + + for (colp = tjp->GetColumns(); colp; colp = colp->GetNext()) { + env->SetObjectArrayElement(parms, 3, env->NewStringUTF(colp->GetName())); + ncol = env->CallIntMethod(job, catid, parms); + + if (Check(ncol)) { + sprintf(g->Message, "%s: %s", fnc, Msg); + goto err; + } // endif Check + + rc = env->CallBooleanMethod(job, readid); + + if (Check(rc)) { + sprintf(g->Message, "ReadNext: %s", Msg); + goto err; + } else if (rc == 0) { + sprintf(g->Message, "table %s does not exist", tjp->TableName); + goto err; + } // endif rc + + // Returns 666 is case of error + //jtyp = env->CallIntMethod(job, typid, 5, nullptr); + + //if (Check((jtyp == 666) ? -1 : 1)) { + // sprintf(g->Message, "Getting jtyp: %s", Msg); + // goto err; + //} // endif ctyp + + ctyp = (int)env->CallIntMethod(job, intfldid, 5, nullptr); + + if (Check(ctyp)) { + sprintf(g->Message, "Getting ctyp: %s", Msg); + goto err; + } // endif ctyp + + if (ctyp == 1111) + ((PJDBCCOL)colp)->uuid = true; + + } // endfor colp + + // All is Ok + brc = false; + + err: + // Not used anymore + env->DeleteLocalRef(parms); + return brc; +} // end of SetUUID /***********************************************************************/ /* Utility routine. */ @@ -586,7 +772,7 @@ bool JDBConn::Connect(PJPARM sop) int irc = RC_FX; bool err = false; jint rc; - jboolean jt = (trace > 0); + jboolean jt = (trace(1)); PGLOBAL& g = m_G; /*******************************************************************/ @@ -770,6 +956,7 @@ int JDBConn::Rewind(PCSZ sql) /***********************************************************************/ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val) { + const char *field; PGLOBAL& g = m_G; jint ctyp; jstring cn, jn = nullptr; @@ -793,6 +980,11 @@ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val) if (!gmID(g, objfldid, "ObjectField", "(ILjava/lang/String;)Ljava/lang/Object;")) { jb = env->CallObjectMethod(job, objfldid, (jint)rank, jn); + if (Check(0)) { + sprintf(g->Message, "Getting jp: %s", Msg); + throw (int)TYPE_AM_JDBC; + } // endif Check + if (jb == nullptr) { val->Reset(); val->SetNull(true); @@ -818,7 +1010,7 @@ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val) cn = nullptr; if (cn) { - const char *field = env->GetStringUTFChars(cn, (jboolean)false); + field = env->GetStringUTFChars(cn, (jboolean)false); val->SetValue_psz((PSZ)field); } else val->Reset(); @@ -885,6 +1077,19 @@ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val) break; case java.sql.Types.BOOLEAN: System.out.print(jdi.BooleanField(i)); */ + case 1111: // UUID + if (!gmID(g, uidfldid, "UuidField", "(ILjava/lang/String;)Ljava/lang/String;")) + cn = (jstring)env->CallObjectMethod(job, uidfldid, (jint)rank, jn); + else + cn = nullptr; + + if (cn) { + const char *field = env->GetStringUTFChars(cn, (jboolean)false); + val->SetValue_psz((PSZ)field); + } else + val->Reset(); + + break; case 0: // NULL val->SetNull(true); // passthru @@ -1055,7 +1260,14 @@ bool JDBConn::SetParam(JDBCCOL *colp) if (gmID(g, setid, "SetNullParm", "(II)I")) return true; - jrc = env->CallIntMethod(job, setid, i, (jint)GetJDBCType(val->GetType())); + jrc = env->CallIntMethod(job, setid, i, + (colp->uuid ? 1111 : (jint)GetJDBCType(val->GetType()))); + } else if (colp->uuid) { + if (gmID(g, setid, "SetUuidParm", "(ILjava/lang/String;)V")) + return true; + + jst = env->NewStringUTF(val->GetCharValue()); + env->CallVoidMethod(job, setid, i, jst); } else switch (val->GetType()) { case TYPE_STRING: if (gmID(g, setid, "SetStringParm", "(ILjava/lang/String;)V")) @@ -1274,105 +1486,6 @@ bool JDBConn::SetParam(JDBCCOL *colp) return qrp; } // end of GetMetaData - /***********************************************************************/ - /* A helper class to split an optionally qualified table name into */ - /* components. */ - /* These formats are understood: */ - /* "CatalogName.SchemaName.TableName" */ - /* "SchemaName.TableName" */ - /* "TableName" */ - /***********************************************************************/ - class SQLQualifiedName - { - static const uint max_parts= 3; // Catalog.Schema.Table - MYSQL_LEX_STRING m_part[max_parts]; - char m_buf[512]; - - void lex_string_set(MYSQL_LEX_STRING *S, char *str, size_t length) - { - S->str= str; - S->length= length; - } // end of lex_string_set - - void lex_string_shorten_down(MYSQL_LEX_STRING *S, size_t offs) - { - DBUG_ASSERT(offs <= S->length); - S->str+= offs; - S->length-= offs; - } // end of lex_string_shorten_down - - /*********************************************************************/ - /* Find the rightmost '.' delimiter and return the length */ - /* of the qualifier, including the rightmost '.' delimier. */ - /* For example, for the string {"a.b.c",5} it will return 4, */ - /* which is the length of the qualifier "a.b." */ - /*********************************************************************/ - size_t lex_string_find_qualifier(MYSQL_LEX_STRING *S) - { - size_t i; - for (i= S->length; i > 0; i--) - { - if (S->str[i - 1] == '.') - { - S->str[i - 1]= '\0'; - return i; - } - } - return 0; - } // end of lex_string_find_qualifier - - public: - /*********************************************************************/ - /* Initialize to the given optionally qualified name. */ - /* NULL pointer in "name" is supported. */ - /* name qualifier has precedence over schema. */ - /*********************************************************************/ - SQLQualifiedName(JCATPARM *cap) - { - const char *name = (const char *)cap->Tab; - char *db = (char *)cap->DB; - size_t len, i; - - // Initialize the parts - for (i = 0; i < max_parts; i++) - lex_string_set(&m_part[i], NULL, 0); - - if (name) { - // Initialize the first (rightmost) part - lex_string_set(&m_part[0], m_buf, - strmake(m_buf, name, sizeof(m_buf) - 1) - m_buf); - - // Initialize the other parts, if exist. - for (i= 1; i < max_parts; i++) { - if (!(len= lex_string_find_qualifier(&m_part[i - 1]))) - break; - - lex_string_set(&m_part[i], m_part[i - 1].str, len - 1); - lex_string_shorten_down(&m_part[i - 1], len); - } // endfor i - - } // endif name - - // If it was not specified, set schema as the passed db name - if (db && !m_part[1].length) - lex_string_set(&m_part[1], db, strlen(db)); - - } // end of SQLQualifiedName - - char *ptr(uint i) - { - DBUG_ASSERT(i < max_parts); - return (char *)(m_part[i].length ? m_part[i].str : NULL); - } // end of ptr - - size_t length(uint i) - { - DBUG_ASSERT(i < max_parts); - return m_part[i].length; - } // end of length - - }; // end of class SQLQualifiedName - /***********************************************************************/ /* Allocate recset and call SQLTables, SQLColumns or SQLPrimaryKeys. */ /***********************************************************************/ @@ -1443,7 +1556,7 @@ bool JDBConn::SetParam(JDBCCOL *colp) // Not used anymore env->DeleteLocalRef(parms); - if (trace) + if (trace(1)) htrc("Method %s returned %d columns\n", fnc, ncol); // n because we no more ignore the first column @@ -1488,7 +1601,7 @@ bool JDBConn::SetParam(JDBCCOL *colp) sprintf(g->Message, "Fetch: %s", Msg); return -1; } if (rc == 0) { - if (trace) + if (trace(1)) htrc("End of fetches i=%d\n", i); break; diff --git a/storage/connect/jdbconn.h b/storage/connect/jdbconn.h index 56f318d238b..0c36cccadcf 100644 --- a/storage/connect/jdbconn.h +++ b/storage/connect/jdbconn.h @@ -29,6 +29,7 @@ public: // Attributes public: char *GetQuoteChar(void) { return m_IDQuoteChar; } + bool SetUUID(PGLOBAL g, PTDBJDBC tjp); virtual int GetMaxValue(int infotype); public: @@ -58,13 +59,6 @@ public: protected: // Members -#if 0 - JavaVM *jvm; // Pointer to the JVM (Java Virtual Machine) - JNIEnv *env; // Pointer to native interface - jclass jdi; // Pointer to the java wrapper class - jobject job; // The java wrapper class object - jmethodID errid; // The GetErrmsg method ID -#endif // 0 jmethodID xqid; // The ExecuteQuery method ID jmethodID xuid; // The ExecuteUpdate method ID jmethodID xid; // The Execute method ID @@ -84,8 +78,7 @@ protected: jmethodID timfldid; // The TimeField method ID jmethodID tspfldid; // The TimestampField method ID jmethodID bigfldid; // The BigintField method ID -// PCSZ Msg; -// PCSZ m_Wrap; + jmethodID uidfldid; // The UuidField method ID char m_IDQuoteChar[2]; PCSZ m_Pwd; int m_Ncol; diff --git a/storage/connect/jmgfam.cpp b/storage/connect/jmgfam.cpp index c7115cdd720..30f6279146d 100644 --- a/storage/connect/jmgfam.cpp +++ b/storage/connect/jmgfam.cpp @@ -298,7 +298,7 @@ int JMGFAM::ReadBuffer(PGLOBAL g) PSZ str = Jcp->GetDocument(); if (str) { - if (trace == 1) + if (trace(1)) htrc("%s\n", str); strncpy(Tdbp->GetLine(), str, Lrecl); diff --git a/storage/connect/jmgoconn.cpp b/storage/connect/jmgoconn.cpp index 4736641ef3f..1731ccbeb8c 100644 --- a/storage/connect/jmgoconn.cpp +++ b/storage/connect/jmgoconn.cpp @@ -254,7 +254,7 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, all = true; if (pipe && Options) { - if (trace) + if (trace(1)) htrc("Pipeline: %s\n", Options); p = strrchr(Options, ']'); @@ -312,13 +312,13 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, *(char*)p = ']'; // Restore Colist for discovery p = s->GetStr(); - if (trace) + if (trace(33)) htrc("New Pipeline: %s\n", p); return AggregateCollection(p); } else { if (filter || filp) { - if (trace) { + if (trace(1)) { if (filter) htrc("Filter: %s\n", filter); @@ -346,7 +346,7 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, tdbp->SetFilter(NULL); // Not needed anymore } // endif To_Filter - if (trace) + if (trace(33)) htrc("selector: %s\n", s->GetStr()); s->Resize(s->GetLength() + 1); @@ -355,7 +355,7 @@ bool JMgoConn::MakeCursor(PGLOBAL g, PTDB tdbp, PCSZ options, if (!all) { if (Options && *Options) { - if (trace) + if (trace(1)) htrc("options=%s\n", Options); op = Options; @@ -751,7 +751,7 @@ int JMgoConn::DocUpdate(PGLOBAL g, PTDB tdbp) jlong ar = env->CallLongMethod(job, updateid, upd); - if (trace) + if (trace(1)) htrc("DocUpdate: ar = %ld\n", ar); if (Check((int)ar)) { @@ -770,7 +770,7 @@ int JMgoConn::DocDelete(PGLOBAL g, bool all) int rc = RC_OK; jlong ar = env->CallLongMethod(job, deleteid, all); - if (trace) + if (trace(1)) htrc("DocDelete: ar = %ld\n", ar); if (Check((int)ar)) { diff --git a/storage/connect/json.cpp b/storage/connect/json.cpp index b86d2da21b7..98a4659cea8 100644 --- a/storage/connect/json.cpp +++ b/storage/connect/json.cpp @@ -97,7 +97,7 @@ PJSON ParseJson(PGLOBAL g, char *s, int len, int *ptyp, bool *comma) PJSON jsp = NULL; STRG src; - if (trace) + if (trace(1)) htrc("ParseJson: s=%.10s len=%d\n", s, len); if (!s || !len) { @@ -165,7 +165,7 @@ PJSON ParseJson(PGLOBAL g, char *s, int len, int *ptyp, bool *comma) }; // endswitch s[i] if (!jsp) - sprintf(g->Message, "Invalid Json string '%.*s'", 50, s); + sprintf(g->Message, "Invalid Json string '%.*s'", MY_MIN(len, 50), s); else if (ptyp && pretty == 3) { *ptyp = 3; // Not recognized pretty @@ -178,7 +178,7 @@ PJSON ParseJson(PGLOBAL g, char *s, int len, int *ptyp, bool *comma) } // endif ptyp } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); jsp = NULL; } catch (const char *msg) { @@ -652,7 +652,7 @@ PSZ Serialize(PGLOBAL g, PJSON jsp, char *fn, int pretty) } // endif's } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); str = NULL; } catch (const char *msg) { @@ -1015,6 +1015,20 @@ PJAR JOBJECT::GetKeyList(PGLOBAL g) return jarp; } // end of GetKeyList +/***********************************************************************/ +/* Return all values as an array. */ +/***********************************************************************/ +PJAR JOBJECT::GetValList(PGLOBAL g) +{ + PJAR jarp = new(g) JARRAY(); + + for (PJPR jpp = First; jpp; jpp = jpp->Next) + jarp->AddValue(g, jpp->GetVal()); + + jarp->InitArray(g); + return jarp; +} // end of GetValList + /***********************************************************************/ /* Get the value corresponding to the given key. */ /***********************************************************************/ @@ -1224,6 +1238,7 @@ PJVAL JARRAY::AddValue(PGLOBAL g, PJVAL jvp, int *x) Last->Next = jvp; Last = jvp; + Last->Next = NULL; } // endif x return jvp; @@ -1318,6 +1333,24 @@ bool JARRAY::IsNull(void) /* -------------------------- Class JVALUE- -------------------------- */ +/***********************************************************************/ +/* Constructor for a JSON. */ +/***********************************************************************/ +JVALUE::JVALUE(PJSON jsp) : JSON() +{ + if (jsp->GetType() == TYPE_JVAL) { + Jsp = jsp->GetJsp(); + Value = jsp->GetValue(); + } else { + Jsp = jsp; + Value = NULL; + } // endif Type + + Next = NULL; + Del = false; + Size = 1; +} // end of JVALUE constructor + /***********************************************************************/ /* Constructor for a Value with a given string or numeric value. */ /***********************************************************************/ diff --git a/storage/connect/json.h b/storage/connect/json.h index 375532212c4..dcc97287420 100644 --- a/storage/connect/json.h +++ b/storage/connect/json.h @@ -20,7 +20,8 @@ enum JTYP {TYPE_NULL = TYPE_VOID, TYPE_BINT = TYPE_BIGINT, TYPE_DTM = TYPE_DATE, TYPE_INTG = TYPE_INT, - TYPE_JSON = 12, + TYPE_VAL = 12, + TYPE_JSON, TYPE_JAR, TYPE_JOB, TYPE_JVAL}; @@ -157,6 +158,7 @@ class JSON : public BLOCK { //virtual PJVAL AddValue(PGLOBAL g, PJVAL jvp = NULL, int *x = NULL) {X return NULL;} virtual PJPR AddPair(PGLOBAL g, PCSZ key) {X return NULL;} virtual PJAR GetKeyList(PGLOBAL g) {X return NULL;} + virtual PJAR GetValList(PGLOBAL g) {X return NULL;} virtual PJVAL GetValue(const char *key) {X return NULL;} virtual PJOB GetObject(void) {return NULL;} virtual PJAR GetArray(void) {return NULL;} @@ -205,6 +207,7 @@ class JOBJECT : public JSON { virtual PJOB GetObject(void) {return this;} virtual PJVAL GetValue(const char* key); virtual PJAR GetKeyList(PGLOBAL g); + virtual PJAR GetValList(PGLOBAL g); virtual PSZ GetText(PGLOBAL g, PSZ text); virtual bool Merge(PGLOBAL g, PJSON jsp); virtual void SetValue(PGLOBAL g, PJVAL jvp, PCSZ key); @@ -258,8 +261,7 @@ class JVALUE : public JSON { friend bool SerializeValue(JOUT *, PJVAL); public: JVALUE(void) : JSON() {Clear();} - JVALUE(PJSON jsp) : JSON() - {Jsp = jsp; Value = NULL; Next = NULL; Del = false; Size = 1;} + JVALUE(PJSON jsp); JVALUE(PGLOBAL g, PVAL valp); JVALUE(PGLOBAL g, PCSZ strp); diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index eb783807190..e45846ea23b 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -1,6 +1,6 @@ /****************** jsonudf C++ Program Source Code File (.CPP) ******************/ -/* PROGRAM NAME: jsonudf Version 1.6 */ -/* (C) Copyright to the author Olivier BERTRAND 2015-2017 */ +/* PROGRAM NAME: jsonudf Version 1.7 */ +/* (C) Copyright to the author Olivier BERTRAND 2015-2018 */ /* This program are the JSON User Defined Functions . */ /*********************************************************************************/ @@ -31,16 +31,39 @@ bool IsNum(PSZ s); char *NextChr(PSZ s, char sep); char *GetJsonNull(void); uint GetJsonGrpSize(void); -static int IsJson(UDF_ARGS *args, uint i); +static int IsJson(UDF_ARGS *args, uint i, bool b = false); static PSZ MakePSZ(PGLOBAL g, UDF_ARGS *args, int i); static char *handle_item(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long *res_length, char *is_null, char *error); static char *bin_handle_item(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long *res_length, char *is_null, char *error); +static PJSON JsonNew(PGLOBAL g, JTYP type); +static PJVAL JvalNew(PGLOBAL g, JTYP type, void *vp = NULL); +static PJSNX JsnxNew(PGLOBAL g, PJSON jsp, int type, int len = 64); static uint JsonGrpSize = 10; -/* ----------------------------------- JSNX ------------------------------------ */ +/*********************************************************************************/ +/* SubAlloc a new JSNX class with protection against memory exhaustion. */ +/*********************************************************************************/ +static PJSNX JsnxNew(PGLOBAL g, PJSON jsp, int type, int len) +{ + PJSNX jsx; + + try { + jsx = new(g) JSNX(g, jsp, type, len); + } catch (...) { + if (trace(1023)) + htrc("%s\n", g->Message); + + PUSH_WARNING(g->Message); + jsx = NULL; + } // end try/catch + + return jsx; +} /* end of JsnxNew */ + + /* ----------------------------------- JSNX ------------------------------------ */ /*********************************************************************************/ /* JSNX public constructor. */ @@ -81,21 +104,7 @@ my_bool JSNX::SetJpath(PGLOBAL g, char *path, my_bool jb) return true; Value->SetNullable(true); - -#if 0 - if (jb) { - // Path must return a Json item - size_t n = strlen(path); - - if (!n || path[n - 1] != '*') { - Jpath = (char*)PlugSubAlloc(g, NULL, n + 3); - strcat(strcpy(Jpath, path), (n) ? ":*" : "*"); - } else - Jpath = path; - - } else -#endif // 0 - Jpath = path; + Jpath = path; // Parse the json path Parsed = false; @@ -182,7 +191,7 @@ my_bool JSNX::SetArrayOptions(PGLOBAL g, char *p, int i, PSZ nm) // Set concat intermediate string p[n - 1] = 0; - if (trace) + if (trace(1)) htrc("Concat string=%s\n", p + 1); jnp->CncVal = AllocateValue(g, p + 1, TYPE_STRING); @@ -246,7 +255,7 @@ my_bool JSNX::ParseJpath(PGLOBAL g) // Jpath = Name; return true; - if (trace) + if (trace(1)) htrc("ParseJpath %s\n", SVP(Jpath)); if (!(pbuf = PlgDBDup(g, Jpath))) @@ -309,7 +318,7 @@ my_bool JSNX::ParseJpath(PGLOBAL g) Nod = i; MulVal = AllocateValue(g, Value); - if (trace) + if (trace(1)) for (i = 0; i < Nod; i++) htrc("Node(%d) Key=%s Op=%d Rank=%d\n", i, SVP(Nodes[i].Key), Nodes[i].Op, Nodes[i].Rank); @@ -506,13 +515,13 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) vp->Reset(); - if (trace) + if (trace(1)) htrc("CalculateArray size=%d op=%d\n", ars, op); - for (i = 0; i < arp->size(); i++) { + for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); - if (trace) + if (trace(1)) htrc("i=%d nv=%d\n", i, nv); if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) { @@ -525,7 +534,7 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; - if (trace) + if (trace(1)) htrc("jvp=%s null=%d\n", jvp->GetString(g), jvp->IsNull() ? 1 : 0); @@ -561,7 +570,7 @@ PVAL JSNX::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); - if (trace) { + if (trace(1)) { char buf(32); htrc("vp='%s' err=%d\n", @@ -753,6 +762,7 @@ my_bool JSNX::WriteValue(PGLOBAL g, PJVAL jvalp) /*********************************************************************************/ PSZ JSNX::Locate(PGLOBAL g, PJSON jsp, PJVAL jvp, int k) { + PSZ str = NULL; my_bool b = false, err = true; g->Message[0] = 0; @@ -762,37 +772,47 @@ PSZ JSNX::Locate(PGLOBAL g, PJSON jsp, PJVAL jvp, int k) return NULL; } // endif jsp - // Write to the path string - Jp = new(g) JOUTSTR(g); - Jp->WriteChr('$'); - Jvalp = jvp; - K = k; + try { + // Write to the path string + Jp = new(g) JOUTSTR(g); + Jp->WriteChr('$'); + Jvalp = jvp; + K = k; - switch (jsp->GetType()) { - case TYPE_JAR: - err = LocateArray((PJAR)jsp); - break; - case TYPE_JOB: - err = LocateObject((PJOB)jsp); - break; - case TYPE_JVAL: - err = LocateValue((PJVAL)jsp); - break; - default: - err = true; + switch (jsp->GetType()) { + case TYPE_JAR: + err = LocateArray((PJAR)jsp); + break; + case TYPE_JOB: + err = LocateObject((PJOB)jsp); + break; + case TYPE_JVAL: + err = LocateValue((PJVAL)jsp); + break; + default: + err = true; } // endswitch Type - if (err) { - if (!g->Message[0]) - strcpy(g->Message, "Invalid json tree"); + if (err) { + if (!g->Message[0]) + strcpy(g->Message, "Invalid json tree"); - } else if (Found) { - Jp->WriteChr('\0'); - PlugSubAlloc(g, NULL, Jp->N); - return Jp->Strp; - } // endif's + } else if (Found) { + Jp->WriteChr('\0'); + PlugSubAlloc(g, NULL, Jp->N); + str = Jp->Strp; + } // endif's - return NULL; + } catch (int n) { + if (trace(1)) + htrc("Exception %d: %s\n", n, g->Message); + + PUSH_WARNING(g->Message); + } catch (const char *msg) { + strcpy(g->Message, msg); + } // end catch + + return str; } // end of Locate /*********************************************************************************/ @@ -864,53 +884,62 @@ my_bool JSNX::LocateValue(PJVAL jvp) /*********************************************************************************/ PSZ JSNX::LocateAll(PGLOBAL g, PJSON jsp, PJVAL jvp, int mx) { + PSZ str = NULL; my_bool b = false, err = true; - PJPN jnp = (PJPN)PlugSubAlloc(g, NULL, sizeof(JPN) * mx); - - memset(jnp, 0, sizeof(JPN) * mx); - g->Message[0] = 0; - + PJPN jnp; + if (!jsp) { strcpy(g->Message, "Null json tree"); return NULL; } // endif jsp - // Write to the path string - Jp = new(g)JOUTSTR(g); - Jvalp = jvp; - Imax = mx - 1; - Jpnp = jnp; - Jp->WriteChr('['); + try { + jnp = (PJPN)PlugSubAlloc(g, NULL, sizeof(JPN) * mx); + memset(jnp, 0, sizeof(JPN) * mx); + g->Message[0] = 0; - switch (jsp->GetType()) { - case TYPE_JAR: - err = LocateArrayAll((PJAR)jsp); - break; - case TYPE_JOB: - err = LocateObjectAll((PJOB)jsp); - break; - case TYPE_JVAL: - err = LocateValueAll((PJVAL)jsp); - break; - default: - err = true; - } // endswitch Type + // Write to the path string + Jp = new(g)JOUTSTR(g); + Jvalp = jvp; + Imax = mx - 1; + Jpnp = jnp; + Jp->WriteChr('['); - if (err) { - if (!g->Message[0]) + switch (jsp->GetType()) { + case TYPE_JAR: + err = LocateArrayAll((PJAR)jsp); + break; + case TYPE_JOB: + err = LocateObjectAll((PJOB)jsp); + break; + case TYPE_JVAL: + err = LocateValueAll((PJVAL)jsp); + break; + default: + err = true; + } // endswitch Type + + if (!err) { + if (Jp->N > 1) + Jp->N--; + + Jp->WriteChr(']'); + Jp->WriteChr('\0'); + PlugSubAlloc(g, NULL, Jp->N); + str = Jp->Strp; + } else if (!g->Message[0]) strcpy(g->Message, "Invalid json tree"); - return NULL; - } else { - if (Jp->N > 1) - Jp->N--; + } catch (int n) { + if (trace(1)) + htrc("Exception %d: %s\n", n, g->Message); - Jp->WriteChr(']'); - Jp->WriteChr('\0'); - PlugSubAlloc(g, NULL, Jp->N); - return Jp->Strp; - } // endif's + PUSH_WARNING(g->Message); + } catch (const char *msg) { + strcpy(g->Message, msg); + } // end catch + return str; } // end of LocateAll /*********************************************************************************/ @@ -1137,6 +1166,72 @@ inline void JsonFreeMem(PGLOBAL g) PlugExit(g); } /* end of JsonFreeMem */ +/*********************************************************************************/ +/* SubAlloc a new JSON item with protection against memory exhaustion. */ +/*********************************************************************************/ +static PJSON JsonNew(PGLOBAL g, JTYP type) +{ + PJSON jsp = NULL; + + try { + switch (type) { + case TYPE_JAR: + jsp = new(g) JARRAY; + break; + case TYPE_JOB: + jsp = new(g) JOBJECT; + break; + default: + break; + } // endswitch type + + } catch (...) { + if (trace(1023)) + htrc("%s\n", g->Message); + + PUSH_WARNING(g->Message); + } // end try/catch + + return jsp; +} /* end of JsonNew */ + +/*********************************************************************************/ +/* SubAlloc a new JValue with protection against memory exhaustion. */ +/*********************************************************************************/ +static PJVAL JvalNew(PGLOBAL g, JTYP type, void *vp) +{ + PJVAL jvp = NULL; + + try { + if (!vp) + jvp = new (g) JVALUE; + else switch (type) { + case TYPE_JSON: + case TYPE_JVAL: + case TYPE_JAR: + case TYPE_JOB: + jvp = new(g) JVALUE((PJSON)vp); + break; + case TYPE_VAL: + jvp = new(g) JVALUE(g, (PVAL)vp); + break; + case TYPE_STRG: + jvp = new(g) JVALUE(g, (PCSZ)vp); + break; + default: + break; + } // endswitch type + + } catch (...) { + if (trace(1023)) + htrc("%s\n", g->Message); + + PUSH_WARNING(g->Message); + } // end try/catch + + return jvp; +} /* end of JsonNew */ + /*********************************************************************************/ /* Allocate and initialise the memory area. */ /*********************************************************************************/ @@ -1289,8 +1384,11 @@ static int *GetIntArgPtr(PGLOBAL g, UDF_ARGS *args, uint& n) for (uint i = n; i < args->arg_count; i++) if (args->arg_type[i] == INT_RESULT) { if (args->args[i]) { - x = (int*)PlugSubAlloc(g, NULL, sizeof(int)); - *x = (int)*(longlong*)args->args[i]; + if ((x = (int*)PlgDBSubAlloc(g, NULL, sizeof(int)))) + *x = (int)*(longlong*)args->args[i]; + else + PUSH_WARNING(g->Message); + } // endif args n = i + 1; @@ -1303,7 +1401,7 @@ static int *GetIntArgPtr(PGLOBAL g, UDF_ARGS *args, uint& n) /*********************************************************************************/ /* Returns not 0 if the argument is a JSON item or file name. */ /*********************************************************************************/ -static int IsJson(UDF_ARGS *args, uint i) +static int IsJson(UDF_ARGS *args, uint i, bool b) { int n = 0; @@ -1320,8 +1418,20 @@ static int IsJson(UDF_ARGS *args, uint i) else n = 2; // A file name may have been returned - } else if (!strnicmp(args->attributes[i], "Jfile_", 6)) + } else if (!strnicmp(args->attributes[i], "Jfile_", 6)) { n = 2; // arg is a json file name + } else if (b) { + char *sap; + PGLOBAL g = PlugInit(NULL, args->lengths[i] * M + 1024); + + JsonSubSet(g); + sap = MakePSZ(g, args, i); + + if (ParseJson(g, sap, strlen(sap))) + n = 4; + + JsonFreeMem(g); + } // endif's return n; } // end of IsJson @@ -1534,10 +1644,14 @@ static PSZ MakePSZ(PGLOBAL g, UDF_ARGS *args, int i) { if (args->arg_count > (unsigned)i && args->args[i]) { int n = args->lengths[i]; - PSZ s = (PSZ)PlugSubAlloc(g, NULL, n + 1); + PSZ s = (PSZ)PlgDBSubAlloc(g, NULL, n + 1); + + if (s) { + memcpy(s, args->args[i], n); + s[n] = 0; + } else + PUSH_WARNING(g->Message); - memcpy(s, args->args[i], n); - s[n] = 0; return s; } else return NULL; @@ -1574,9 +1688,12 @@ static PCSZ MakeKey(PGLOBAL g, UDF_ARGS *args, int i) return "Key"; if (!b) { - p = (PSZ)PlugSubAlloc(g, NULL, n + 1); - memcpy(p, s, n); - p[n] = 0; + if ((p = (PSZ)PlgDBSubAlloc(g, NULL, n + 1))) { + memcpy(p, s, n); + p[n] = 0; + } else + PUSH_WARNING(g->Message); + s = p; } // endif b @@ -1665,15 +1782,16 @@ static char *GetJsonFile(PGLOBAL g, char *fn) return NULL; } // endif len - str = (char*)PlugSubAlloc(g, NULL, len + 1); - - if ((n = read(h, str, len)) < 0) { - sprintf(g->Message, "Error %d reading %d bytes from %s", errno, len, fn); - return NULL; - } // endif n + if ((str = (char*)PlgDBSubAlloc(g, NULL, len + 1))) { + if ((n = read(h, str, len)) < 0) { + sprintf(g->Message, "Error %d reading %d bytes from %s", errno, len, fn); + return NULL; + } // endif n - str[n] = 0; - close(h); + str[n] = 0; + close(h); + } // endif str + return str; } // end of GetJsonFile @@ -1759,6 +1877,41 @@ static PJVAL MakeValue(PGLOBAL g, UDF_ARGS *args, uint i, PJSON *top = NULL) return jvp; } // end of MakeValue +/*********************************************************************************/ +/* Try making a JSON value of the passed type from the passed argument. */ +/*********************************************************************************/ +static PJVAL MakeTypedValue(PGLOBAL g, UDF_ARGS *args, uint i, + JTYP type, PJSON *top = NULL) +{ + char *sap; + PJSON jsp; + PJVAL jvp = MakeValue(g, args, i, top); + + //if (type == TYPE_JSON) { + // if (jvp->GetValType() >= TYPE_JSON) + // return jvp; + + //} else if (jvp->GetValType() == type) + // return jvp; + + if (jvp->GetValType() == TYPE_STRG) { + sap = jvp->GetString(g); + + if ((jsp = ParseJson(g, sap, strlen(sap)))) { + if ((type == TYPE_JSON && jsp->GetType() != TYPE_JVAL) || jsp->GetType() == type) { + if (top) + *top = jsp; + + jvp->SetValue(jsp); + } // endif Type + + } // endif jsp + + } // endif Type + + return jvp; +} // end of MakeTypedValue + /*********************************************************************************/ /* Make a Json value containing the parameter. */ /*********************************************************************************/ @@ -1861,9 +2014,9 @@ my_bool json_array_add_values_init(UDF_INIT *initid, UDF_ARGS *args, char *messa if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); return true; - } else if (!IsJson(args, 0) && args->arg_type[0] != STRING_RESULT) { - strcpy(message, "First argument must be a json string or item"); - return true; + //} else if (!IsJson(args, 0, true)) { + // strcpy(message, "First argument must be a valid json string or item"); + // return true; } else CalcLen(args, false, reslen, memlen); @@ -1891,23 +2044,14 @@ char *json_array_add_values(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!g->Xchk) { if (!CheckMemory(g, initid, args, args->arg_count, true)) { - char *p; PJSON top; PJAR arp; - PJVAL jvp = MakeValue(g, args, 0, &top); + PJVAL jvp = MakeTypedValue(g, args, 0, TYPE_JAR, &top); - if ((p = jvp->GetString(g))) { - if (!(top = ParseJson(g, p, strlen(p)))) { - PUSH_WARNING(g->Message); - return NULL; - } // endif jsp - - jvp->SetValue(top); - } // endif p - if (jvp->GetValType() != TYPE_JAR) { arp = new(g)JARRAY; arp->AddValue(g, jvp); + top = arp; } else arp = jvp->GetArray(); @@ -1915,7 +2059,6 @@ char *json_array_add_values(UDF_INIT *initid, UDF_ARGS *args, char *result, arp->AddValue(g, MakeValue(g, args, i)); arp->InitArray(g); -// str = Serialize(g, arp, NULL, 0); str = MakeResult(g, args, top, args->arg_count); } // endif CheckMemory @@ -1952,10 +2095,10 @@ my_bool json_array_add_init(UDF_INIT *initid, UDF_ARGS *args, char *message) if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); - return true; - } else if (!IsJson(args, 0)) { - strcpy(message, "First argument must be a json item"); - return true; + return true; + //} else if (!IsJson(args, 0, true)) { + // strcpy(message, "First argument is not a valid Json item"); + // return true; } else CalcLen(args, false, reslen, memlen, true); @@ -1994,22 +2137,38 @@ char *json_array_add(UDF_INIT *initid, UDF_ARGS *args, char *result, PJVAL jvp; PJAR arp; - jvp = MakeValue(g, args, 0, &top); + jvp = MakeTypedValue(g, args, 0, TYPE_JSON, &top); jsp = jvp->GetJson(); x = GetIntArgPtr(g, args, n); if (CheckPath(g, args, jsp, jvp, 2)) PUSH_WARNING(g->Message); - else if (jvp && jvp->GetValType() == TYPE_JAR) { + else if (jvp) { PGLOBAL gb = GetMemPtr(g, args, 0); - arp = jvp->GetArray(); - arp->AddValue(gb, MakeValue(gb, args, 1), x); - arp->InitArray(gb); - str = MakeResult(g, args, top, n); + if (jvp->GetValType() != TYPE_JAR) { + if ((arp = (PJAR)JsonNew(gb, TYPE_JAR))) { + arp->AddValue(gb, JvalNew(gb, TYPE_JVAL, jvp)); + jvp->SetValue(arp); + + if (!top) + top = arp; + + } // endif arp + + } else + arp = jvp->GetArray(); + + if (arp) { + arp->AddValue(gb, MakeValue(gb, args, 1), x); + arp->InitArray(gb); + str = MakeResult(g, args, top, n); + } else + PUSH_WARNING(gb->Message); + } else { - PUSH_WARNING("First argument target is not an array"); -// if (g->Mrr) *error = 1; (only if no path) + PUSH_WARNING("Target is not an array"); + // if (g->Mrr) *error = 1; (only if no path) } // endif jvp } // endif CheckMemory @@ -2048,9 +2207,6 @@ my_bool json_array_delete_init(UDF_INIT *initid, UDF_ARGS *args, char *message) if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); return true; - } else if (!IsJson(args, 0)) { - strcpy(message, "First argument must be a json item"); - return true; } else CalcLen(args, false, reslen, memlen, true); @@ -2087,7 +2243,7 @@ char *json_array_delete(UDF_INIT *initid, UDF_ARGS *args, char *result, uint n = 1; PJSON top; PJAR arp; - PJVAL jvp = MakeValue(g, args, 0, &top); + PJVAL jvp = MakeTypedValue(g, args, 0, TYPE_JSON, &top); if (!(x = GetIntArgPtr(g, args, n))) PUSH_WARNING("Missing or null array index"); @@ -2186,9 +2342,14 @@ long long jsonsum_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *err if (g->N) { // Keep result of constant function - long long *np = (long long*)PlugSubAlloc(g, NULL, sizeof(long long)); - *np = n; - g->Activityp = (PACTIVITY)np; + long long *np; + + if ((np = (long long*)PlgDBSubAlloc(g, NULL, sizeof(long long)))) { + *np = n; + g->Activityp = (PACTIVITY)np; + } else + PUSH_WARNING(g->Message); + } // endif const_item return n; @@ -2252,13 +2413,21 @@ double jsonsum_real(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error } else { *error = 1; n = -1.0; - } // end of CheckMemory + } // endif CheckMemory if (g->N) { // Keep result of constant function - double *np = (double*)PlugSubAlloc(g, NULL, sizeof(double)); - *np = n; - g->Activityp = (PACTIVITY)np; + double *np; + + if ((np = (double*)PlgDBSubAlloc(g, NULL, sizeof(double)))) { + *np = n; + g->Activityp = (PACTIVITY)np; + } else { + PUSH_WARNING(g->Message); + *error = 1; + n = -1.0; + } // endif np + } // endif const_item return n; @@ -2312,13 +2481,20 @@ double jsonavg_real(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error } else { *error = 1; n = -1.0; - } // end of CheckMemory + } // endif CheckMemory if (g->N) { // Keep result of constant function - double *np = (double*)PlugSubAlloc(g, NULL, sizeof(double)); - *np = n; - g->Activityp = (PACTIVITY)np; + double *np; + + if ((np = (double*)PlgDBSubAlloc(g, NULL, sizeof(double)))) { + *np = n; + g->Activityp = (PACTIVITY)np; + } else { + *error = 1; + n = -1.0; + } // endif np + } // endif const_item return n; @@ -2348,12 +2524,15 @@ char *json_make_object(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!g->Xchk) { if (!CheckMemory(g, initid, args, args->arg_count, false, false, true)) { - PJOB objp = new(g)JOBJECT; + PJOB objp; + + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i++) + objp->SetValue(g, MakeValue(g, args, i), MakeKey(g, args, i)); - for (uint i = 0; i < args->arg_count; i++) - objp->SetValue(g, MakeValue(g, args, i), MakeKey(g, args, i)); + str = Serialize(g, objp, NULL, 0); + } // endif objp - str = Serialize(g, objp, NULL, 0); } // endif CheckMemory if (!str) @@ -2394,13 +2573,16 @@ char *json_object_nonull(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!g->Xchk) { if (!CheckMemory(g, initid, args, args->arg_count, false, true)) { PJVAL jvp; - PJOB objp = new(g)JOBJECT; + PJOB objp; + + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i++) + if (!(jvp = MakeValue(g, args, i))->IsNull()) + objp->SetValue(g, jvp, MakeKey(g, args, i)); - for (uint i = 0; i < args->arg_count; i++) - if (!(jvp = MakeValue(g, args, i))->IsNull()) - objp->SetValue(g, jvp, MakeKey(g, args, i)); + str = Serialize(g, objp, NULL, 0); + } // endif objp - str = Serialize(g, objp, NULL, 0); } // endif CheckMemory if (!str) @@ -2444,12 +2626,15 @@ char *json_object_key(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!g->Xchk) { if (!CheckMemory(g, initid, args, args->arg_count, false, true)) { - PJOB objp = new(g)JOBJECT; + PJOB objp; - for (uint i = 0; i < args->arg_count; i += 2) - objp->SetValue(g, MakeValue(g, args, i+1), MakePSZ(g, args, i)); + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i += 2) + objp->SetValue(g, MakeValue(g, args, i + 1), MakePSZ(g, args, i)); + + str = Serialize(g, objp, NULL, 0); + } // endif objp - str = Serialize(g, objp, NULL, 0); } // endif CheckMemory if (!str) @@ -2731,6 +2916,82 @@ void json_object_list_deinit(UDF_INIT* initid) JsonFreeMem((PGLOBAL)initid->ptr); } // end of json_object_list_deinit +/*********************************************************************************/ +/* Returns an array of the Json object values. */ +/*********************************************************************************/ +my_bool json_object_values_init(UDF_INIT *initid, UDF_ARGS *args, char *message) +{ + unsigned long reslen, memlen; + + if (args->arg_count != 1) { + strcpy(message, "This function must have 1 argument"); + return true; + } else if (!IsJson(args, 0) && args->arg_type[0] != STRING_RESULT) { + strcpy(message, "Argument must be a json object"); + return true; + } else + CalcLen(args, false, reslen, memlen); + + return JsonInit(initid, args, message, true, reslen, memlen); +} // end of json_object_list_init + +char *json_object_values(UDF_INIT *initid, UDF_ARGS *args, char *result, + unsigned long *res_length, char *is_null, char *error) +{ + char *str = NULL; + PGLOBAL g = (PGLOBAL)initid->ptr; + + if (!g->N) { + if (!CheckMemory(g, initid, args, 1, true, true)) { + char *p; + PJSON jsp; + PJVAL jvp = MakeValue(g, args, 0); + + if ((p = jvp->GetString(g))) { + if (!(jsp = ParseJson(g, p, strlen(p)))) { + PUSH_WARNING(g->Message); + return NULL; + } // endif jsp + + } else + jsp = jvp->GetJson(); + + if (jsp->GetType() == TYPE_JOB) { + PJAR jarp = ((PJOB)jsp)->GetValList(g); + + if (!(str = Serialize(g, jarp, NULL, 0))) + PUSH_WARNING(g->Message); + + } else { + PUSH_WARNING("First argument is not an object"); + if (g->Mrr) *error = 1; + } // endif jvp + + } // endif CheckMemory + + if (initid->const_item) { + // Keep result of constant function + g->Xchk = str; + g->N = 1; // str can be NULL + } // endif const_item + + } else + str = (char*)g->Xchk; + + if (!str) { + *is_null = 1; + *res_length = 0; + } else + *res_length = strlen(str); + + return str; +} // end of json_object_values + +void json_object_values_deinit(UDF_INIT* initid) +{ + JsonFreeMem((PGLOBAL)initid->ptr); +} // end of json_object_values_deinit + /*********************************************************************************/ /* Set the value of JsonGrpSize. */ /*********************************************************************************/ @@ -2795,7 +3056,7 @@ my_bool json_array_grp_init(UDF_INIT *initid, UDF_ARGS *args, char *message) PGLOBAL g = (PGLOBAL)initid->ptr; PlugSubSet(g, g->Sarea, g->Sarea_Size); - g->Activityp = (PACTIVITY)new(g) JARRAY; + g->Activityp = (PACTIVITY)JsonNew(g, TYPE_JAR); g->N = (int)n; return false; } // end of json_array_grp_init @@ -2805,7 +3066,7 @@ void json_array_grp_add(UDF_INIT *initid, UDF_ARGS *args, char*, char*) PGLOBAL g = (PGLOBAL)initid->ptr; PJAR arp = (PJAR)g->Activityp; - if (g->N-- > 0) + if (arp && g->N-- > 0) arp->AddValue(g, MakeValue(g, args, 0)); } // end of json_array_grp_add @@ -2820,12 +3081,16 @@ char *json_array_grp(UDF_INIT *initid, UDF_ARGS *, char *result, if (g->N < 0) PUSH_WARNING("Result truncated to json_grp_size values"); - arp->InitArray(g); + if (arp) { + arp->InitArray(g); + str = Serialize(g, arp, NULL, 0); + } else + str = NULL; - if (!(str = Serialize(g, arp, NULL, 0))) - str = strcpy(result, g->Message); + if (!str) + str = strcpy(result, g->Message); - *res_length = strlen(str); + *res_length = strlen(str); return str; } // end of json_array_grp @@ -2834,8 +3099,8 @@ void json_array_grp_clear(UDF_INIT *initid, char*, char*) PGLOBAL g = (PGLOBAL)initid->ptr; PlugSubSet(g, g->Sarea, g->Sarea_Size); - g->Activityp = (PACTIVITY)new(g) JARRAY; - g->N = GetJsonGroupSize(); + g->Activityp = (PACTIVITY)JsonNew(g, TYPE_JAR); + g->N = GetJsonGroupSize(); } // end of json_array_grp_clear void json_array_grp_deinit(UDF_INIT* initid) @@ -2868,7 +3133,7 @@ my_bool json_object_grp_init(UDF_INIT *initid, UDF_ARGS *args, char *message) PGLOBAL g = (PGLOBAL)initid->ptr; PlugSubSet(g, g->Sarea, g->Sarea_Size); - g->Activityp = (PACTIVITY)new(g) JOBJECT; + g->Activityp = (PACTIVITY)JsonNew(g, TYPE_JOB); g->N = (int)n; return false; } // end of json_object_grp_init @@ -2893,7 +3158,7 @@ char *json_object_grp(UDF_INIT *initid, UDF_ARGS *, char *result, if (g->N < 0) PUSH_WARNING("Result truncated to json_grp_size values"); - if (!(str = Serialize(g, objp, NULL, 0))) + if (!objp || !(str = Serialize(g, objp, NULL, 0))) str = strcpy(result, g->Message); *res_length = strlen(str); @@ -2905,8 +3170,8 @@ void json_object_grp_clear(UDF_INIT *initid, char*, char*) PGLOBAL g = (PGLOBAL)initid->ptr; PlugSubSet(g, g->Sarea, g->Sarea_Size); - g->Activityp = (PACTIVITY)new(g) JOBJECT; - g->N = GetJsonGroupSize(); + g->Activityp = (PACTIVITY)JsonNew(g, TYPE_JOB); + g->N = GetJsonGroupSize(); } // end of json_object_grp_clear void json_object_grp_deinit(UDF_INIT* initid) @@ -3051,7 +3316,7 @@ my_bool json_get_item_init(UDF_INIT *initid, UDF_ARGS *args, char *message) char *json_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long *res_length, char *is_null, char *) { - char *p, *path, *str = NULL; + char *path, *str = NULL; PJSON jsp; PJVAL jvp; PJSNX jsx; @@ -3067,17 +3332,10 @@ char *json_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, if (CheckMemory(g, initid, args, 1, true, true)) { PUSH_WARNING("CheckMemory error"); goto fin; - } else - jvp = MakeValue(g, args, 0); + } // endif CheckMemory - if ((p = jvp->GetString(g))) { - if (!(jsp = ParseJson(g, p, strlen(p)))) { - PUSH_WARNING(g->Message); - return NULL; - } // endif jsp - - } else - jsp = jvp->GetJson(); + jvp = MakeTypedValue(g, args, 0, TYPE_JSON); + jsp = jvp->GetJson(); if (g->Mrr) { // First argument is a constant g->Xchk = jsp; @@ -3088,9 +3346,9 @@ char *json_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g) JSNX(g, jsp, TYPE_STRING, initid->max_length); + jsx = JsnxNew(g, jsp, TYPE_STRING, initid->max_length); - if (jsx->SetJpath(g, path, true)) { + if (!jsx || jsx->SetJpath(g, path, true)) { PUSH_WARNING(g->Message); *is_null = 1; return NULL; @@ -3203,9 +3461,9 @@ char *jsonget_string(UDF_INIT *initid, UDF_ARGS *args, char *result, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g) JSNX(g, jsp, TYPE_STRING, initid->max_length); + jsx = JsnxNew(g, jsp, TYPE_STRING, initid->max_length); - if (jsx->SetJpath(g, path)) { + if (!jsx || jsx->SetJpath(g, path)) { PUSH_WARNING(g->Message); goto err; } // endif SetJpath @@ -3220,7 +3478,7 @@ char *jsonget_string(UDF_INIT *initid, UDF_ARGS *args, char *result, g->Activityp = (PACTIVITY)str; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); PUSH_WARNING(g->Message); @@ -3320,9 +3578,9 @@ long long jsonget_int(UDF_INIT *initid, UDF_ARGS *args, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g) JSNX(g, jsp, TYPE_BIGINT); + jsx = JsnxNew(g, jsp, TYPE_BIGINT); - if (jsx->SetJpath(g, path)) { + if (!jsx || jsx->SetJpath(g, path)) { PUSH_WARNING(g->Message); *is_null = 1; return 0; @@ -3339,9 +3597,14 @@ long long jsonget_int(UDF_INIT *initid, UDF_ARGS *args, if (initid->const_item) { // Keep result of constant function - long long *np = (long long*)PlugSubAlloc(g, NULL, sizeof(long long)); - *np = n; - g->Activityp = (PACTIVITY)np; + long long *np = (long long*)PlgDBSubAlloc(g, NULL, sizeof(long long)); + + if (np) { + *np = n; + g->Activityp = (PACTIVITY)np; + } else + PUSH_WARNING(g->Message); + } // endif const_item return n; @@ -3434,9 +3697,9 @@ double jsonget_real(UDF_INIT *initid, UDF_ARGS *args, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g) JSNX(g, jsp, TYPE_DOUBLE); + jsx = JsnxNew(g, jsp, TYPE_DOUBLE); - if (jsx->SetJpath(g, path)) { + if (!jsx || jsx->SetJpath(g, path)) { PUSH_WARNING(g->Message); *is_null = 1; return 0.0; @@ -3453,9 +3716,17 @@ double jsonget_real(UDF_INIT *initid, UDF_ARGS *args, if (initid->const_item) { // Keep result of constant function - double *dp = (double*)PlugSubAlloc(g, NULL, sizeof(double)); - *dp = d; - g->Activityp = (PACTIVITY)dp; + double *dp; + + if ((dp = (double*)PlgDBSubAlloc(g, NULL, sizeof(double)))) { + *dp = d; + g->Activityp = (PACTIVITY)dp; + } else { + PUSH_WARNING(g->Message); + *is_null = 1; + return 0.0; + } // endif dp + } // endif const_item return d; @@ -3501,7 +3772,7 @@ my_bool jsonlocate_init(UDF_INIT *initid, UDF_ARGS *args, char *message) char *jsonlocate(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long *res_length, char *is_null, char *error) { - char *p, *path = NULL; + char *path = NULL; int k; PJVAL jvp, jvp2; PJSON jsp; @@ -3529,16 +3800,20 @@ char *jsonlocate(UDF_INIT *initid, UDF_ARGS *args, char *result, *error = 1; goto err; } else - jvp = MakeValue(g, args, 0); + jvp = MakeTypedValue(g, args, 0, TYPE_JSON); - if ((p = jvp->GetString(g))) { - if (!(jsp = ParseJson(g, p, strlen(p)))) { - PUSH_WARNING(g->Message); - goto err; - } // endif jsp + //if ((p = jvp->GetString(g))) { + // if (!(jsp = ParseJson(g, p, strlen(p)))) { + // PUSH_WARNING(g->Message); + // goto err; + // } // endif jsp + //} else + // jsp = jvp->GetJson(); - } else - jsp = jvp->GetJson(); + if (!(jsp = jvp->GetJson())) { + PUSH_WARNING("First argument is not a valid JSON item"); + goto err; + } // endif jsp if (g->Mrr) { // First argument is a constant g->Xchk = jsp; @@ -3561,7 +3836,7 @@ char *jsonlocate(UDF_INIT *initid, UDF_ARGS *args, char *result, g->Activityp = (PACTIVITY)path; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); PUSH_WARNING(g->Message); @@ -3686,7 +3961,7 @@ char *json_locate_all(UDF_INIT *initid, UDF_ARGS *args, char *result, g->Activityp = (PACTIVITY)path; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); PUSH_WARNING(g->Message); @@ -3845,9 +4120,9 @@ long long jsoncontains_path(UDF_INIT *initid, UDF_ARGS *args, char *result, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g)JSNX(g, jsp, TYPE_BIGINT); + jsx = JsnxNew(g, jsp, TYPE_BIGINT); - if (jsx->SetJpath(g, path)) { + if (!jsx || jsx->SetJpath(g, path)) { PUSH_WARNING(g->Message); goto err; } // endif SetJpath @@ -3856,9 +4131,14 @@ long long jsoncontains_path(UDF_INIT *initid, UDF_ARGS *args, char *result, if (initid->const_item) { // Keep result of constant function - long long *np = (long long*)PlugSubAlloc(g, NULL, sizeof(long long)); - *np = n; - g->Activityp = (PACTIVITY)np; + long long *np = (long long*)PlgDBSubAlloc(g, NULL, sizeof(long long)); + + if (np) { + *np = n; + g->Activityp = (PACTIVITY)np; + } else + PUSH_WARNING(g->Message); + } // endif const_item return n; @@ -3961,7 +4241,7 @@ char *handle_item(UDF_INIT *initid, UDF_ARGS *args, char *result, g->Activityp = (PACTIVITY)str; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); PUSH_WARNING(g->Message); @@ -4335,18 +4615,23 @@ char *jbin_array(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!bsp || bsp->Changed) { if (!CheckMemory(g, initid, args, args->arg_count, false)) { - PJAR arp = new(g) JARRAY; + PJAR arp; - bsp = JbinAlloc(g, args, initid->max_length, arp); - strcat(bsp->Msg, " array"); + if ((arp = (PJAR)JsonNew(g, TYPE_JAR)) && + (bsp = JbinAlloc(g, args, initid->max_length, arp))) { + strcat(bsp->Msg, " array"); - for (uint i = 0; i < args->arg_count; i++) - arp->AddValue(g, MakeValue(g, args, i)); + for (uint i = 0; i < args->arg_count; i++) + arp->AddValue(g, MakeValue(g, args, i)); + + arp->InitArray(g); + } // endif arp && bsp - arp->InitArray(g); } else - if ((bsp = JbinAlloc(g, args, initid->max_length, NULL))) - strncpy(bsp->Msg, g->Message, 139); + bsp = NULL; + + if (!bsp && (bsp = JbinAlloc(g, args, initid->max_length, NULL))) + strncpy(bsp->Msg, g->Message, 139); // Keep result of constant function g->Xchk = (initid->const_item) ? bsp : NULL; @@ -4377,9 +4662,6 @@ my_bool jbin_array_add_values_init(UDF_INIT *initid, UDF_ARGS *args, char *messa if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); return true; - } else if (!IsJson(args, 0) && args->arg_type[0] != STRING_RESULT) { - strcpy(message, "First argument must be a json string or item"); - return true; } else CalcLen(args, false, reslen, memlen); @@ -4394,24 +4676,17 @@ char *jbin_array_add_values(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!bsp || bsp->Changed) { if (!CheckMemory(g, initid, args, args->arg_count, true)) { - char *p; PJSON top; PJAR arp; - PJVAL jvp = MakeValue(g, args, 0, &top); + PJVAL jvp = MakeTypedValue(g, args, 0, TYPE_JAR, &top); PGLOBAL gb = GetMemPtr(g, args, 0); - if ((p = jvp->GetString(g))) { - if (!(top = ParseJson(g, p, strlen(p)))) { - PUSH_WARNING(g->Message); - return NULL; - } // endif jsp - - jvp->SetValue(top); - } // endif p - if (jvp->GetValType() != TYPE_JAR) { - arp = new(gb)JARRAY; - arp->AddValue(gb, jvp); + if ((arp = (PJAR)JsonNew(gb, TYPE_JAR))) { + arp->AddValue(gb, jvp); + top = arp; + } // endif arp + } else arp = jvp->GetArray(); @@ -4458,9 +4733,9 @@ my_bool jbin_array_add_init(UDF_INIT *initid, UDF_ARGS *args, char *message) if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); return true; - } else if (!IsJson(args, 0)) { - strcpy(message, "First argument must be a json item"); - return true; + //} else if (!IsJson(args, 0)) { + // strcpy(message, "First argument must be a json item"); + // return true; } else CalcLen(args, false, reslen, memlen, true); @@ -4488,20 +4763,32 @@ char *jbin_array_add(UDF_INIT *initid, UDF_ARGS *args, char *result, PJVAL jvp; PJAR arp; - jvp = MakeValue(g, args, 0, &top); -// jsp = jvp->GetJson(); + jvp = MakeTypedValue(g, args, 0, TYPE_JSON, &top); + // jsp = jvp->GetJson(); x = GetIntArgPtr(g, args, n); if (CheckPath(g, args, top, jvp, n)) PUSH_WARNING(g->Message); - else if (jvp && jvp->GetValType() == TYPE_JAR) { + else if (jvp) { PGLOBAL gb = GetMemPtr(g, args, 0); - arp = jvp->GetArray(); + if (jvp->GetValType() != TYPE_JAR) { + if ((arp = (PJAR)JsonNew(gb, TYPE_JAR))) { + arp->AddValue(gb, (PJVAL)JvalNew(gb, TYPE_JVAL, jvp)); + jvp->SetValue(arp); + + if (!top) + top = arp; + + } // endif arp + + } else + arp = jvp->GetArray(); + arp->AddValue(gb, MakeValue(gb, args, 1), x); arp->InitArray(gb); } else { - PUSH_WARNING("First argument is not an array"); + PUSH_WARNING("First argument target is not an array"); // if (g->Mrr) *error = 1; (only if no path) } // endif jvp @@ -4539,9 +4826,6 @@ my_bool jbin_array_delete_init(UDF_INIT *initid, UDF_ARGS *args, char *message) if (args->arg_count < 2) { strcpy(message, "This function must have at least 2 arguments"); return true; - } else if (!IsJson(args, 0)) { - strcpy(message, "First argument must be a json item"); - return true; } else CalcLen(args, false, reslen, memlen, true); @@ -4565,7 +4849,7 @@ char *jbin_array_delete(UDF_INIT *initid, UDF_ARGS *args, char *result, int *x; uint n = 1; PJAR arp; - PJVAL jvp = MakeValue(g, args, 0, &top); + PJVAL jvp = MakeTypedValue(g, args, 0, TYPE_JSON, &top); if (CheckPath(g, args, top, jvp, 1)) PUSH_WARNING(g->Message); @@ -4578,8 +4862,8 @@ char *jbin_array_delete(UDF_INIT *initid, UDF_ARGS *args, char *result, PUSH_WARNING("Missing or null array index"); } else { - PUSH_WARNING("First argument is not an array"); - if (g->Mrr) *error = 1; + PUSH_WARNING("First argument target is not an array"); +// if (g->Mrr) *error = 1; } // endif jvp } // endif CheckMemory @@ -4625,13 +4909,18 @@ char *jbin_object(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!bsp || bsp->Changed) { if (!CheckMemory(g, initid, args, args->arg_count, true)) { - PJOB objp = new(g)JOBJECT; + PJOB objp; - for (uint i = 0; i < args->arg_count; i++) - objp->SetValue(g, MakeValue(g, args, i), MakeKey(g, args, i)); + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i++) + objp->SetValue(g, MakeValue(g, args, i), MakeKey(g, args, i)); - if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) - strcat(bsp->Msg, " object"); + + if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) + strcat(bsp->Msg, " object"); + + } else + bsp = NULL; } else if ((bsp = JbinAlloc(g, args, initid->max_length, NULL))) @@ -4676,14 +4965,18 @@ char *jbin_object_nonull(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!bsp || bsp->Changed) { if (!CheckMemory(g, initid, args, args->arg_count, false, true)) { PJVAL jvp; - PJOB objp = new(g)JOBJECT; + PJOB objp; - for (uint i = 0; i < args->arg_count; i++) - if (!(jvp = MakeValue(g, args, i))->IsNull()) - objp->SetValue(g, jvp, MakeKey(g, args, i)); + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i++) + if (!(jvp = MakeValue(g, args, i))->IsNull()) + objp->SetValue(g, jvp, MakeKey(g, args, i)); - if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) - strcat(bsp->Msg, " object"); + if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) + strcat(bsp->Msg, " object"); + + } else + bsp = NULL; } else if ((bsp = JbinAlloc(g, args, initid->max_length, NULL))) @@ -4732,13 +5025,17 @@ char *jbin_object_key(UDF_INIT *initid, UDF_ARGS *args, char *result, if (!bsp || bsp->Changed) { if (!CheckMemory(g, initid, args, args->arg_count, false, true)) { - PJOB objp = new(g)JOBJECT; + PJOB objp; - for (uint i = 0; i < args->arg_count; i += 2) - objp->SetValue(g, MakeValue(g, args, i+1), MakePSZ(g, args, i)); + if ((objp = (PJOB)JsonNew(g, TYPE_JOB))) { + for (uint i = 0; i < args->arg_count; i += 2) + objp->SetValue(g, MakeValue(g, args, i + 1), MakePSZ(g, args, i)); - if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) - strcat(bsp->Msg, " object"); + if ((bsp = JbinAlloc(g, args, initid->max_length, objp))) + strcat(bsp->Msg, " object"); + + } else + bsp = NULL; } else if ((bsp = JbinAlloc(g, args, initid->max_length, NULL))) @@ -4989,7 +5286,7 @@ my_bool jbin_get_item_init(UDF_INIT *initid, UDF_ARGS *args, char *message) char *jbin_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long *res_length, char *is_null, char *error) { - char *p, *path; + char *path; PJSON jsp; PJSNX jsx; PJVAL jvp; @@ -5006,17 +5303,10 @@ char *jbin_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, if (CheckMemory(g, initid, args, 1, true, true)) { PUSH_WARNING("CheckMemory error"); goto fin; - } else - jvp = MakeValue(g, args, 0); + } // endif CheckMemory - if ((p = jvp->GetString(g))) { - if (!(jsp = ParseJson(g, p, strlen(p)))) { - PUSH_WARNING(g->Message); - goto fin; - } // endif jsp - - } else - jsp = jvp->GetJson(); + jvp = MakeTypedValue(g, args, 0, TYPE_JSON); + jsp = jvp->GetJson(); if (g->Mrr) { // First argument is a constant g->Xchk = jsp; @@ -5027,16 +5317,16 @@ char *jbin_get_item(UDF_INIT *initid, UDF_ARGS *args, char *result, jsp = (PJSON)g->Xchk; path = MakePSZ(g, args, 1); - jsx = new(g) JSNX(g, jsp, TYPE_STRING, initid->max_length); + jsx = JsnxNew(g, jsp, TYPE_STRING, initid->max_length); - if (jsx->SetJpath(g, path, false)) { + if (!jsx || jsx->SetJpath(g, path, false)) { PUSH_WARNING(g->Message); goto fin; } // endif SetJpath // Get the json tree if ((jvp = jsx->GetRowValue(g, jsp, 0, false))) { - jsp = (jvp->GetJsp()) ? jvp->GetJsp() : new(g) JVALUE(g, jvp->GetValue()); + jsp = (jvp->GetJsp()) ? jvp->GetJsp() : JvalNew(g, TYPE_VAL, jvp->GetValue()); if ((bsp = JbinAlloc(g, args, initid->max_length, jsp))) strcat(bsp->Msg, " item"); diff --git a/storage/connect/jsonudf.h b/storage/connect/jsonudf.h index cd3b9768f7a..23e8c0e1aed 100644 --- a/storage/connect/jsonudf.h +++ b/storage/connect/jsonudf.h @@ -89,6 +89,10 @@ extern "C" { DllExport char *json_object_list(UDF_EXEC_ARGS); DllExport void json_object_list_deinit(UDF_INIT*); + DllExport my_bool json_object_values_init(UDF_INIT*, UDF_ARGS*, char*); + DllExport char *json_object_values(UDF_EXEC_ARGS); + DllExport void json_object_values_deinit(UDF_INIT*); + DllExport my_bool jsonset_grp_size_init(UDF_INIT*, UDF_ARGS*, char*); DllExport long long jsonset_grp_size(UDF_INIT*, UDF_ARGS*, char*, char*); diff --git a/storage/connect/libdoc.cpp b/storage/connect/libdoc.cpp index 700d247da38..9b30b315441 100644 --- a/storage/connect/libdoc.cpp +++ b/storage/connect/libdoc.cpp @@ -194,7 +194,7 @@ void xtrc(char const *fmt, ...) { va_list ap; va_start (ap, fmt); - + ; //vfprintf(stderr, fmt, ap); vsprintf(s, fmt, ap); if (s[strlen(s)-1] == '\n') @@ -210,7 +210,7 @@ static xmlStrdupFunc Strdup; void xmlMyFree(void *mem) { - if (trace) { + if (trace(1)) { htrc("%.4d Freeing at %p %s\n", ++m, mem, s); *s = 0; } // endif trace @@ -220,7 +220,7 @@ void xmlMyFree(void *mem) void *xmlMyMalloc(size_t size) { void *p = Malloc(size); - if (trace) { + if (trace(1)) { htrc("%.4d Allocating %.5d at %p %s\n", ++m, size, p, s); *s = 0; } // endif trace @@ -230,7 +230,7 @@ void *xmlMyMalloc(size_t size) void *xmlMyMallocAtomic(size_t size) { void *p = MallocA(size); - if (trace) { + if (trace(1)) { htrc("%.4d Atom alloc %.5d at %p %s\n", ++m, size, p, s); *s = 0; } // endif trace @@ -240,7 +240,7 @@ void *xmlMyMallocAtomic(size_t size) void *xmlMyRealloc(void *mem, size_t size) { void *p = Realloc(mem, size); - if (trace) { + if (trace(1)) { htrc("%.4d ReAlloc %.5d to %p from %p %s\n", ++m, size, p, mem, s); *s = 0; } // endif trace @@ -250,7 +250,7 @@ void *xmlMyRealloc(void *mem, size_t size) char *xmlMyStrdup(const char *str) { char *p = Strdup(str); - if (trace) { + if (trace(1)) { htrc("%.4d Duplicating to %p from %p %s %s\n", ++m, p, str, str, s); *s = 0; } // endif trace @@ -339,7 +339,7 @@ void CloseXML2File(PGLOBAL g, PFBLOCK fp, bool all) { PX2BLOCK xp = (PX2BLOCK)fp; - if (trace) + if (trace(1)) htrc("CloseXML2File: xp=%p count=%d\n", xp, (xp) ? xp->Count : 0); if (xp && xp->Count > 1 && !all) { @@ -387,7 +387,7 @@ bool LIBXMLDOC::Initialize(PGLOBAL g, PCSZ entry, bool zipped) /******************************************************************/ bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn) { - if (trace) + if (trace(1)) htrc("ParseFile\n"); if (zip) { @@ -436,7 +436,7 @@ PFBLOCK LIBXMLDOC::LinkXblock(PGLOBAL g, MODE m, int rc, char *fn) /******************************************************************/ bool LIBXMLDOC::NewDoc(PGLOBAL g, PCSZ ver) { - if (trace) + if (trace(1)) htrc("NewDoc\n"); return ((Docp = xmlNewDoc(BAD_CAST ver)) == NULL); @@ -447,7 +447,7 @@ bool LIBXMLDOC::NewDoc(PGLOBAL g, PCSZ ver) /******************************************************************/ void LIBXMLDOC::AddComment(PGLOBAL g, char *txtp) { - if (trace) + if (trace(1)) htrc("AddComment: %s\n", txtp); xmlNodePtr cp = xmlNewDocComment(Docp, BAD_CAST txtp); @@ -459,7 +459,7 @@ void LIBXMLDOC::AddComment(PGLOBAL g, char *txtp) /******************************************************************/ PXNODE LIBXMLDOC::GetRoot(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("GetRoot\n"); xmlNodePtr root = xmlDocGetRootElement(Docp); @@ -475,7 +475,7 @@ PXNODE LIBXMLDOC::GetRoot(PGLOBAL g) /******************************************************************/ PXNODE LIBXMLDOC::NewRoot(PGLOBAL g, char *name) { - if (trace) + if (trace(1)) htrc("NewRoot: %s\n", name); xmlNodePtr root = xmlNewDocNode(Docp, NULL, BAD_CAST name, NULL); @@ -493,7 +493,7 @@ PXNODE LIBXMLDOC::NewRoot(PGLOBAL g, char *name) /******************************************************************/ PXNODE LIBXMLDOC::NewPnode(PGLOBAL g, char *name) { - if (trace) + if (trace(1)) htrc("NewNode: %s\n", name); xmlNodePtr nop; @@ -534,7 +534,7 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn) int rc = 0; FILE *of; - if (trace) + if (trace(1)) htrc("DumpDoc: %s\n", ofn); if (!(of= global_fopen(g, MSGID_CANNOT_OPEN, ofn, "w"))) @@ -576,7 +576,7 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn) /******************************************************************/ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp) { - if (trace) + if (trace(1)) htrc("CloseDoc: xp=%p count=%d\n", xp, (xp) ? xp->Count : 0); //if (xp && xp->Count == 1) { @@ -630,24 +630,24 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp) { xmlNodeSetPtr nl; - if (trace) + if (trace(1)) htrc("GetNodeList: %s np=%p\n", xp, np); if (!Ctxp) { // Init Xpath - if (trace) + if (trace(1)) htrc("Calling xmlPathInit\n"); xmlXPathInit(); - if (trace) + if (trace(1)) htrc("Calling xmlXPathNewContext Docp=%p\n", Docp); // Create xpath evaluation context if (!(Ctxp = xmlXPathNewContext(Docp))) { strcpy(g->Message, MSG(XPATH_CNTX_ERR)); - if (trace) + if (trace(1)) htrc("Context error: %s\n", g->Message); return NULL; @@ -655,7 +655,7 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp) // Register namespaces from list (if any) for (PNS nsp = Namespaces; nsp; nsp = nsp->Next) { - if (trace) + if (trace(1)) htrc("Calling xmlXPathRegisterNs Prefix=%s Uri=%s\n", nsp->Prefix, nsp->Uri); @@ -663,7 +663,7 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp) BAD_CAST nsp->Uri)) { sprintf(g->Message, MSG(REGISTER_ERR), nsp->Prefix, nsp->Uri); - if (trace) + if (trace(1)) htrc("Ns error: %s\n", g->Message); return NULL; @@ -674,7 +674,7 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp) } // endif Ctxp if (Xop) { - if (trace) + if (trace(1)) htrc("Calling xmlXPathFreeNodeSetList Xop=%p NOFREE=%d\n", Xop, Nofreelist); @@ -698,21 +698,21 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp) // Set the context to the calling node Ctxp->node = np; - if (trace) + if (trace(1)) htrc("Calling xmlXPathEval %s Ctxp=%p\n", xp, Ctxp); // Evaluate table xpath if (!(Xop = xmlXPathEval(BAD_CAST xp, Ctxp))) { sprintf(g->Message, MSG(XPATH_EVAL_ERR), xp); - if (trace) + if (trace(1)) htrc("Path error: %s\n", g->Message); return NULL; } else nl = Xop->nodesetval; - if (trace) + if (trace(1)) htrc("GetNodeList nl=%p n=%p\n", nl, (nl) ? nl->nodeNr : 0); return nl; @@ -811,7 +811,7 @@ XML2NODE::XML2NODE(PXDOC dp, xmlNodePtr np) : XMLNODE(dp) int XML2NODE::GetType(void) { - if (trace) + if (trace(1)) htrc("GetType type=%d\n", Nodep->type); return Nodep->type; @@ -822,7 +822,7 @@ int XML2NODE::GetType(void) /******************************************************************/ PXNODE XML2NODE::GetNext(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("GetNext\n"); if (!Nodep->next) @@ -838,7 +838,7 @@ PXNODE XML2NODE::GetNext(PGLOBAL g) /******************************************************************/ PXNODE XML2NODE::GetChild(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("GetChild\n"); if (!Nodep->children) @@ -856,7 +856,7 @@ RCODE XML2NODE::GetContent(PGLOBAL g, char *buf, int len) { RCODE rc = RC_OK; - if (trace) + if (trace(1)) htrc("GetContent\n"); if (Content) @@ -888,7 +888,7 @@ RCODE XML2NODE::GetContent(PGLOBAL g, char *buf, int len) *p2 = 0; - if (trace) + if (trace(1)) htrc("GetText buf='%s' len=%d\n", buf, len); xmlFree(Content); @@ -896,7 +896,7 @@ RCODE XML2NODE::GetContent(PGLOBAL g, char *buf, int len) } else *buf = '\0'; - if (trace) + if (trace(1)) htrc("GetContent: %s\n", buf); return rc; @@ -907,12 +907,12 @@ RCODE XML2NODE::GetContent(PGLOBAL g, char *buf, int len) /******************************************************************/ bool XML2NODE::SetContent(PGLOBAL g, char *txtp, int len) { - if (trace) + if (trace(1)) htrc("SetContent: %s\n", txtp); xmlChar *buf = xmlEncodeEntitiesReentrant(Docp, BAD_CAST txtp); - if (trace) + if (trace(1)) htrc("SetContent: %s -> %s\n", txtp, buf); xmlNodeSetContent(Nodep, buf); @@ -925,7 +925,7 @@ bool XML2NODE::SetContent(PGLOBAL g, char *txtp, int len) /******************************************************************/ PXNODE XML2NODE::Clone(PGLOBAL g, PXNODE np) { - if (trace) + if (trace(1)) htrc("Clone: np=%p\n", np); if (np) { @@ -941,7 +941,7 @@ PXNODE XML2NODE::Clone(PGLOBAL g, PXNODE np) /******************************************************************/ PXLIST XML2NODE::GetChildElements(PGLOBAL g, char *xp, PXLIST lp) { - if (trace) + if (trace(1)) htrc("GetChildElements: %s\n", xp); return SelectNodes(g, (xp) ? xp : (char*)"*", lp); @@ -952,7 +952,7 @@ PXLIST XML2NODE::GetChildElements(PGLOBAL g, char *xp, PXLIST lp) /******************************************************************/ PXLIST XML2NODE::SelectNodes(PGLOBAL g, char *xp, PXLIST lp) { - if (trace) + if (trace(1)) htrc("SelectNodes: %s\n", xp); xmlNodeSetPtr nl = ((PXDOC2)Doc)->GetNodeList(g, Nodep, xp); @@ -970,7 +970,7 @@ PXLIST XML2NODE::SelectNodes(PGLOBAL g, char *xp, PXLIST lp) /******************************************************************/ PXNODE XML2NODE::SelectSingleNode(PGLOBAL g, char *xp, PXNODE np) { - if (trace) + if (trace(1)) htrc("SelectSingleNode: %s\n", xp); xmlNodeSetPtr nl = ((PXDOC2)Doc)->GetNodeList(g, Nodep, xp); @@ -994,7 +994,7 @@ PXATTR XML2NODE::GetAttribute(PGLOBAL g, char *name, PXATTR ap) { xmlAttrPtr atp; - if (trace) + if (trace(1)) htrc("GetAttribute: %s\n", SVP(name)); if (name) @@ -1023,7 +1023,7 @@ PXNODE XML2NODE::AddChildNode(PGLOBAL g, PCSZ name, PXNODE np) { char *p, *pn, *pf = NULL, *nmp = PlugDup(g, name); - if (trace) + if (trace(1)) htrc("AddChildNode: %s\n", name); // Is a prefix specified @@ -1074,7 +1074,7 @@ PXNODE XML2NODE::AddChildNode(PGLOBAL g, PCSZ name, PXNODE np) /******************************************************************/ PXATTR XML2NODE::AddProperty(PGLOBAL g, char *name, PXATTR ap) { - if (trace) + if (trace(1)) htrc("AddProperty: %s\n", name); xmlAttrPtr atp = xmlNewProp(Nodep, BAD_CAST name, NULL); @@ -1097,7 +1097,7 @@ PXATTR XML2NODE::AddProperty(PGLOBAL g, char *name, PXATTR ap) /******************************************************************/ void XML2NODE::AddText(PGLOBAL g, PCSZ txtp) { - if (trace) + if (trace(1)) htrc("AddText: %s\n", txtp); // This is to avoid a blank line when inserting a new line @@ -1119,7 +1119,7 @@ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp) { xmlErrorPtr xerr; - if (trace) + if (trace(1)) htrc("DeleteChild: node=%p\n", dnp); xmlNodePtr np = ((PNODE2)dnp)->Nodep; @@ -1157,7 +1157,7 @@ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp) return; err: - if (trace) + if (trace(1)) htrc("DeleteChild: errmsg=%s\n", xerr->message); xmlResetError(xerr); @@ -1187,7 +1187,7 @@ int XML2NODELIST::GetLength(void) /******************************************************************/ PXNODE XML2NODELIST::GetItem(PGLOBAL g, int n, PXNODE np) { - if (trace) + if (trace(1)) htrc("GetItem: %d\n", n); if (!Listp || Listp->nodeNr <= n) @@ -1206,7 +1206,7 @@ PXNODE XML2NODELIST::GetItem(PGLOBAL g, int n, PXNODE np) /******************************************************************/ bool XML2NODELIST::DropItem(PGLOBAL g, int n) { - if (trace) + if (trace(1)) htrc("DropItem: n=%d\n", n); // We should do something here @@ -1234,7 +1234,7 @@ XML2ATTR::XML2ATTR(PXDOC dp, xmlAttrPtr ap, xmlNodePtr np) /******************************************************************/ PXATTR XML2ATTR::GetNext(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("Attr GetNext\n"); if (!Atrp->next) @@ -1252,7 +1252,7 @@ RCODE XML2ATTR::GetText(PGLOBAL g, char *buf, int len) RCODE rc = RC_OK; xmlChar *txt; - if (trace) + if (trace(1)) htrc("GetText\n"); if ((txt = xmlGetProp(Atrp->parent, Atrp->name))) { @@ -1269,7 +1269,7 @@ RCODE XML2ATTR::GetText(PGLOBAL g, char *buf, int len) } else *buf = '\0'; - if (trace) + if (trace(1)) htrc("GetText: %s\n", buf); return rc; @@ -1280,7 +1280,7 @@ RCODE XML2ATTR::GetText(PGLOBAL g, char *buf, int len) /******************************************************************/ bool XML2ATTR::SetText(PGLOBAL g, char *txtp, int len) { - if (trace) + if (trace(1)) htrc("SetText: %s %d\n", txtp, len); xmlSetProp(Parent, Atrp->name, BAD_CAST txtp); diff --git a/storage/connect/macutil.cpp b/storage/connect/macutil.cpp index b9600bdac2e..f95f3adcc6e 100644 --- a/storage/connect/macutil.cpp +++ b/storage/connect/macutil.cpp @@ -230,13 +230,13 @@ bool MACINFO::GetOneInfo(PGLOBAL g, int flag, void *v, int lv) case 11: // Description if ((p = strstr(Curp->Description, " - Packet Scheduler Miniport"))) { strncpy(buf, Curp->Description, p - Curp->Description); - i = p - Curp->Description; + i = (int)(p - Curp->Description); strncpy(buf, Curp->Description, i); buf[i] = 0; p = buf; } else if ((p = strstr(Curp->Description, " - Miniport d'ordonnancement de paquets"))) { - i = p - Curp->Description; + i = (int)(p - Curp->Description); strncpy(buf, Curp->Description, i); buf[i] = 0; p = buf; diff --git a/storage/connect/mongo.cpp b/storage/connect/mongo.cpp index 088dc2d29d1..53e2bf377c4 100644 --- a/storage/connect/mongo.cpp +++ b/storage/connect/mongo.cpp @@ -172,7 +172,7 @@ PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt, bool info) goto err; skipit: - if (trace) + if (trace(1)) htrc("MGOColumns: n=%d len=%d\n", n, length[0]); /*********************************************************************/ @@ -276,7 +276,7 @@ int MGODISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt) tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); - if (trace) + if (trace(1)) htrc("Uri %s coll=%s db=%s colist=%s filter=%s lvl=%d\n", tdp->Uri, tdp->Tabname, tdp->Tabschema, tdp->Colist, tdp->Filter, lvl); diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index bb77512be62..cc8f75b2976 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -94,9 +94,9 @@ #if defined(XML_SUPPORT) #include "tabxml.h" #endif // XML_SUPPORT -#if defined(JAVA_SUPPORT) +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) #include "mongo.h" -#endif // JAVA_SUPPORT +#endif // JAVA_SUPPORT || CMGO_SUPPORT #if defined(ZIP_SUPPORT) #include "tabzip.h" #endif // ZIP_SUPPORT @@ -109,9 +109,10 @@ extern "C" HINSTANCE s_hModule; // Saved module handle #endif // !__WIN__ -#if defined(JAVA_SUPPORT) -//bool MongoEnabled(void); -#endif // JAVA_SUPPORT +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) +bool MongoEnabled(void); +#endif // JAVA_SUPPORT || CMGO_SUPPORT + PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info); /***********************************************************************/ @@ -145,6 +146,9 @@ TABTYPE GetTypeID(const char *type) #if defined(JAVA_SUPPORT) : (!stricmp(type, "JDBC")) ? TAB_JDBC : (!stricmp(type, "MONGO")) ? TAB_MONGO +#endif +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) + : (!stricmp(type, "MONGO") && MongoEnabled()) ? TAB_MONGO #endif : (!stricmp(type, "MYSQL")) ? TAB_MYSQL : (!stricmp(type, "MYPRX")) ? TAB_MYSQL @@ -488,7 +492,7 @@ void MYCAT::Reset(void) PRELDEF MYCAT::GetTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR type, PRELDEF *) { - if (trace) + if (trace(1)) printf("GetTableDesc: name=%s am=%s\n", tablep->GetName(), SVP(type)); // If not specified get the type of this table @@ -509,7 +513,7 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) LPCSTR schema = (PSZ)PlugDup(g, tablep->GetSchema()); PRELDEF tdp= NULL; - if (trace) + if (trace(1)) printf("MakeTableDesc: name=%s schema=%s am=%s\n", name, SVP(schema), SVP(am)); @@ -562,8 +566,16 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) break; #endif // MONGO_SUPPORT #if defined(ZIP_SUPPORT) - case TAB_ZIP: tdp= new(g) ZIPDEF; break; + case TAB_ZIP: tdp = new(g) ZIPDEF; break; #endif // ZIP_SUPPORT +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) + case TAB_MONGO: + if (MongoEnabled()) { + tdp = new(g) MGODEF; + break; + } // endif enabled + // fall through +#endif // JAVA_SUPPORT || CMGO_SUPPORT default: sprintf(g->Message, MSG(BAD_TABLE_TYPE), am, name); } // endswitch @@ -584,14 +596,14 @@ PTDB MYCAT::GetTable(PGLOBAL g, PTABLE tablep, MODE mode, LPCSTR type) PTDB tdbp= NULL; // LPCSTR name= tablep->GetName(); - if (trace) + if (trace(1)) printf("GetTableDB: name=%s\n", tablep->GetName()); // Look for the description of the requested table tdp= GetTableDesc(g, tablep, type); if (tdp) { - if (trace) + if (trace(1)) printf("tdb=%p type=%s\n", tdp, tdp->GetType()); if (tablep->GetSchema()) @@ -601,7 +613,7 @@ PTDB MYCAT::GetTable(PGLOBAL g, PTABLE tablep, MODE mode, LPCSTR type) } // endif tdp if (tdbp) { - if (trace) + if (trace(1)) printf("tdbp=%p name=%s amtype=%d\n", tdbp, tdbp->GetName(), tdbp->GetAmType()); tablep->SetTo_Tdb(tdbp); diff --git a/storage/connect/myconn.cpp b/storage/connect/myconn.cpp index fe00f6a1eab..253c42bb002 100644 --- a/storage/connect/myconn.cpp +++ b/storage/connect/myconn.cpp @@ -177,7 +177,7 @@ PQRYRES MyColumns(PGLOBAL g, THD *thd, const char *host, const char *db, return NULL; } // endif b - if (trace) + if (trace(1)) htrc("MyColumns: cmd='%s'\n", cmd.GetStr()); if ((n = myc.GetResultSize(g, cmd.GetStr())) < 0) { @@ -248,7 +248,7 @@ PQRYRES MyColumns(PGLOBAL g, THD *thd, const char *host, const char *db, while (true) { p2 = strchr(p1, '\''); - len = MY_MAX(len, p2 - p1); + len = MY_MAX(len, (int)(p2 - p1)); if (*++p2 != ',') break; p1 = p2 + 2; } // endwhile @@ -482,7 +482,7 @@ int MYSQLC::Open(PGLOBAL g, const char *host, const char *db, return RC_FX; } // endif m_DB - if (trace) + if (trace(1)) htrc("MYSQLC Open: m_DB=%.4X size=%d\n", m_DB, (int)sizeof(*m_DB)); // Removed to do like FEDERATED do @@ -744,7 +744,7 @@ int MYSQLC::ExecSQL(PGLOBAL g, const char *query, int *w) m_Fields = mysql_num_fields(m_Res); m_Rows = (!m_Use) ? (int)mysql_num_rows(m_Res) : 0; - if (trace) + if (trace(1)) htrc("ExecSQL: m_Res=%.4X size=%d m_Fields=%d m_Rows=%d\n", m_Res, sizeof(*m_Res), m_Fields, m_Rows); @@ -1068,7 +1068,7 @@ void MYSQLC::Close(void) { FreeResult(); - if (trace) + if (trace(1)) htrc("MYSQLC Close: m_DB=%.4X\n", m_DB); mysql_close(m_DB); diff --git a/storage/connect/mysql-test/connect/r/jdbc_postgresql.result b/storage/connect/mysql-test/connect/r/jdbc_postgresql.result index 6d77d79d5d3..7969672dd66 100644 --- a/storage/connect/mysql-test/connect/r/jdbc_postgresql.result +++ b/storage/connect/mysql-test/connect/r/jdbc_postgresql.result @@ -1,9 +1,11 @@ +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/JavaWrappers.jar;C:/Jconnectors/postgresql-42.2.1.jar'; CREATE TABLE t2 ( command varchar(128) not null, number int(5) not null flag=1, message varchar(255) flag=2) -ENGINE=CONNECT TABLE_TYPE=JDBC CONNECTION='jdbc:postgresql://localhost/mtr' -OPTION_LIST='User=mtr,Password=mtr,Schema=public,Execsrc=1'; +ENGINE=CONNECT TABLE_TYPE=JDBC +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono' +OPTION_LIST='Execsrc=1'; SELECT * FROM t2 WHERE command='drop table employee'; command number message drop table employee 0 Execute: org.postgresql.util.PSQLException: ERREUR: la table « employee » n'existe pas @@ -14,17 +16,18 @@ SELECT * FROM t2 WHERE command = "insert into employee values(4567,'Johnson', 'E command number message insert into employee values(4567,'Johnson', 'Engineer', 12560.50) 1 Affected rows CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CATFUNC=tables -CONNECTION='jdbc:postgresql://localhost/mtr' -OPTION_LIST='User=mtr,Password=mtr,Schema=public,Tabtype=TABLE,Maxres=10'; +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono' +OPTION_LIST='Tabtype=TABLE,Maxres=10'; SELECT * FROM t1; Table_Cat Table_Schema Table_Name Table_Type Remark - public employee TABLE NULL - public t1 TABLE NULL - public t2 TABLE NULL +NULL public employee TABLE NULL +NULL public t1 TABLE NULL +NULL public t2 TABLE NULL +NULL public tchar TABLE NULL +NULL public testuuid TABLE NULL DROP TABLE t1; -CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CATFUNC=columns -CONNECTION='jdbc:postgresql://localhost/mtr' tabname=employee -OPTION_LIST='User=mtr,Password=mtr,Maxres=10'; +CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC tabname=employee CATFUNC=columns +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono'; SELECT * FROM t1; Table_Cat Table_Schema Table_Name Column_Name Data_Type Type_Name Column_Size Buffer_Length Decimal_Digits Radix Nullable Remarks NULL public employee id 4 int4 10 0 0 10 0 NULL @@ -34,13 +37,14 @@ NULL public employee salary 2 numeric 8 0 2 10 1 NULL DROP TABLE t1; CREATE SERVER 'postgresql' FOREIGN DATA WRAPPER 'postgresql' OPTIONS ( HOST 'localhost', -DATABASE 'mtr', -USER 'mtr', -PASSWORD 'mtr', +DATABASE 'test', +USER 'postgres', +PASSWORD 'tinono', PORT 0, SOCKET '', OWNER 'root'); -CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CONNECTION='postgresql/public.employee'; +CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC +CONNECTION='postgresql/public.employee'; SELECT * FROM t1; id name title salary 4567 Johnson Engineer 12560.50 @@ -60,6 +64,3 @@ SELECT * FROM t2 WHERE command='drop table employee'; command number message drop table employee 0 Affected rows DROP TABLE t2; -SET GLOBAL connect_jvm_path=NULL; -SET GLOBAL connect_class_path=NULL; -SET GLOBAL time_zone = SYSTEM; diff --git a/storage/connect/mysql-test/connect/r/json_java_2.result b/storage/connect/mysql-test/connect/r/json_java_2.result index 783d86e6595..1a90132dede 100644 --- a/storage/connect/mysql-test/connect/r/json_java_2.result +++ b/storage/connect/mysql-test/connect/r/json_java_2.result @@ -1,4 +1,5 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -381,3 +382,7 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true +<<<<<<< HEAD +======= +set connect_enable_mongo=0; +>>>>>>> connect/10.0 diff --git a/storage/connect/mysql-test/connect/r/json_java_3.result b/storage/connect/mysql-test/connect/r/json_java_3.result index a301e0273d5..4c5fc94fca6 100644 --- a/storage/connect/mysql-test/connect/r/json_java_3.result +++ b/storage/connect/mysql-test/connect/r/json_java_3.result @@ -1,4 +1,5 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -381,3 +382,4 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_mongo_c.result b/storage/connect/mysql-test/connect/r/json_mongo_c.result index 8adc006a51b..550e94f286e 100644 --- a/storage/connect/mysql-test/connect/r/json_mongo_c.result +++ b/storage/connect/mysql-test/connect/r/json_mongo_c.result @@ -1,3 +1,4 @@ +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -380,3 +381,4 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/json_udf.result b/storage/connect/mysql-test/connect/r/json_udf.result index 7d81ca5e73d..09544bb1ecb 100644 --- a/storage/connect/mysql-test/connect/r/json_udf.result +++ b/storage/connect/mysql-test/connect/r/json_udf.result @@ -50,17 +50,19 @@ SELECT Json_Array_Add(Json_Make_Array(56, 3.1416, 'foo', NULL), 'One more') Arra Array [56,3.141600,"foo",null,"One more"] SELECT Json_Array_Add(JsonValue('one value'), 'One more'); -ERROR HY000: Can't initialize function 'json_array_add'; First argument must be a json item +Json_Array_Add(JsonValue('one value'), 'One more') +["\"one value\"","One more"] SELECT Json_Array_Add('one value', 'One more'); -ERROR HY000: Can't initialize function 'json_array_add'; First argument must be a json item +Json_Array_Add('one value', 'One more') +["one value","One more"] SELECT Json_Array_Add('one value' json_, 'One more'); Json_Array_Add('one value' json_, 'One more') one value Warnings: Warning 1105 Error 2 opening one value -Warning 1105 First argument target is not an array SELECT Json_Array_Add(5 json_, 'One more'); -ERROR HY000: Can't initialize function 'json_array_add'; First argument must be a json item +Json_Array_Add(5 json_, 'One more') +[5,"One more"] SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 0); Json_Array_Add('[5,3,8,7,9]' json_, 4, 0) [4,5,3,8,7,9] diff --git a/storage/connect/mysql-test/connect/r/json_udf_bin.result b/storage/connect/mysql-test/connect/r/json_udf_bin.result index 0c009d612fe..d0819619c33 100644 --- a/storage/connect/mysql-test/connect/r/json_udf_bin.result +++ b/storage/connect/mysql-test/connect/r/json_udf_bin.result @@ -272,10 +272,9 @@ Json_Serialize(Jbin_Array('a','b','c')) ["a","b","c"] SELECT Json_Serialize(Jbin_Array_Add(Jbin_File('not_exist.json'), 'd')); Json_Serialize(Jbin_Array_Add(Jbin_File('not_exist.json'), 'd')) -Null json tree +[null,"d"] Warnings: Warning 1105 Open(map) error 2 on not_exist.json -Warning 1105 First argument is not an array # This does not modify the file SELECT Json_Serialize(Jbin_Array_Add(Jbin_File('bt1.json'), 'd')); Json_Serialize(Jbin_Array_Add(Jbin_File('bt1.json'), 'd')) diff --git a/storage/connect/mysql-test/connect/r/mongo_c.result b/storage/connect/mysql-test/connect/r/mongo_c.result index c7aadcf1165..132bb34ce64 100644 --- a/storage/connect/mysql-test/connect/r/mongo_c.result +++ b/storage/connect/mysql-test/connect/r/mongo_c.result @@ -1,3 +1,4 @@ +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -376,3 +377,4 @@ planner 167 41.750000 postcard 23 5.750000 DROP TABLE t1; true +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_2.result b/storage/connect/mysql-test/connect/r/mongo_java_2.result index 708b6f1cc7c..67c67653e88 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_2.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_2.result @@ -1,4 +1,5 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo2.jar'; +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -377,3 +378,4 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/mongo_java_3.result b/storage/connect/mysql-test/connect/r/mongo_java_3.result index 672d9f15b80..665178bd3ea 100644 --- a/storage/connect/mysql-test/connect/r/mongo_java_3.result +++ b/storage/connect/mysql-test/connect/r/mongo_java_3.result @@ -1,4 +1,5 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.1/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/Mongo3.jar'; +set connect_enable_mongo=1; # # Test the MONGO table type # @@ -377,3 +378,4 @@ planner 167 41.75 postcard 23 5.75 DROP TABLE t1; true +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/r/tbl_thread.result b/storage/connect/mysql-test/connect/r/tbl_thread.result index e07fc0988fd..9633f358c97 100644 --- a/storage/connect/mysql-test/connect/r/tbl_thread.result +++ b/storage/connect/mysql-test/connect/r/tbl_thread.result @@ -79,7 +79,7 @@ a b CREATE TABLE total (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2,t3,t4,t5' OPTION_LIST='thread=yes,port=PORT'; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by a desc; a b 19 test19 @@ -118,7 +118,7 @@ SELECT * FROM t2; v 22 CREATE TABLE total (v BIGINT(20) UNSIGNED NOT NULL) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2' OPTION_LIST='thread=yes,port=PORT';; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by v desc; v 22 @@ -137,7 +137,7 @@ SELECT * FROM t2; v 22 CREATE TABLE total (v BIGINT(20) UNSIGNED NOT NULL) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2' OPTION_LIST='thread=yes,port=PORT';; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by v desc; v 22 diff --git a/storage/connect/mysql-test/connect/r/vcol.result b/storage/connect/mysql-test/connect/r/vcol.result new file mode 100644 index 00000000000..4c59a3b06d8 --- /dev/null +++ b/storage/connect/mysql-test/connect/r/vcol.result @@ -0,0 +1,29 @@ +create table t1 ( +#linenum int(6) not null default 0 special=rowid, +name char(12) not null, +city char(11) not null, +birth date not null date_format='DD/MM/YYYY', +hired date not null date_format='DD/MM/YYYY' flag=36, +agehired int(3) as (floor(datediff(hired,birth)/365.25)) +) +engine=CONNECT table_type=FIX file_name='boys.txt' mapped=YES lrecl=47 ending=1; +select * from t1; +name city birth hired agehired +John Boston 1986-01-25 2010-06-02 24 +Henry Boston 1987-06-07 2008-04-01 20 +George San Jose 1981-08-10 2010-06-02 28 +Sam Chicago 1979-11-22 2007-10-10 27 +James Dallas 1992-05-13 2009-12-14 17 +Bill Boston 1986-09-11 2008-02-10 21 +drop table t1; +create table t1 ( +#linenum int(6) not null default 0 special=rowid, +name char(12) not null, +city char(11) not null, +birth date not null date_format='DD/MM/YYYY', +hired date not null date_format='DD/MM/YYYY' flag=36, +agehired int(3) as (floor(datediff(hired,birth)/365.25)), +index (agehired) +) +engine=CONNECT table_type=FIX file_name='boys.txt' mapped=YES lrecl=47 ending=1; +ERROR HY000: Key/Index cannot be defined on a non-stored computed column diff --git a/storage/connect/mysql-test/connect/std_data/JavaWrappers.jar b/storage/connect/mysql-test/connect/std_data/JavaWrappers.jar new file mode 100644 index 0000000000000000000000000000000000000000..33b29e7685b66ee03d1b3f5921f2ba32d48f76b3 GIT binary patch literal 19192 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 N5FTV=U{Le`@c?>fD9iu= literal 0 HcmV?d00001 diff --git a/storage/connect/mysql-test/connect/std_data/Mongo2.jar b/storage/connect/mysql-test/connect/std_data/Mongo2.jar index d019bf6906b7af900f676a919885a9f2e440af88..9be654bd4c8e2a1a3fd159c2a69acb5acc55011c 100644 GIT binary patch delta 13430 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
j~S=ca^L@CkuVUt}MduoJO5 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

@ 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%0A}(_@GNt-gjShQf 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 !P~t9T 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

qhgVKs*I0+iK1&4*sO``7T73V$K;~nu|Af{ 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
  • h1R_`{W(RHrcR5 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 z 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˼-@y=Em6(ul>?5sWE0xc$e0UrI` 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

    q&|y>!t-?)RBgks!vf$v*RCp`OrOK zv~t8aiqJ8Xsynqu`G6pP-Q6#U-F%+sgJait%(ux^f}!P)KEW}Nh%l$WCIs>z_vKSZ zF6L)a_-YyH3e$xq0K%eysi|2L!-SyIP&5Y@mrTD!Ji(=9T&S zCYzjjvJ~3Xuohmps?EW+s*nB4PP=_!Be{`b9u=f70Mh=N+No;jN2V~tX|&+1oo_Ad z3?>&AJg7gjK2{o%YrH99F64j|z z1@%A2xkXIu#+8mD>(MeU8`V)@M28pas^8JS*=bhU5-ngzflL?A=DAVmk?mDgKXD47 zeOqFJ08CTj;3B-b5>z%lO8!JpxmT5>iNtHAn#`=>t2lp#SaH#9xJ(wSYcqwmb*^=b zf6piMCytfGw&HyMJ5K#zl`vcjtSJfas5lg6^oD}qM}DkA`vpZ#IJqK>Eq13j$bGlc zpB`j6&_6|$axofw)e|ZiS6u~4zN1Emv=5w*4iM5kdzi-#`S&Tr`wnMvhjdW6#KYCI zI*Kj+IW)`{!}yp&0nuY@cV~WGUej_@;J+tSPY4&=HXzi%uAx=9_T`B%;fyk&AbB`1j>1Wfe4{@ zp`ogMTgpqbqZQ!z`NTKYUMkzS13yTsctGW>@!1Fj7c9fJ0)S*u7DHxc`i*+AmrEe*@I+)NsI?6(C55OYA zKQUdTk>cql&Xd#yJ`)YL*OmN?Mq{bq{Y|3^>QTRk zc}IuE{Ti!;MA6mW`%75@__5(0|2G;*2qUKP101^yBFKx5Z(Z8?$F;{byKYl>5KKVlD*u z{~i_-_qI|0r#;U1A6a?*&I7HYYjLs#-FOWz{u@Eh{HyNBbKRorv?()zWDprUS{X_b z-q!H<*EI+cG(Wjk(gEjvBQm(5Kln4eUqy>RmM%fdx0j3bc8fq}V#QAE^h`{+l0EB> zr`(QJex0)3cxH2*!ZxRU6TxPtNWQ?)(+CM*f&^B;5j}i$RprrP?djVy*KG$Ekk_!{ zz#Gf507G}MySDKkQ+c0Vjb+aN)W=IV>~SWCFhIqBE!}b)Gv`1|lKj-iBjro~BP!qU zHnZF6bgvWQO=*NQxwk)0$ig(ec*@wqw13u5Tu{%rw6X0;0)^8OgwEHn003gIq!u`z zH~rd#y7=&!0-cXqijiv>{CnMVoFNxa=q&$j`)UA!Il*0bYXeOzCP9yL7`LCUkmYk0 zL$Wts&ck%J?ysO9#;V&auHyzO8lqd^p-UVb&f?hMVUG)z)2_OQ^c}frY&3*`QR8dil6v_~XjjU4%uiA#qr_aLfB5b0Oq}?`K@WXomh-&@ne5ka&dt zIrTMu364TuBqthf8{(Ab9HNsqpLzBGqKyyTT!nT7^>fOALZa0+q^K zy=piO$cmiw~~%O^Nl zj^IL`7;20#3K4}>OIldon(CPPVFV6?iVK6wLnI*r!mc8OnRa;yQzdJ|5i(hU?-?!+ z_+016M(ykL{OZ3{y;$*DYK^z6!lNRJ`@%w5M;Us^IzFM#qZ`k91(u|Y83hF)R-ogUy@e;e2;k(k{t3lIQNwH#lI(Vr0vVs4!%`@BT6k5Y&X)A>zZ0qEmBW1z$ z!F(Z4ATro-o@;xWteM?T+SZ;z;5&dDxUKdZCbCq(mm(Rd*l|u7#I)whKZGHrK z)R;XG!BnW*>6cL`fj|8xtS^_7$rx$&TJRAc5hG;@Ze|Dpwd=&$t3^pBx%iNX8PM$* zUSE7K(qexQ!)Wi}S|o`~0vrsmaM@jRNi!@9`2!kTkbo$Okw+&2JG6O+)P(V9SWYn6 z3dvaS4VEWr+2}tLcY0#T*th;_b04{}SKwnNQ+w7&m!%hT&U35NIh!5Kxh`nYBhd%h zL70z8gi#bGEyMKv2iAn#;WOv{3}A`i&PjeAh{YC-yLSquHw^pNW}2U#m#anAK&*kJ z8N7McQIzR`V}7DdDO=+@=wR7pbP)l#^pNNULJJz^=O{TVhDb%dyW`V&>z~QL2tk6lX@umVSu=292T@& z0FrV)8-leI!*#Uocq%$Q7NZ}zOiwZG&e|k(d8D4nuGFp02$fp#AB?^i)L_Yqv|Hx! zNFg&Sm436du`Iz{d!DqmUoqX}-0g_Z#HPUa)HMS5a;CihkchCqGW9bLNBE5%3pip; ziVhwI)FU(Tnh~WMs5JY#AOOd>*gSLMUzT`>6@y3_q9y22>m;B;C&iH2Xi%6ms(E;t2Sufpv+=*Aaazfj zTQ5Js9}>qox@1ta;Fy^Gskn`}Yf({om=N+MRGw2*`;Jym7+TU=^a0$7Md97pOp zPy`a}gMWwSZ64Fb)eg?Yg;j&k?qo7J+x4=^%}Q&B2U@-dbvO?~>I-txA&~0FDq7N- zW80=^2J8yW3+z2R1Oaeae41E);jUiD9j0m;TMu)uvbF3+lAF>`iFm{m%+E#ED+x2< z8|XK#uk;YMFw{t0ydV-H)O=?s%SJjAP%r87ByCA!U(!6$YonN93Ef@p|83B8W*d!z z=b6-ihnv6iR*aW3flb18%0w20W4Ft_8NaEm)w{z#U%EA3;Q{a^Y?^M6wT2QOER{lo zF)lXk0{XlC-rNdov*^($>8L9U2tCrF^K!FPR+tfl3yLHOTtON{JrE%3>|E&kMu<8u zq6fLfF%(H+ILSq6uy&2d^*=2yNH@&}m1&n=`gGtX5-rD%qJ2)q@ZTC&-kq8|^{XWl zl_sKw-5rRZn*mdfhCCF^27Cqwxu%h9HGHO6$s1yq{m!UI8ELNxabod9;BA-@P*|iP zG@WQ!L#%8lC5{Bwh}$v>CYZy(&&0LP0bgw?#Y3M`cDzN1+V#TN?*2jot0~q)3rpUh zhdAW4GZA=^S9k~*17Cml+I9`zjcQA93J7k(D(U_41b+ms;y?*cMrzVB4+}u*} zVbA*MHF&Wn&P6pckwi)LW-Y*_nl51zBUOi0IT|TZk=-eGtBgG0iR%>^B*jRwVxIDb zl??qOPzhaG@KWFHA5GV7IYPF{lU%+PCddCHJrBr1UtD81e{X_5r#mq8yV6|l@uMe* z^}3_dY@7j^J#aCUdMj)&O^cT|MBgD++AywTXI8UF2tB@rzU6riad$Aq`lD&(;uR!ES)e)!Ew*MDau49v<$lLC;^=2y5bEYrJtu17*VcfrbM{QX3jv1juS` zs$8BEk6e7XZPy_U9OSPVB&1x~yr82&*OWJcQFj1XYo5LaJoj?1Z*{l#bE^4nmRkG= zV{-SV(T2yW4{vLn!0d<|7Q=HdZ>o2Q1Aq;NYikYy?~d2HTbK7+iF$kb{sy189nIdQ zFCSn9_f|xCJ4jbI!4PL@?xex657FP=s(S4{DDFf%c-glJu}F50*&!yBwGv9m4CHSWO|Y+Ex&Xnm zxivafy15rZ=1Pw)guNUfh0s2!$tCSE#Ico)$ZUiv?2kGYSEVHV-t&vqP8=c6(ZJ3o zqAK~g`N^dq#SCT>(QA46T}of-j{C-ECeB~@K0edMH8zU}H-=f3tk zAFG%CHEewJ=_UK8yv~?V1?WN*5rF&_!c!U`&N zccV56Jg-$SX^^Ip_RNIrl7Oo>doCHzoe!*|yy`xFjQog=`Ghzot4OHxFc%?Gw;|ki zW&9EDmL$>0>*2s$-UzV)Si^7Ua$6lstm?Vk9Vi(gT9T%yy26Zo}SOMh!-Lg}TFazdF*(;4yF z8F?$pkWPAs>Kk!^V{Cc&$O6!6xkRl=Q^_lzbC8O&!enhFLq5}oEc0xAMlA4*Pk1i1 zev-MroCcF?9zm}l`Sk#Fw`9VSySE5o)NosfruJKyk3*%|NuIsdme|L8=h7*h z>W=9>|JhLtF;2S{I|k@MH`o{9`WoCY2+Y5vuH3LNq+aDxnN4rr>>ry?U@PSyEcvgZ z^RxIJuQ_wg7hM#$DxxKL;(fU9$q^c_@q2SF1bpx-rgz^L%-@Lyf(OLz6FWfmJq(45 zV;O|ku1pJ>uP|Io3>v&sLz!dz!LwDsH*T(r4QB^_TSS&J8V2Orm%!1=Z!)HsCkt(A zcT_iBEX-D`p*-W7Mr&d%g^m%_v1`T-8xCE>o3r>NJx*PE(>)lejLZ?A`ZzsYp`RSn z$`YWIAW8*GsgWU4N5`vH2W{R`eG~YA1Iuo!ed?lqRIzDd%xQrU-O`gjg` zoCA?hc$oz#@&P!kbrZVCl;IN#pPv5k)}t)M_x+)V(AtNXO!&Mr9H%#p-7lzsaW6c5 zq)ky;^w0iGK-3cNESeero2Ton-rk#gGU%R{}TN(xI+6jaAXDrsywm zR$^YxBSatcA$(If%%F($P-lBht2R+RT2Eu`Mld(J?FJ|n2b$NQI7aa!o3+7jn(shQ zwyZ0!)#hV3?6%a5hs}h!rMdIdXe~$*@+huQ`Jzph@f2udiDJl~?ocb&tEvn^Kb+Pi zhf|!p&J?!dw|C99&X-Y)L4g+|DLy#xqRVVc2n7la$UA}4o4;XI#qK6+5g-5ExqTkh z%nj>QJO!xtsc=s=#Xhb=$bzhMr7*RKA1 zqx8E{1Z;~VJnRjgH!1lnK>(5+491mcI*`*uL^GFZ9{dI**7martc_263{tl#v4Bdu z7aq_69Q>Yl5-DE2s)9QPmz1$e%^rRWOnKqjE2_e)RcmD2^CzH(@tf|Euh9n==N&pg zGY>D)z$ewXj(4aZSQI`_nXr70HoQ3hmAX>^=?Zn;&JQ%k_%56BUE#2^jOKFXPk5!; zmPn{@&{azFJx&IZ(7Q9n;4PW&PPCY#a+FT1~Nuk*THEwQdbebxMU=ZryW9W z(`k)ZkLsgFHq3db8r^&l;_q28QBy^ha-Dw)yBX`0hzjG)13|qP-cFnlVEFU3W?RhW%2WJN9~(Y2XH_Z z)KuB2EB1+dQF*#Uktksh6$J@4a;MVW#GXkWGyS)leA>+SSM+$J;C3ulP zzmXhrd5~p_;HR``xt^Cg_%PE8_>pj8sorYMYFs*_(i!7LMx%(nY_fZjz^t+I7@$vQ9=Kd(1Z{CZWsyBZSp}Okxsr6rIAse?+7|96MAvejN-$$u1nT` zbj=;X=zs@1xkI%$4&y-)oWm4@1igP?Ps8Hon!>7-;e9~B_?&#tdix*vXAwZ%5X(Cc zMqwS7(qFEU>$!IV1>3?G$y)z=xglGsV3+#v0x*QRM}2>NrRD=Ap`DsbMYJM>cZbk! zzVyq|8m3@+Zgz7su

    v+I($f0^q7nUc$VdAtEj7hW+T8BlxJ5Cq%f*i@eWW?eSu@ zSLJ0x21Nb3Mp_e1T*Z{LRYLb#((^c-OmZAlI?*9663ulgQMX7`{FerAHb?Bm3yl7w zY^HE>%Z8P);V@($>FVZc)O%n+s157G#0O=}vU2xjwO!yZ4v6`$1qa|~!y$ndn@WFM zCA)Dni5P>mDxrRmaR^J~m7)a{{k~W)PYD#wozw>RT9%t{o~i50`P_Rbf?bIvGCl;` zD&>iEQIBWLNF^VI1=h%eXMfD zobhZOofzZr^z97h6#Z;^iOMkxb-S+tTPk{A$fz=B-uovNlwu-+Vd%1sKp(K*!uy%xSI8k z*6sIMQeuEwL`v(qtjS)*fMk-l1Bxioo`!Jf2h=$WjN&q zxRyL$sy8VSTLEToRwwZoA&h;Iu9INcSgE?s;VAj<0#Bzv8>c<8cGH!>`L7Lto!dsc z$xQiGT(zOlp%epLs{KZZM$&9v(gEm3_LTW@rCqSGp_~0x9^RW*GhqmFi|*O{ab!Wt z5>4BF11|e+p>{9?o`^RF98MA>r}1c-HN?MuQ2NwE`ZK<`p4FtbJP{h6Wd-#sI{+Xu z2>1+v@=yaKZp%m6%S&-bVATsCBhRB(ue0G%K#Aoz2Gw72-$S|GD5PUVAH~IthFHi9^FzB4(^b=OSD}~O zT5oV2yPJAjj<5PX`3a1B2jOD$D-9djq^VhDYioqdo8eUy>;;!K0g)dN8JB zR{xZrcc?bJ<2j&LA;9~elEUl5`%eN4K_t4)0sJp!>*v3AgSWZJ^4=iW*}@Ps)PDyU zzgZ<+ENDeydYDj&SYXirhRpqt4YMxIK?D?dga(BG5IPIZJ>fwW{_a}a#Y}2cFm`*a zcI4l2fKrVD$dB02a=rR&t4+XH`@i>H&}6oDxmceZT`Q1xM=#6_x4bvrFfv%Y?6Zx5 zZtjFf5^5mtbqfl^Zku3VDnk?;0hKNCeyw?Qfd#O?GaZ$odUp+gvj8bUf~`qEZ&_8G9;W z?btY@Bpvv=|JNb_m+FelGT0EP=ts5OIp`s)zJpquwpR(aIT%|9+!u^F2G*;_9PSE2 zeLTo0GJ8-qVzFe&jKg$in3s}2WxY^o^q=t8WTwKd8LTKrJDWtJziYo}E#J`s826^Rf!925q{Xsdn}VClle zpYWGk_B-Z-dng?a*we44(pgtctXO(C2ozWg3>q44wRCx@u?h{3zYKXf7+LiH;1V}Y zfrw;uGd}=KFaJvU=!7tF^AmkCQx+LUQdKx}It_vL=CUxQ)_!~fpJ{YjCTmu+sN0U; zH#>&V@AkWQdnS(HqHfv;QmmEUxwmj$YjHD@DLB~nY{jC*hR zQB6tt^EqHK^KsJHr-dnEi2hC|p_4<7R!msI3Aun%D1;E_b0_Z##ey`QP_lZ(-)gE< zrN5r3n@d%Z0C)KFAb3_A+m?zII=rhswp@Fo&o-KJ6#}*5`hLIr^MoC8#29zyWeKx* zo!53@*h#?e^PcbGHg&lF8uamt5CA!fWZ(Kyxs$I`yZ}8r$^)fsSyX#*gIhi3rQ+Mg zgX06x*Sot}%eKKKqYkEvKsG6SjwL!xSvXlw%##whM22{>=xi%y83jYQuE}i(TWErp z1MtcEIBc2bRKJs>?Gv+M?9Cj_;z?cv?F3#hw zxngPMedwW6ZY~!m#wTebUt&JHki=|yvuPA#?dx^2!;%^8R9gAMPNN%&m!ALdZfioP z)KKYy)JLZywZ3)D2~ZC!k`^jlJ)!|98q{lhzvUL%Ij@~1KU%$HaUvsdDvR54o&I%3 zUPrM{bZJKYX~pg6atgD~pUEwq^a4wF=bo~koi0t%NP##epSLq zq!IqzP=V(sN-6XYGpNBYGj@1AhUtza#098Sb?dB}0B^l>hC-1%#d8E5RE!#cSU_5x zfZk6C!wcIdkZbef59ix)^0THpy0;wg+$@%LWf^jF7NhpUS%##m2oG)*T^H`{eb zuSM$Q>*(n2DkqJ=MBsu^!KMdrI(ZyY>*DTc4`aqCQK&bMDcfN2gy-lgdG z#cl~t2M=?^RG3AOt+)Kd6SkmqGiz^dH~UHU9%r6m2p?r-ACpSt1E>3%bL#~~A@ql2 zm(k4DoP$YqLfiN#m=uq%G>t1Xf`hZ1YfYa{lDb^%D5ztvy8bmCFKox&tD{5s?u zW2TyG3&PydVQfbuG#{?Gj}Mj?RDpZ_GaZ&IosS|+qX(DlS0Nzegs*l=K1>UaRZta1 zuja-v?-^w#CDw+EZeFjJi@AzOGD&I>zN*RsLmE%t{N_MK=+foHfvssqlcQ&vXKJzT zmt$tQjxg|rl_urd1nZi5X3CqTom@GQ_1dm7lLX znRh!V@0&~kdQ=?Z!YWX)sw(`^8oeVo^9_iyuq^m%G!iRBiBVtZJZ1+bei;B!_ZS{&Oab= zc*=q@$qr!1B@)A|hb-UGikSAk3(9A$7Y<`pgd&kgk81rAcUiT$EW^OPTI~*t?E=vI zKGWE67J9d#lU4h%$A|WxPYfI-v=8>^1azbtuzdd>>VHipReFFs%u^~V#Am8()*0_u z1(#^rSEpVd#2y3;VlPd*Rf3l;GE|3GB#n?vd@v^&L^xo#ACfJB-PCIr7Lf>vVlfF* zvLOD!`HW%m17jtsGm#enE{795p>H1Fj940+9~Vw}n@ds0_-#AKe?^dE5Lct6H7J2R z0R!tpV0<2t>YG^TJw#@<*0OB+;C$bv_&dZ)sv0!5z405+9PYGl1U%@LVpg<6)ji;B z?c=Z`wEYAZ?mGZ>*&)=zi<%MICN;La)&n5s&_P`5$u8tWz2+ES#=ys`$*x46SL0B6 zEJfDuO!eqi@XUPdHC_Z~AXDM$|XK<&8^3&{bXQNNQi_z%EdljAB9j3WhVZ zj*({2KCfozu>S4teRT0R{o;7|=y=$S+tulS*<)j~b@P8cp9)*8vJX|?$3;Ixb*Gy@ zKTkJEs?6L3O;+nHb%n0%nQ;antn^=*`NPnEAIQtSZ2s}U0s*yh0|CJ+%7B8Q0YO1Q z0bN9arqohH{C~CSrA+^uLy7nGePvn+KZDt8G;YtoyCEhBX71I_XL>*DzvX#m~0(_X8krRCUm0Iol8siRq! z>He9H0gA+&yPrv0CsaVK;xJ)Le~y@Ri3V;LXI}}h%9@d3r6`xW84E1N=Wlh@k}pQ9*4RS|aY3bk& zwyvA$V4sdcLck7>A>>8Vf5gEnQD0l@F@0`NZh8QY#}@+M9ehbap%0Yvp@);`laCvC zB^K8x(iu`rn1VZ_l9&M(EdB>lA)gGhWBt8Nf=T~~bz;;st}fswQJ&iXBzC5KYZ1BN zK3isV16%;K7Qw|Fzx>dOXT&-P*75}1Xl!qNl=!RApR?PHW&7T{>UkIfT;Ra9pb^J8${Dp4(M8QsMZ1sVb*`S}_DnT^KY^R~O zl)d1d@xuL?Tuul@)CfWd6;b3dae)Fau-fn=Tqs}?E?_Xi5N~$pHg8ck00U-Ni970J zP$IKv4DXf^r8k^;pF&?27bx>Vk_=3jB7+Jtem)b+7AV4ZV9k~-JxZK4GySwPN?ihx zwjPKXk-zwv(xDqXmzFI(a4gPMc7Xk%bITfH)B4~RWRk>Gw&1Go2#-6#gwqC(8Mn)O z2^4@}IhttdjNSQ2sdnyxa}Rfu0^Bx(KeF$P28Lc?q6($%Hqziss zMu6kW(9{uDet`gP3i*X8m@^K|drX@@i&1ZPhoZlg)7CZ zLos5+n!cg}Ytjqn*`mX*!19lUa$1#{-L}<$DFEk@46x_UFDQE-A8wH{2x+NrWu8IK z2QqsLJp-sn1qEyW5&GI02FJB7o{A0*k8=EFg7%0##75!4e?vuu^ZlsRLH3x-h)Z#R=7MSIw-v2ec z(pkuR!{7w$u|~%-H^pz$rVkVk<)-*^kHJNFSP*Uc=bm`{Nfjeh<9<*o(JUH~(a`uZ z^us+{g*meii6!5l<q$Qb0u>P%BUQG+73)nL=9!L#jYnUB|}qR ztrn;_d-*`w=9n`1L(p{fS^4?yHh{@5VXfiN*6n8!B~e>EmQ~C*`3#M#g3@D;ZYdQQ zL?+sEJ{(UKaWPsFk(Hu0I;&U&#~qFdB`qnttNkjhI;39}ITSBD{5w0*|k@$Vmlx#aPj4|>=(I^W1^ z(U$n$N>Ua-FlbrmEI^Sn_@pN_B^~$ipTYj-_@%RN=n|!vrd4GsQ4p#ar#{&D)UZKI z@|5EKl$VCcG6sw4G$R%D#Bo}YDIDvj1M&?oLV z_P9}m;e=QzMU@~@Im)sL&c>j~Nmb4MLR(}vD91(WT|0bZsVqvBIu5yj6}bVIe{Xbc zRq9R%5b#}Qz}V8=9z$Q%g5UCd z)r_PT00pwQYf-v%zZJoEk|%=G5BD2inw^*rYzdAXBHAp=YLvLPNjuU$DZ~&9au_QQ zbxoNltfc7GEoZF}lRU<2LqNyrk~$Wn;RF!?`AxsInhD$bY>T>m{Nz?X2cn|7cS57O zp2pmRP0?~PHY1~g_21xKA0B+)NE}q_{p$xq0TJuCC%e;UaH-01vKvK1N1F&3!C!5F8i6i|50LTm$O@4ozav#;faC zpAUoX`P#nh%dr0+w%#c^&!}D7j_ovR>@>D*HE!J4jqN+OZ8dCc+qN6qcAEZA-*=5Q z#=pk5GsiQ>z4dI)>pG9~5Tjy!je!^SHCd$J(V!xG88N}|zu-YSB^>#~mLCNL$-{*C z)cU^j~4feVcPLONk&ubWo2>x2{? zNP^N>PR1>9FA%Jfttq65jx+l(G1P<@=3@Fv0hRzX-&r76nb$oG{nd`F!aaJ)bi^1+HVb zRG$t2T}Wl=4!8G6fK+p?X>7#i5tmY+GdZS+HDi+C!b^5{>^1ml&+7y;fd%L?^i zN{;C$!pRiILg0JcERQ?*Zcp7iE()-@~=c9h%wA>m@q%W`bt?JBbZcK4E zfxzXxXLjU!>{oMN-Zj)9ILV@`g|f2HPW2K8>*q<{;D?igwvyDdxkg2%WlA^DA<(J& zbnmz^Kkfp${9$HVE^1wheeumM7XEvJ)n1};&iN-|ql2}uLM?)>sBTVbSuo`T)n@sKDgb@0c0nBlm0(@g;eI)|K}@4)zsP9($?IGQPjoK`hPve-@QQH`WSz= zav@C3Ja3~U#!@aQTnqWS=UVoptiD`0v!)}7i(-F{P?MRdtA23n{to7?%A})k!DE>a z22m3UeZ4-&2u610%iYC)`tflSohAB5!Y-LELxcnAS$6GfuPIQJm z4c4{a`dMX~t&2N=3&*lnUvcAZ9g|s1tgEv@_k$$lvgzQ}cSK%_Thi-d1NDKo)nG67 zJ_E!LVALRi^m7}mX`z%bQM_&2iXiTJg(}^*{X_b(d6IU>NW& z59-^O`)v1=(eAZwH!4#i*Yr8F`Wv(u=v{MjdOjVt)euF#g*k!waJdnNH=y3F9b(Wd zD%+uW4vs8JrJdV$b!MkT)f+s%CT05x0oyqZ?RPuMWPeyY3Zk^lvDdOMA#?>Fc(;FH zajT7Od|+(J*%iG+1@z5vTq6?f=VYMlb8saW=b28sX8L%i9fg7IINV_NcptcN9|=U^ zqUf5TMVv^_D?>j!!vi&g)tI%G<@m7yD=YGaU#$2);#>t81I9HaRi5K7T=XN~A4qOZ zPXo^`C$30C{7}2-9w{ideWsTn;!SFf<>oJy@708*r)EC)7}!^YE(lwi%ad~knd zf@cM3?R};|E|7a}D5RI`;VI?A_Vmi;Pv_5Ww}+=6fBr}U-O(@7Ay030R3ct=85`Nz zhf|y8V(d}Kdp$0rtr)$}bwF+Ks7{>sX>foi=lFhSZ->nYWXC!Qr= z())QaTQADOo+OeZ5O>+Z!TyRN1U3?MA8`s#+rQ)(w-PT8q#PZt&w!oYZ&~H^5X>Y^ za{Xw2XR(aO$lDxC^0Axu76zi8)|Fvobrw0S??ad>MUmCaqZ7>1NoaHae~`OVdZ0FP`!FQRuC- zyxlh}GA7p7SZn|b2SjbBg>KH!-(sjH`m*+!$=ewK{C6LB_vNBx9A>mKl3aZK$I;5N z-$97D=JqTGn`ogGSFjb>wsAUWk6jDk>9ZvETKt%hz6T3xB9^M-L_ zbl3dx3l%rwz9GQ`?(0U2DtVE3lq45fa`ZpN8OC@)ufIKLlQ!nTj_zj`AFrzUm>xBk zQkOIXzdTG6NC&`^K2qib&8LkqRMcm=63tk1GAVwrYYJOi8L?4@yl@cs1H{wIU@Qbz zY-x0c1@J4Av3g7d7iX4Gkxl05XD2E~YH_J?9<$f}5PE)8@>oh=QSP2pFqUE66hb5g3j ze2MAi?igAI(gmwZ^$fkL{Ge%Pb?w2*E2nlg%2YE+I@E+VmpwPEM6|7K?kc|G)ueA9 z#^`#67T3VeZ*bwo=gr9?vJmGVdC}*q`pa@!%dzuup~-f#X`a#GfTS&^5uu1MH1=x1 z>DJ)HQ&wx@Z4YBWIWH-jOU5^TQ!CUti*gcEgdo`jVlmyxjfCy-#L0Lp`A?PGl{i2B z5=uauiJvKnk$b0Ulrh?MgY&pY$LD$Tq{FZqkaHQI_6@eDAbx@}NfujCu8rR#iwLaa zDF!6v1bXRl!@eoviZ`Fbi-Nn)GyeKTw1A}LU~1FDcCr~2=$l)y#!E*ub;@Q)8OO6!{wt~Z!Ktj zJ&bw3zn;c$QM+nmJ1yo1_a|+hNi$XIeoj?0r%farm2XhwUw;rgp)xKLz@^3me)4Vo z044W+WIIq8DGiDEjVnE)2Dz{W733Tt;zsPG{$hrA) zn{A`B9#ziRAcr>$p?YgBCr%kf03uS9%Uo7x|Gn^S=Qhn*Fgur6_fO8~Y?A}}Vfc3@ z1+@d{G!a!rbaBOEgQJWV&nP-AmNQcPM}ut+oVhzlkQQwo)%INU7Ipo5`?wo5p?gH1=ze$BZ6bn_)pbfP2;Fm`%Gd zRlzevWR0@c;I_*n$(JM57@PTp=Eo{4D-_QM{FrK}H50+}-rCZuAY<=-Dkl~;G5yfv zu2F{wOGJ4oDn@^V7qPJaqa4y)`m|5%4=?74rdT3c3cukUzK&^;czb#lRuA)Vk@(A~ zl#x%uamU=*=(|32nyc`?UezZ;c6y`P4I;3K&d5J{+N(hfGJ16W;3dOm` z)ix}%3-6(}%VXK`s~!poOsA`%0E$Dsn6E?*nee*_(ZN`|*b=`jfc;HE%3wY+KUSWZ zWL9vyZ{l}iRnk1|`bD$!i^U@9Bk3V^jDLm-bq4w&H<)5KT@2Cl~6oz92JQ}-$a zkOSB0mQQAJ37+%euwKb}zhh>j^yJ9vL7c{wxM15s3Bfsy^jVOjhI4D2E82O4LUYlB z4bvFx5QGppq?5+E=tlYkTdyKJ8EU7{his|Nw%6C?#Y$eq0h=F^tv(%$ zXLRJJAn;^MYZgMhKBL~uiXXTjyZ z_8n4+9e@d5#qJFW7l2_fgCd#wjucc9VCrUiN`#7CTB5fRz|AfHXT^ygNjjkVMc}@U z!XqTo=7)NnG+_SylMUm15Okv{1l+W7hF-P&{LfkJZNp{1K{})sS9VD6y0F&S>A_ZMS&f}ab+p+y>b|-!k@w}OsnexAI4CO>KWryhrIdY!%LYxsf~~lC3mml)qF^T=@5gO>q4_V$ z6!c~EZ1m`Ho_&4y$QHuQsP(C0-2s1_$h4oyN8Cq467qz@6RWS|YX^!Ot~d!?YH0D_Mkk_e+ygU-kmEJEif8gwWHv zq}e-OYZAAqJMDIpR=rh&6s=CdZtn!J!FBh#M7-)A@;qBjrkE=T6y~nuJ_F?60Vr0D^e4-s=dWT_*{dZbclVrn}6fYaK%PZ|1BI@D=8Jcd4#)xxkLL zq%V`pod2|xP0`SBlvC|w7>sl2^pNj>In3?utg(+RBac753j^0FYw!Y2vQ#b&BLW69 zI&@CTzU)US8f0pnlT<>zEYVM(Z}SjCsk&K8A8NCx;_uO0GuuO{=UWPayW2qc{#c%Y zLzL{duk;k`Jy-+z0A{Gmt%SjOB|v$aF{G_NE((KXBv7i(`?oClgtXmUZic-P{E6%n zvV>0veh^!&kPl!F52tRN25sN*E3ql0R5Vun=0hHLx*M|&>RMq<-UHpf3i|`EO&+ru zFe3wQHgYK~`YDu59*heN4(IV-VeNF8lnotqW|(AkSQCV*D_>ud4Xd(W0ZLlYD)eOS zxa8v#tZfl|Ryi=hLGegpTafAAY27CS{?*h@kU@kYf_a4R!$SnK*P@H3O~1RkioWef zw@LD-?Rz)(qD(MwtsJbCi{qJOSd1|3li(jW?;8`a5o6#9Z(ON>a^$EBAI9(D>?SNQ zJjkCFrAfmH_nmw`o?^KLxHriDy=GllwUE&nmw(@#z^}DeY{Pn3g~%$V3IUvp)VIx0 zg+5sBBRGm}gc%}cAX}i^*I{P-Ah{|1isD?nMUBjAve5tWGr&Gyb7-S4RP4~67Wba= z3Uhk;Ud~fH9ZV>8r^uB{o^6SL(c_3CK;ytqWOoEkezx?FxFl;i@T_J0Wmnu3%2*{n zuTnEjob_c?L**B0C6jS&q4VV*3EaMd71ilu#X4BO>nlgu-0kt_KQw-_0Z2bNio}-D zN=7w48aK_7WlsI(28}B#NzN61)>!!>yA%2!>r((qq67yl4CX8 znlB%L)IZh>K={^)34D+xmC`@gdj|UKE>g1T8R!S_u1I`wTHE$=VRGC^fEtJJh!+_N zCGU9H)xJBnpEff^`C8ATBS&@AEe+-3pZ? z?>64#r(deq@4_TL9ildB(aIEGqhjY41q8icUno4Jd>QY{A%UKGcHwTTZruT)R|SY~ z-AR?4(BC3EUiINqJYb8xkrxO2GaU5H*MfbpaITY?&gHJo_&UyAnWpbF-jf;6&t62I z`^O?jzb)-uQZ4hRcnh@dwzcJZyNG#cKZY(MAKX-fj&l4l4X&hWTN?chrH=wT8pS`= zsU9+|DS(S2|I2C4t)sY-<7zosF86g=go!ha@yTCu`42a%i^l&hVh?=6JT%b2z;tc@ z?*!vo3KR`8wzIW0HFmbNvt|09XypG+F#gk%NBF~T?>|<+a%gSXFiO7Bu7nl0DdYAp zw<|hcS4y7-1DcN0zH2#B(#Bl1{rzJmeQK$dVrpDv0q&Hj!zfD6yUQ&Vx` zY^CrdKiysHNn9C^%lDSD=K;=UV~BrI`I8vbdoWl`e2h%~z{|ePH;{k%b=-ili^XVR ziRoiP_fWOhdM-C!=$N6g6TFOLlFMxGu3Te%z)8mLQ-Xe}oU4BP(0U-ysR8?DH>%Yv z<%&PKY~{y-nMC5@@@PI{r!y3Ogm4()X~$^@gI8+DAXdXi`bCf;5d8rXG`R4*I<<=f z4KDiEs1dnW|n&NGApgw|x$p0oPJ`ab2 zS`Q#2$c#a)2bXK-m!6t$;jk{kecotADc53;^PHBA(w(i@0K{-N{Da}7e4L+s6sl(d z-OT`Zl(O%J><6MVvLwgh+bpQXj~>zVDCHHZh3od*uVLgb(k3&?<|S^2B>_ABb!)lM z)BRD`hj*Ef{>k+6>s|DRcezkz^f77QN|X{O zN~_ucUiTF{P}>SW`5nBRU;5$PXqxdptKC2E(y!=s(_l;R-d_R9n@YvU)8aG?bNa>` zcQY&pdGWw&zJ<<{(i3x2)8ZE^dQ;_2l z!%vuV%|9LIwGh<=YJw}4-W%__uxB=>p+IQv!bR{A7nya)zm zvOPlrM*2jhagS}nH)oW(`B-Kr>SZz;22p2$&HCJDtW?y@R5L118is|v2L6YkJ6=|F z2G@@Wn{$tQ_S2CiYv^xOs0wj(hkVRg7%&`uG!}4;8O7`K$UPzm^18Z&6zMHgH zHq6Q*V76;%GJ@W3B0%wY8&UI(UBorkwno-{-{+-S1Hr*9x8GOv*|xfA z`4nenyev+;r>YmG38QRa^m~&1Qk#xa3oUqIUe1_61qTJId6e%HSwerIRh4r6_L{fu z05+0e^I1W?rH`55(>>#iIOo4PUBha(ey@9Nxc_-9x_JX_ae3H~IzEucwBeNTLoS77 zr7OdZTT)@z+^$z|N~5nvNArLPAGQ_@r9!s<#Q!Os-r}IB5GwBxcxnd)!?A-A`oP{% zX5qU)^9=9#6}I&Dw>biL<47Im%tT-(n&*&Fk}fnMpq(9>Oa6E#a8E0CQx}{ZL)7=j zyRY=6JeGBsIhA+6 z!w<`Nq}2r6Z6uBtoX!9y@Ngnbbf#B&R{=(D%_`)GtPklCqCvm;N9$4+(Eu>TWjVX4 z=2Q4bXC?Kra-^D`HE2W_@8_zIyX$usEMCi}@0D(v6D%&eH%z#*qU%agpu z@^ir9IKD!3P_*FYZhRa+29D;tk~~{^rROu2Fh#IU?#1zO27Si=`H1kTAW8dx{1+2w z8Jf@qsAVPQAU=qAX%Cs>ZAk-|*z}qWv~X4Y9OXRXk%wX}$RE=VCTxg;OeH8+n_xXRz^B>8(@` zovFl|F+-e9iE>yaA${OWZa+0ygE6~p16)$mMoK2O1z*R{+-}D zlm}3wb7mQvT+ow$e#ZdJPb~@(WQ51rC) z4;ezM)cs*#i(w7XEs)ow%N`~?8TjaVcj^ZFPLo_V{z94+pIdgB#XEt;VK|XY5UWUo zY7I#+FynDAo@dpb>p~i{UU!2zkFe<&bOu+0CzFt8M)g=r+1Y_`+fSUa-t;g#0EwaY zu5j6zr|8g;zl$JIXdQOkL;5J4$8b6X=i1+>UQ;qY_%{^dI8s<_8d{lJyCR=M+?TOz z*D9S6@nx8qD@Ghk%O2Co8oBhpuDW{xB;QJG9n~FL`%|p3S82$%_u#SBZSPf_d88La z2=rF!8jPBsCSU;X+M(wdl3r^P=%%g>xsXovp&a_3nk>>-@Sj9{*%{}ayqUupeu6(n@=QSm_{LzJ3p@}m zxsr5?brW@)enKunFy(_fLrZg_9Se^kB1v$wc}}h2vp)uGb+ho4%Gx5P)4$Yk+fL9x zUgWkm&BpL2oB0I66i2MlONMK?Y#JiNhY`EuVu(PtFijtdO?k_FTAGTbXBq4NKEt1u z!PJ*Ur7jhyZDk--J3 z03i5*?@ky?+gch9%6?6hrob5d_<`fd~om<7yaF&z4Pmd!v&>B@cL-Q=b_(B1-7 z3T#|;tDjHD@rnrK4)x5H<=l@66qjmS*5k0Ssa!%VomZ7AJ!P5Fv>1OEUsrs}ATMBE z3lp0HX3#?qI!raGVpcvUm()jO;ZamhU~n$&!D+^Lk$2g>Qy$!ggcI0+pE`-$A+!;i zh|*E_Dg9dYqO*GBm7T*9tmtWzEvVr~QAK)}<>8;~jY8Co_b>#@s$Y$3k0UD@BO1UT z`;enJAK1|xVlY1Y*jl1>P6x){V{G2&;ZoWG7kaTmFrs8=_bX^J6|a|$x)vy;0VpiO z1LGhXY;2u~!u^AYG1T8)pAg+-u0F(CpEX8Amk$1#dLrLVeoL(n6+zRW<1KdcCWr~g zC!3VL@RqbWFM?<@FPt9v6w(WYgp-*NWJJb)9J0y`Q8!7Lj*Q}CNAI9WLQ8uvT>fSS z*bD~qhwCspVDkLrM>5kTrI;#kXIIA!4=*Gs{sArVdCxPc_VB^ykI5jOVVw(8NGbhA ze9aCyk=8?ccEMMtqC9hGs$_@5$z}%^U<;1QXi|#P;n`1Ah-~_XVZF7^_vJG(zcjz* zbK+o=N|9H4!5j|};~BZ83YL>|`p?ZX;D+T+R5=!sNNr!_cpS5D4AMqkhB9!`ZiYzPHg6?eS+~`1h{7G0V360~Ip4Ebx?cF2|T6G5I zYdav^+*Dq?p8#S*DH#*=tbrz;;2_V!8SVkwi-1aIm7Y621UVrKyZ*&5Q23 zRw!hj>H-OD!BGT37#HL6iVu=J;8PH?N@W)J>Mq=s@V$*Ed=M>K%rw7D;23Jw_?Oq2 z%|hc~ZB!KwWEiG$E$uutcw9#|ET89{sHgC^@ltsWsJouR(O>LwbqJQ|6Of6Ao&l)l zCO02dT4&8r#h z*SLujt!gJ<5l#n?@5sN!r&tV|vGo;j`iz+#c-bZlA`OJdzK@?vSB~b_78>y=Vq0%nhe!nT z3FGgqta+KUxFJ~R_EjJ|(C{{pQ%EfGaCDp3YndH1`{cy@Wyles1QvC=v>K_JaZr?k zAMQBbCTsZhYr8|O1b^GgOe|SzP`V1XA%{2qu?Z<9WF@@mrQyxk4bc>iGh%<5r^Wu$ zRWXix!tKu`)bp!JV^Ma#z7pqVVM4}6t(!r+N*fw#-NA|hFlbAdtEeGu_n4HuI>ENW zO~FSf67cu_rPCwF0W{vCFq0njBSE!i`iUS5gI`NVJxeSs=Hs++=KUrkKV3s{E%;;V zzv4ga=#h#Sr}t3b4xU+BuA3rtBin}9tD1nXL&S31S%x@&+M7i}{xhF^guz8Lgl*+V zkF!DYMbGawGO0w)lVb(A7JQS5((>362b+lk)15t*dLAsKB_IJc{H$n+QZNsu-!*Lf znzcx$82v|94*yA$#I-FQCPRHY_$pL#I__8{O3iQ}(P)Z#X{v-ZLt-@%@cAib~+tb4# z`KZXgL0)n)`v9_f-8GJtHsV~t7fM-~$FdZkyl2y&wYm$xB6|a5R2#5k_P(Z9QnlEB zB-0v5guZf-)82I>y6+~(hrW48RnWa~lz(EJ`s-`tuO;a~q&Oho)mpY~YkMzItGk#x zdc}aXKG+?<=C>~?R8RX!{SO<sYI%Uq2}R2hI&9m%zW4M`?fRO-IvX^KZ_Z2o;3U}@J;`$1BJ9-g(%wzdt{meZ zCDMGwk5GEGo`Dgk;nBMnKmCE;t0nwd*S6;%VigW00h@%3auOyMB@gd-?fu`MvLALGYyZ;} zDg9(9u?QNRELi{F!HEM4`2TBgqUK?5`aco&{~ek@2!M=m9goQag4|8bnR-S?Ms|@# zwVE>+gk^McRno&ZjW1UqBOH^C<2l9VSAX1#s)6AN`%SS3uUoP5_4B{Jt5n3VI7j=p zdnYeiiMZd!UoY}3wJLq(02cyK=Aw{z*3YXC5%N?=z1{dR;5u=WIXJD%pAEJ^>^as1yYW;RKPZe!w8w2aT8hg#DO+z*g=hU`+!} zOpskfGu0j^nh!5im#dp)aO1l8{v#IXrfR>6LD3^7>>|Ga^m5OyE<2UsB;}O?_P?#> zVqO)SvG)tt2&=u-v#^C#Zd(0|dZ>8ITc=89g|7{Nyq)S4%DDHLKNJh?1W0hls!1B! z6RO9T{=)R&q9=nr%x_ivoNB&Kosy9k59>T&6#|JknkNQP-tM*dXF06rDWICd$aiwv z=#cG_l?n+U152cuIQ&gwI}pP0FW;fhyO6YjVL5qh$OduXx*sipjgU~Tjoe4hhxl(+ zV*k^(Kp!liD3}E&2#ob(hjp@P*uQ~x?g%;p8|Cegc#8+|)8;YinVwH{#y@2g4JcjIA;XTesbyQpbC zuayqiNdfT4W;Ox4+9NbiVXTWV_>@P>>jj*DMgd_%P>AC+qR$dUmEyxI3!cq`y8?sL zZJ-oK+T1kKNOMn3)bBuM59f}|SEioDoP^Hd@I8mD{k)gSJ{fTsVHopx52GCezr^$y zGu=p_aM@1xLFP%|#EnU&gG~UhG=$J5?l5ME9?Asq1<9d zW+Lf-odRAONG;0)hm>&=18Fepp~D!w38tXrItzZM$097sae8IpLl^Ke_d~7h>MY&- z*>{T~^<|It8Cl>6vcs%c6H};~#~DpwfCuU)JUtpzf{W;rd-p%Clqj$l6kWd~XFOoM zfmo$M?}`-;FU&BZKH4aG9b^_H3HuC+uKUn75Kc!+mGD8w1gm0VVQu`1FJS*C6%hFV z`!m$BK9~!WAO-^km{3peb&Yp!ec_UunGQL&yu#*raDr4tcq_-z74vh()>3I82z>v; zrBydnu$V{v-uEu_7g0_LfQ(YiJ<3aSd~5akIZRdzx(5 z7&^LmD;Y~R?7E}F{jn1@W{j1C$g$@Y;2VK5gqOjG`zi}{m!7xa1)-2gBSjdR$`4SS<&YxKpQJ$<6Ts>T#q+0{RK$~li;Rywsn_n*)<+83fGv6h%hn7 zlc#Ja#%6hH_9Y!d`byw%D^_Ar`iuLwLHb#sIoPx*Pw??Q_*)9YKzu(}V+^k6DC?oh z-l5e_TgOp0H?%K>8)A*f4mK?9hDs<&(HJaw}wP^IO$CS~YwZ>6p z&QHd6ztS?>aLFAq5T?BUh96ww41MWb_E%2x^e>=agl4kW+V=;u;k+`rH^ac?;}Vkw za(jAaqGe%wE4b?V3yc+;G+R7OTwsA7&!q9}E%h`+6D8gw2p9+!^e|;bqOZ_QR{)ok zK;8X`g_Ok{mA6BOEmd6f7X%jV?YfqXc_?8|h8PV~Ef#4uSe74tl+$?0PHDFdZ8-|@ za&9@iIelhQ5SX~VBdZn_eTYsYS`!X{FO)VTmqb=*#5!Unk-h)x=3jfvgB{T)(VscN zK^n+b2t;6q$yR|2EC;{4|5wm+?Z^8amEWrVv6w^d=RLm zW7(1_LWBxMEGimaP4|q&C-U5>%BXgtOHb`?3M^Ibpe0hVqVPNkQybI-Q920$Ip?2; zmQpccpJq_<6BcfdJ+=j65}*V)hajD}sLumxvJu01^|h8o_Q_hK4v3kg>(~8hHck>Z zha)407Oz^-S;eaZDP)*rSz87>C7wufQP8t_MKuL`ej@(TWJHf%u>f1lfsuqUgn}2F zTnR>-_6Cq78bV=NU{49ttjFDe<7KFU)m{R|#=8zNdt+2CheFQ50kQ9jkgy-r=hzAR zB&!zg+`ZrY^6~Ipvi3d!8s8)Z?g}sx z)4-*L^9d8eqI;*66}T~LH;Ufw`@U$}I2K=DXso}@v{*Ij7#yA&E`D=N4ItyYfp80x zg!sxuM5z>)Pfi$&PM&~dBIVpq=8H<#^>cf+sNwU`h5~*|Jb(2B+Kg@JYm0rbJk#?_ z#E0>bQ1+!A;m;~!bsftsU{VT`KLyBsA=Ts8AziSIzFVhoeIrzQI@&@Y6O{n&_sUuQt z$p{^|veX}&Vtf4@VQaJ&J;BgJ&oFPW!_$P$e9-XZ0yn(){U<`(fykMg5F$-jSrtk< z)`5e=?D=3zS%FLV*bx*a@)uUSvg5grKsqh&yQpto=ofH~_oEMXOPw1^Kwn$Gm3HBi zI8?DZ$7vhgPn6{0By5CB<48nk$_-7izm1&(==v-y;Sh|moKB;}RDb)Ro9Q?179a=v zS-dB#)#Rl-hw5r504#cr*SYI^`cI($X`W})@%e|^Qn#8qI^m4?&#Aif*u` z>)D|K&^{>?oqtI?QrSDB7cQHYw0NBzvPN$(H(lEg8ouIX0LW!*$!mQzZK}mI_<#It zs1>4KIKl&}IHQ*HR7F;3;>DPHE_xdWK2NXG7%s~<6vl#4lcUZr<=Y$HO3DnP>SY+X zohjk|`+AJJOo}jUmqY>wQOb8VQ&?i1M2~)|_5-P@!XoYX+_Y16(bB{iN6GzCBg81xh6 z*O(ntPs3e~`);-ZD5RH{94NPv=t*|L3$a>T=8l3@Ngf(uf%`8r?<`8?8+KXQcKe@b zK7>t!#Yi3uqaXEI8qSMv>tYu)b^^T8)>A{4e~$vcs`^Yh%iQX^TtpP=?vshWrCcRr z&Pj8o=HCZ{TMA^(R;0DI{>-4>w!LgP;;G}3GT;GHiAAuOS$Uv65wN0B6LQEQF?UmF zj`kFr5V%35yA=b5jc$!m0mHe349MV~>s>QX zCF?+-qJjDiig9g6cVeNCk9ruEL(7pC)y-F14~)5Ccv)Q&s2LLtHDV9atq?5Q7pAT)!vj`txeIhI#V>w%|gVUiOHX7B-yA2wrBoI>YhCm~l!*DNA6H z`dTwt0XQOcmi%{S1%5j7+gGkUKN?yr7sSBcGzoIW?aSdu6}G-BBB`|q#+!7~ED1nN z#S6hoQ9&@_*M309C>0+2G>0aRJBDfTsl}j24IYyy6S^2Y_RemyesmF&{#eR0Zl}PV zkL%YzlFkfFJ`Hv@oC>yo`9%}Qx6LAC(L%YdMz0~LOPm-jgf3-gT) z+PrUEF@hz4$tWjKYB|y?;>&=!)`GbL?e1vaf9G!omG`=H6-S1LO4x2+V*Bgo$&J() z&V<^5e;@)kHlEkv5~n590%G>ajlik)(rBwll5!#~G>bC7bBtmrB*9=e~-&4${TY`4| zu=;SRdAXV^>?&T;P59%hK;2!2btmA{{Pw!BspIIlNW!PHZYK^cfUO*``)zd#@~GI1 z;6-nsqjat1j4iNXpgIG+c0Ek4Ls9$t=OFrDe`cSR{$QC#WQ~}*klbq`W`3m=*gAXu zmQ-d1JB5rm@*jsm;B*Q86@#+g(#0%MIUZ+&SQ#jwVQZt|rbiAe-&D!;0KYTPCEXYi z+oL34!i9yuXwV@c&mn8Jo23;~e#k{;@MmghvsE$UrH54ZoJi5)e9|cVOo60L%aj8$ z(SLq;x`nl`+1F(Ed9x+x=Z#rGgaDN7r9O7HuBR;%BhH#>TrIxE>q?PMGY-a63TD- z@2fIJl`b2}ZW0|{kjbz`L99h2b$nNN{>&PyC1k*0YbDcEk=r)=k5m{j7}!FN$9nFk zp!=|;P-(9a$xOonQng4Rqm;zHl9WCIFj^uks(~$<q*?R$U$Zm?gmc?rt(T9Kft!4N`xsNoJ!vNEe%0jr(iw)-YkDsEuoR|N zkRWerz_+q9*)i33ftb?q-@aJP@^junxd`DL_AZn8Ujejie|-XBNJC*YVS>N`Pc1b+ zI+$RfJ!(K$zK#7HV|XvTqYo9F23-R)Su@n}2IuZMjNS^=oHXbry*`~J1nbQcPO zvqd}N)h**vnOstYM7rW#z@MqpEt37gXdRj^y)K?Qd%OekuE@`~j=WBrA){=ymt&T} z&25g_3rl%mUOuvu8fr^9!h*Ka-kz>zpl$$o{x0vyCciNGdLg*>WF{Ez(Ao}1GFL17 z|M3>oKOA1r?VSy|t8B6&b$&n@GZdCKz~(rYNr+OnvUl8RZ|UZ)X~uBDWUK8K=zv3t z{RdLORbk_Ll(8t7bF7Y2)|uF|2BF!Xd$!OD4V1?nJ+mvnCwlNzPo!+s0|fsth08R7 z;r=|+Tsix4*%`z53PJvkA2U-tNaD03sg>1l`%9nV2YI5{#3{GA3dEKkA=TlzMj7C| za?ij_@5^j*e}jRvc|&FRCgPHV++EKUfm3Y9EFt8nuG>_Ws$3?}fxRSJUXM z6tF;)LjDj)oA*bO5=hLb4IFqW{xX*tfx6g@obkI8>m^xPI1F-RkE0!aYY%sd*AaF` zA6)VPg3P#kphE<;7U5W4#=O{hTf1LS9?VDsd7pd1e4DCw80!46Xc_74Z7$GY_LaMk zh|=KpAuXI}m!>dcEZ9A-;>ZBCs15;##Y4!6Y4G4Jx0WFy6A*!{$;`Nkmf|Gn=tJ-1 z2zmUCV>5b#yNIy6vVE_cN?m`Q31{9lidJ6ZZ+Y_TsJWKxM2D1D-Lo#wGk+L!(mW4i z6gspF*AV4O0i?^?X)WWivFvaBTsS!LtDf`4dnzcd>1vKIsFSLt>4%_~2;_kUGv0qd z1aPv-)lV3VG|1vSV z+PjFwBWOVow^j;|JawjJuwT>R&uq33IZKyP*NzGFZ+v-f$op#8m0sWC0VcjIMkf=S0MxY>KmS){GVOSq^+9R&r3>10D z$V{7w4NSaPB;gArDEhBQVwm*+mGHaN{GZ^3SKMyOILJMKlqV%!po4rS-JwuQb8Ik4X3_U;k2~vt&(b)l^FfC zl%-H=^c7~7Jca2xLKRK0;*qz2qs)zaxgqsWL&Hf7QCOhNLOX)?CDx#<9iG5p8hP{0 z&U$?9!wfUoZ8kJJ2r7_;5TSY>h@m8nL4pC){0&jbL7uDdnV2bNbdfk$kWlwSV>Diq6ZsA*v_6Kin|lt} zNRCq|yn`%U8+_0wh)#2feaN7XgGQRWhwPclsD&OG)@?@pbG2>tSoMs&vAWw$s=uVm zb}u_%v`W?62)Dq*^BZl*i}PJ^g@N0ZNh{q_ImXYCoy9t$31eZBz9?MO#k7@~$Y3(g z@@}9$+VlLW5P=5TgMlwZH19?ci60rr+YJ5=Xs)iVNa5sF%Odo9*Wk9#N7jZKncxVU zf7*MvH#)z)9I0*;l*XW2f>cs;{^X|=j^iSE;ZZdo{j5tk)`|a)Y6~=oJhV!r)FE|H&g@QU;9k9 zt;|nabQ9#y$PA-S=uiKdRLp%tj07www#1kngvL4|NW_oT{^S{RiqW{j{UsRR?q0k1 zNmXW=Jm{qyyPP&!Rbel8CK+h07rfUJWhFGRF z>)gS^zTo2@6qR8hElWE!j$3hw7)n8g3Jb!AEOVKz=gq@x*XSXu=KvA#{TR;&f9Xys;RM6<;kqAd7xsmWw z&>u}j5sj1^9!IzteN`rvo}eY3zKQgrm}ZQp)wEJ%V1Tze@9UFfOFD2u)sdZMUze+D z)pv0CnA;Oh@)`0Nm7nzX`2gc*P6>u8xS=ze=s|iprIp)*zi1vxQL$hIZ}8K+?C$x!Lthn@vs!oOeNk-i-l+YLtA@GU&l^ zqFzN`rO#Mx*YyZ+%B)yPy6TX>mGyXLaiQ{wvx@UjD&y23&$~l_(E|T~wpf021gdOs zf1fxaXJ+(I2*6w;WVaLzIs*eooW_}!ay)n#Ip$roJJfV?O~^xq#bN1TQtV-aaXL+6?11)8Cph@syKOSdW7 z$W~%TQ6ECV1Y{tl1%^7kGTx&D33lI*D*21i!t%dq&6cl5RT?CgPH>GHW<^zSVpz*^ zy*%74NZ7xfCB+{^U#-YN_x>1miG5b%-AcCHByjD(`H_bj7BKa``m`AzYTIR`wHwN+ zFCigo?FIyq77y^ydAB5YX0w)RQPO1=BM#$kvl@jpK1^Hu`HN^wtNy_^g?#sXBBJ}8 zT6i$bZ^r-YK{xgNuVnrhef4vVro%7tzp;VIGD1>Ul=e63y?r=dDp6c)3cg97U%+dW z)W3CMChYI360=tB(`2Ruqb6@_sems^P#(we&awc}7Rtp(hy%*&VoG<#?=SxLqPqW!rwy4LrSfv7D}(WWe(mF>j?fq5UJSzX5Aw!xmkz z`@U(I6oG2+qSb~+qP{d9ox3ej-8(T&&-^vIaPDBYF(^- zxofT8`+nc^M8^6RU*p#_rU=Fn_?Ef)1|LBR0|upH<85YNaIdj1OQFM8#-0!Jh%_O1 zd0U3pB;cvRj4V`Vd_s@>J{QV|?Tgc|Gn40By6Hs{Y*6x&8M#6#D&pEbN2m04DifC=OFM#>0t_P0Y*u)-S^c3Ypk7K=xY9} zch%RhuA0}9{jBR#g#Pc?AuQ#OhIOuPMXhxtAH63SYg8?ZIyX!1#N9DRq-ht^9?p5= z%TTRX`Yk8!dV+f5aB41~+YJFd&sW$TeNw;gVah1nm1vUDa6%#smJP5#q|8K z6XP}Egj5aBQ_fZdKj|>4!@t#g$F=>&!pVsv*t_NPH*(j7GV$D9&V-@5Ntfo z4BLRrPF8GPFyp1YWB8JDXTW#Q(#^3O@iwA4hBbSFuezeiZNJqRs2m*xJh!dB5b+-I z2YYVoKiGWU3;%$YJxrb^9Vd?8Uoq{xu93_g1FKG6bN_NJw;bxtxeYhD;uWDPm@`$P zT6Q%z{n|O}uVdRphI@@a?GO!!d!BH7cx9X?tnA*AXB5#^*}-{@vWjb9KQs=>HwC@W z8ed0|vC1Xm9(xy~u7-*NkZ-hUF0b34^xb(qXE{H=N6e)-KR0oI3rn;R3-zJ670Rro zY8|iNBDyDf>&@=)W?`BYc>66X00>lx2nH4E_zr0G9F}=^z1}~vd0#eMd7mHMsdmoB z6#!z8{f{q*$2+kR@+;LBj~ovRy(OKha;Yuax_bu)NAsF1S#`uWFB^T8OR5ZCN1s_v9e_L(YQ7uXW62k+&-AvJ zG~xls=1~3u!KOb}mth>1VpK7eXxy_JE$sdIJ4{#t0B>S|rFzeD!oI7o7+hKmfs{us z%|_=npsp|6|HqB3iB9T}wi&`fw%A??3ofw4P@Foz?_GdJK zMN=Z@vfNp*fgm?j^zH~ER5P_QLoXK6JY#{h83^u1-;<0w@nn+q~{3;#>$lVE2 z;iMJjQP9EnDx>=z{ZR~ePkA@B_aH0mRoKfgsbUV1Z~y*EujU)IjR|#`0UAo2x3~CA z(hXpEk;O&s`}K(%dnc7DX26N2Cc9{e(m#d;@I^{a#<{*XN@cT~3dM=D_?0w-J(q8| zYU!%#44h%-q}&L(zM9SvITn|3#36^BPFyusjOL|-98nQ+@D(jpIzyrc z$fFqxl(x%`^}ro+?Y0h2hfO+0f$!#lA!FHmooVVLNG(E`b1;Z7 zFk(1p#d-E*;Xv^-rb3hyV&Ze9;xw0Myh+MeJumw>k&LomR;m8 z1y{wfcL~LnXjV+$elfyW^uF)-7;D}H*rayVmGX@IGm7k*u~`SwE}0qkSD6U8v-S+p z_8s&uq@FntJnIE^YcGa9&)!3PCNeNF^y@*zdSf||y6l!VNIfxXh0I{B2Apx>03sBU zj-1K?l+hW0xgP(&@*{s(Ulw`hgloUj?nUwxqQ`Ur);D0udNz`p1wsb>3t9jm(8riW zosK9mLJbQl|Cjk?@2cN!5<2}y0t_sOfIs!k1K-mou%*9p`v@9~Xq`?PD%&XG?w_PY zcJ!8?O!5fF`QJBQCLw>oXjkB2`^}NZ!^s3DbMCtINK1r`y-m zXB$&tLi-u(@mzs%ML1I0dk+wyZlw|#EbnCLaoW<`!Qaw=YcC50A7LJBMq^+gNkKoT zk0xSuGQtln$L|^XJzhz7;`l@1-qX5s$J}EWY|Pd(w_Y{bnW4F<#{0iX63aiB0Cci; zRWkpGhW{NUA&Apg5bC$~-Xv+G_>iJki*HDG|EH?vw*(Lt)F8Ei0C(e{N`GL!D zi9(s<0{COb$}vYV@(8bD8R5O6_s2@`+NCy@;5GXV7$sM%qKP*yoOUctEwzUK@|l!7 zG8lOOQ5r8cyXyPZlYHSj0$HVJH+LjoJ60DBGN6Ql(y$dp!|cU5(JfSG1FaC{rP#I5 zX6}cu76S!nErv{JP~iFa~GJVC89bo4dVlMJOzkp(NvVgcm#GyMQu ziQ|f(w;#TPE#iF>)q3O+Z3PY}qG?yjof@zwE__QJ(F(DZg|5uq9qBCg=5x?3VSyz@ zs?@oWoG0-|79>lAja6Y9!`;c*NSVKP4szaDNVEp9ofTo~yWW^#ZudtIxe51L1Mg9s zfJnxfO)wcU3(vl22%BpXgGI|}H<;RT1`E-6xsnC8zPj2*5dQ>4YFw9}xzk4qyU}By z!vT9PqGs5%lN=A@>GSdS`!q_$*+&NJ9!~a14LvZ>_kQUsB2?XRl`#;)}GzvV>|4&^aYU*t4Wa;pqt;qk~ zoZ$Tkp#N(Na$>6a2jBFLM$tgB{gyIr z+tVVq(SSo9-9+gEI?C167`}Y!8_(r(q97ri$e(k(##qa$f z(j#AccJ19JA=QHb&lw74w`Q%uI)vRCOiUMBx3O&E^BKqqtqkCxB%N!aZ)D3r!5$1bnC zh+4ua^03j%^xN}a<2`&iOrjqMUhrgq!fG@1aSWf8f zBxqua8L#azzl|??ImNNZg{~Zf+6K1O;HRx%WJ=W91#HybULC3c!wMv&L%`GQy93L; zCp$$sG93jgLJzy5uV{iO5T4|A2G3+KgHH#>x}L4SXobZvV^k-6{>9?4gP z$B#Qx0N@nQ6FyzXfN=VS+QIQQ2_cGueiop22AWh4!rgr}eJbS7T&`N+ma*&#IO8rA zHQ=Dc8w%W`ED!>;Z6>+bb~c*VTHkjX5cCFDYd<%XYZ#VZdf)vjdi5)ASEZDT+Z(Djiwhnq&vt^@Ue zhoUXfMmOg1<8T0g=Ua*^8-ibHg$M~=zI0h5r69*7Eo}ZcIxy~0`4@dz6ca315o|Y) z1D>=Odi@k?WBvH}JEgo!Qh>mQV7EwtU1LMlZ!nuVx9bXcZrU5*uPeYwevLW0jvcW~ z3LYc)#>%+?3$?Np;LXKpD%d~U@9YSOY#9BP>wBDyW)2<{&wYnLOtT*p9Q^G zG|+%#DKXgTHwGTU0`ENe`9K|F=!1rdX%(yRpLq(`3S8YtjOp>e1gH|p~NF{43z z(Q59OUtz!gzW}naAHeWk+&xS<;Ho*Ss968QqTfE=G|JKIMmuY07U_%#OC6-a*{?HFwmS3Xzbl*5EB} zIjl-n7Wl`q?RN?R-4&nI?`=vF?Hoz^8D>yQ{=^6mJb!uM7qfYdlF*r5W#BL|+;zjX z`t*RSYYeV&(YLIbgX0BUSMv=iZ(to#_RNjAznQK`2Stv>94wr3TXJQNI_i?BPV^Fn zXx3m@q>^_G9noPS$<97jw?a@44qe3T;JV5TeSh7>FdB{nQ2pp)PpA`VvIRM8ZG+$T zz=H%?7mt#n?fEOxC)=-lT==3pITM^(k*F|Ut<&|WpM|;LWDD!_|4xygzTRxr$r0&Y z@vW$4b@E-hV@+a?UIBOM}uz93v1K>BQ(CzS5RqMaBr^)bR&LQpiN8Ih;iTFW6h z*<(CblO47JK*uL^aB3+rx%FGWm2Z3|Ef{MU5F>?Hh>Y+&c_VGn$hFdSMMx&B=)0!| zofI>Mrsf(WhI543X96Qy=oESxkZOc|VYotGe|PK8kdPaFp$g7=&(z9KYbs>EpoX1l zE{qQ=Rf);RZAcU|(a8;f0%L2V;1|ZAFIZ*58%vu402D37!buVHjT#wW$&}`BKkpa! zXnL8P#(WVsP0I7>r@#xxnk(HDuA>^}}=RFepMfX@!H1VY1Df9{$HV z?%!Yo#YFT37RkJjCi9tPBBboZ4Vmi-+6RlacQzN(vTbGc)#bJ)%|i@OB3W8%r9J{! zSszS*T#S8!c*|+WPCHC-9kAyJXMW7+A)>$=rw1a_KiWX8ng3?`#2|QaT|rKy-ow|a zy6~tu>LVluI0QtLLiq__Pd1d6piQdC>Cc%mC5j0-ez``-IGOsRBIGh8xR#BA74A9i z0}W%`pL#te*7qaDS$Rb&(?P(v$A{4Ma#r5~vbvtpd0&k%QdK8VrKvZ2s?{tZE|1j=35AVV z`HOKY!Id@{+6IIa2{8ua2JQpD*7`tq?T8+W6w7}OAJrhP?z=IR8 z%u+&2WHw(9e~igSkj)^7EI3QpJjt|Y*)uAwjwfGDlU$*Jd^!n!Y^|y0SsToLSsH5@ zReebxnm`b9LD`dE7yvi^E6b!{1r??QwA3Xmp$a`Hj?y&S$sgr0m*^yO#z@KhF6%!z zA{#!jIum(28=7}uO;^AfNP!+~rBVqvIvxx7IL4f9lrK~o!@%^ZbV^45xFv39uuN>{ zi!9Q+SB)(x8+{xOKggn#NVp zgJC$e9s~#3n@Y)@W6OFT4bbiWLg-*roNBa117iKmm^d-VgOn2Jtg*Gn4IHpcivU;E z4++mXj#v{So_I+`BsI48WY!}BU>(yeq>QCwQTGf-@$hMMM*FOos)$Q3=!PRn1$8-4 z^cAPhK-b0NRp+atf$M6o|ot_s^L2K`o6A~55c&ZANQ41G~PFd3tB zlz1vKl8qtXZ)iG+kS&Y^PE;dfD41qDRDcIX=8W``y;7%FfFOhHlj8_h^TwA;g0!18 zy1S2G*PmQ{(V1mO8tjZ2_Iwn`_KMjQlhpQ~GJDxe@#!%j=%Xu>4y)DJT8aS4s#HH9 z<+}9GxQq9j534%#Ht;$Fvd5P(WGZhr99z<5PJHNEYlqe!vE|OlI&)|6$|4M$Hd6MK zOd(~#;*2B>g1uotq^@jAZvnTJyq3Z0t-V~6QRM2UuXIsVSR=@B1|8?^(O;BguMrl~ zqr>Dof2vu160rUz+>Qz^edd$NWuWzChEQYMO4mYor6E-%Lpq`X0A}OI%Zc6xGz1Yf zIq5@KHcH}LC6lmFx0zJeYR5fXRvAK=;s35p@-0XKUPH<5>AcPc_t@joU46mF!O&JXN=WXr$t_545|l*gQ@nO=+fLj)cK1tm4bTKJtVK~5LV zdAUO;k{bXfrEM9G(YG$PIRo6XfWt=w>CRBF)grB>;|NC%%f))q2o#p4y_(D`7XY z+?rtc8Z~6qY%7TM7T4^(pSWxOUKn!JjT}@J;B?p>ihTX9Sd6)3GSWAq>9}r1 zSK6tJCnOxp-Hu~C7;VPUc-!~2y0Q1qZY;sqc>$$qwDWE8?a^&tN8K`^N{Nh0m%|^l z{f=$4K(S(uvY=_o9!FnNNlJ5P;s1lRUv7y1!Rh^F}taESyYG%hMXCfx{y;N zRRWL|E5iFJi)e#s}b-4AIrq?i7Jv%tPBB zz?7)v%ViO?ID5h|VSr#|3f_ssVTKGzC-g*dl`o$w6DE=u{vG}z=BH$76~e@-9GUo ztIbzBQk$gIKC|jmJ{#D-<6Li(r)pI%my`=7y1p`~XF{+PKf8cJm?6;7t-wq(^Jr^BYZe>bfaJ4n)y)>u(C16i?K<7LWBM(Lik?WHt{sBlF zy>@Q*_Acr3G2am<$Pan4GWI$tx$#}qM8QZ5Gw3C2GGnA328U~yk~SG+zx!F0lQd<+;sX<8>NU$ky^xDgZo=7sf{m3 zX9x99tH(^9o7_BPX}5^-3JB12o6i92uvXtC?gapfwwh^DGssDZFwCxTtt~;Gvhc@m z1b3T{i;IcQN=?7HChgm+Ufg!=*2@o~Hr(^Mk&T@sr;O}}Dw&nTVx3T69TA+)SsB4c6mf!1t*16?IfbI;-cFNm3!+7${n&Cepq4p%UkWb zNrnV+s^Uo;ptCy!{Es1`l7QQ%Pv+mMZXir2z!jR>YAILxxz)Gp*aKHL4ZwBEkn)Ke zh*Y%d?32r~dzSi*WQZ027wEB^J_z}ran90Zad$^9$mnc5cpnSwkO1~x2p8b& z9;Bd)sW+?T2=GIPVYnj>r>n)%yHIxnaC28;kQwK;D8pY(5=W^H>m8);AjVXvX`FY zKe?2>?%#1g=l%u6UNFzLtQ-J9`zcyhS;;4l=~hN6&NgJ33{Eg_55d=wHBx^g%*HX` zG1+}WXWLtWBNI7_h6^HKpAQj$7sHzb^VUDx=)igW-m|!RIupsP`EsXoy31^)ryqa& z4h#BnpRZ=O6cps9hZRv226)Vj(FS2UtA_xECR1)19i?IOpS4N&l_kZv}xu*G*Y5egd zv_BfCpE5Xa&=(jHQX9=qKUGf-OW3q0vhoH~%L(aHA;H2(wSb`EFsAGNfCqVlckmZ? zig|A<-?sl4j{Crv(+Be}!aLxz5f+y*UgGYI*yC7hV#*c%2zrMB_|yHtHUFY7x+FKN2UDxDE#; z33~d{JHEARp)Naz@o^SoU&{4lMt~AGqrU${7|FdzOT~>q_LCiRnbUH^dkxHPeLWL! z27W`}5(peC2tF3G;f8!INWiQTPL{@h4i(@8+u5#IF;Fw;*)A$vMhPvCGt#^Rjr?$h zE@FAnE+s3%&pc8?Pylrg>rWX$mrI6>FvATf!qAut4U>1ZqA_N*w~2GYC8|n9Wv!fL zbA`W!(nq|<@Es~_qlD^yH?^y8w{m~?p|fY7)NeLH3=G;BsVh0;l;)3?tn>4xH*4JD zf+Zl`H{4sM>1cBwHgSZ5It5AJ*c(_R|T)8Q9*w%m;+*+c_A!*5DP*?2?! z99Tc@MnK8oW_itkwvtZ9@z24UI>u?k0gp`GEzum$QO=*)$t6`O_%}}eCJ1V(kRcf* z;Y6s2Y7Ur zf^kCGbYZK?zNt_okIOpPwgHatwz{fGen0hXJ#PM~H*e@-i$v#VWDPe7lyR4<>Xo_Fzup&|Ch6Z~k1B**!%;oLCW04WiR)2nlb>=qxa_B7h5bTBq8Wa6yz#kyK4S|zQaIP?f8qV>~0?7 z1|(?Pp|sSIw5ODZ3I?-=lw%dGlE^9u3g{e7KdRk?bkThWfj)A$Z^)3jK!Y*f*)-}~ zgzKb!gJP>s8z9-#qap*CboOt&pehhoPOGj$kxr1;x(d?afW#Iq4V_dWYT4R?S6;|H zfM17r@e`0|Wnwo?j z!$A!hs0R&6I}s1)5-s-G;?tFVF-2E=b;DxgfRek{Dr%<@`<3x^$II(sWXoOwo=w1uy448h zfNK1xJTE~?DG%LOW(4GrsJw$K+tq`Wl=TuQzr{lzZT?Tuycd4i3=*5vb%SID9iV%e z*$e6Bw!}A;m2=736>-yTi)3SCfNYH&jU)X^$mj>J8GzB|$t}wTOCmSbVM68x*y!lZ z)?1Qf!yo}Rhf8jW;|pUi%(qk_Y*D=a5qA5-eXrRhU0G9HeW;gQywg8xHS)>Y>a>v? zTe~vr5o5i%o!5-jliURT&fiS=B7NE+=w-W>o>^TPx);xf-iNXDmD~VjB z@wQR+%GTT^18{_(b!SF*nQhN9k{zTGsVFT<{;tA*5aTJyPEDAyq{?iW=h0xSePB$2 zRTd~m3lgOB9GD`BnGw<@oV|+m-@&IDZgotFH8Bwr>+UsQ7|9=(i1}0lYRh+JSn?|h z&3}K=uY-p7u?qOL^buP{w>J*e5Yi?|LycxqL~TTJ`(jM;0c&3grMgHgvRU9KHZMG< zV0Y9^dEM3R|ImUpk75Yn{Y`!`d-|t1ll8O|E`NF5hWw$!9e@~HJL?QDan^Z$R#3Su zg(F<;s&ccYMHK8Psgn`{+(@j-IPI!gZfz&N&oMu7xmVi(L?h%HI z+*U%%Bk>iR45?7KuMB&-@Ljj}hKaYZ`oaK>Z@wBHe=09qBmL8ksD(O#OoEWtZJAOd zq6>WMFAg}w*dC`2whYe`MqetgQic!|NN=YhKcaTof6o*8g{gT9DEN=uC9s(@aQZA` z=9c%|&(C9ZMtQ-To7?U>FFWz$idXCp*OWEyIRSsPdEB0J#CNwuaOwrNy{R>L`zpN2 z_Bb2UJH?8U*C?u7I>XdO?@Waz3{DPkT2UX1?u`2ddG?L78Pd#^M=4k$UCONl>A6*x zBBg-{Q(fY)jN>H${rDAcy<;O57Auz~_hu35q~X(Wxt>c#Q}6Rdm3AjCVml=IEt0vb z!2=Nn<%t{?ZJ1T^=L}_JYK0>*=@9dw0G@_Dir@KZ^RIf(03(1)ff` z7KZt{d1qJy9mkn>St5n5R3}B~Fct|Zf=KyUK>>+cB{HpY}%3{^g*d1aO1bmkFuz?#t4e$>du z|E8S&a`4vt_|Z*5i2l!(Z=3Z0*YYXa+uQs%?DYTDwRrw4O8p;Q%li>lRProoYsrgG ziQ}lcZAp&&f7YbNgk=+8przHc0WWQ^{$=Hpsau>0WigVtli>9qo4O8CH~(CGJXQWZ zTm*O50rK(^su07>%Or*WM^VCT16s{Q`hKXb^< z{%N^bRnvCKrklL$_RnaokJ*^`RybzvF!-YJnw0E-178c}T~iJ!O`Mr)mh`EY*XTs9zz&?k0JBeRDE%v+}bbrA&d7^0ayZ zg7+h9d7ikk9`jZ`9CHSD7VF?YV-8|n)?7xq(vysRk!+It@{hO(d+)l(Ig)bNug7+A z(L@RJJ@%Y|M+xj|3-H8r8a3mma^-zlp&`jL-8|)^++b~+f_HLo?d-It!u}b`OLNm$ zt~a!yLWn2XB@O@Ub()n<)5;GzdZU*g7$#LOFVq~79JzX*x)$jb<=g+0 zF79t!o8p#^h>P-9tm_8=O7s`q#r(ct{x9r11EKQeK}?D<2P`>U~>3&B%?H>Ga;^ zySvCgyNg}AudW(^`{S+k*N6DO-r?OaK2KmFoW%E;=jW5>8wnAWXtqN@pW|3ZXXBlv zEoc-+{_7Gv*bgvL^#$UxH6MYz^qeK3auFjxmh&EWHY^HrzM-Jfr;b2fY*c(Ib?~A& zKy|*Mwvh3Qk2em-L?&NTI$MW|B6y2Z1-^L1+X)e-K6KBIOawwgVb+=D5NDX;>!m6%gTIu|yAWZ7_oMGV5};d_dUa zT|JjhF?%o8;3@t_cFumXhG=pR9yX@@VVugfB7~8=hKCt8)y`&Ga7-Xf`QLcrrpaG0 z^q0%xNxbk5KS_5*UC!az>Y(mw~NHqkZ<`-$8E_#{n255aZ z8-vQfS$|j`4~SSSBZc#Xzx>Q*R(B1cE-);7K9dQ6l~Mp^9B>;YaS*tJT00K?KQk;b znA(?FS#>mZyLLEvY837%BqFmH?ush|_$6v*(wCCbVzQ$xteEZ7v#}DkHWZLSYLu<5 z2GW8F^0=YqWFj&r7x>V!s9Kh2PDW9#iL@|im~Om~0MINg^xG{pcDWNfn=H9HV@FtV z=cP_Io-KgbKVt~G_u3jd!3JDb4Fu0b^44xwuM6ZJ{a^MA;*(Q z;W;zy1$p|^)=2#GZ-)JAgDEyt+;^_3 z@(!Ts#s6z75Sir_$_pbG`vK`k6-l-QA#%>ym=2zo0{f`hWg3E#&`jT@2g^`=&D1_s zfyL0?o%mHTfYlye8aSyLEgcr5+{GH`S&`da^3j!nZsX6@ zofH5=-69%)&fS?idEiIwCk5%+aAJ-wTmb+`-`gcewN;feBS*nPco|hK0Pa(6Ii1Cq z$^2Nxs5x7RtTHS3q(DjRD2G}y*Yw4Vq}0()qZ1kn`td{zW^xJ|re}KTp!q^S%1@zA zoQZ_^moQ-<3lY}m&W;Y+IT<5`i(DQ^EDp@zA99cYq#Zh)8}*OaWM} zh83|K*LT9}Ri&A+5Shf`Y9gOmeV=Qd#S3y4wHYmjsoa;Leo5`yWxeTyu6XXvZ|VU7 z1)K+bfJ=t~(Fz4=)|rNgb?KyPv`?GrviAao!BjtV;c;Dp6mUR}e4>Zs|oG?a9-Fd0dL?eZvbQnqv9Ep^GdEstJKu5r4ET+57~0-5#qVnw7^c1 zxkFx=KeI(fShO^jU=oem5^xOuC4gd}sF&1TMPbf_u7*`uDxhkyw}>*;l*v4PlR;** z`ZpOLzYpNB;p~+?84j=tWj9{_m&Xp|4%5~4HLu>=L1W7!tx}3Col>8B`X?_p z56)tj*V!x=GgI?kMn=XYtE{k~D8JPSR2K~_T}^qw+_V|yym!eK+~_6S;LM1OB)B~i z%_`NfI<;7Rc1$ChEX~{@#rB}CF7drle=pWyw`xEyY8~sKtQoK&6adV_LG$3plciCV zL1T>;NY5x-+%m+4nY>sYWVvs_kg0Qt!lG|niQV5$#^bSvG(!n-I1GXbIBbNRcp5jOxitR9Ty3>HxK&S?h0h3XAM z&HOp}=IQ2Nv|Y<0iM<0wu#vn7id)HQ6_T^i$C*3qGdtdtox5>lCGD2gkqMO?m7T%e zV+<_i6;Ce<2mLq|pL*+hME;MiFDlCpLvjJ8%HS_0Mk(hw$4)D8_FmeA$ zBlNHf0GqP^_IA3PJ~c5eoU%f8*3o zg~{Oh;c_9is{yiV6r3-@ROvW>)cdf$8s9N3v<|GrjMonb?(PsiJ(rdN|HG>#Fn|}b ziu5WCfr_BCpaNKRu)Bl_-n~VBs!-~ z4T^ANAF%`r2|6A2Q82HtVOdt>x=!rE zbx6+0Z~@@ydV5b9d~P-R3_|vX)?bhwwtqrsP1eO`QRB3}WQ*>M`aos7&_fRVV@V!B zJ=J4M`+>42AcFRRRURqbk4k;Inb_uaeVRnWL!_r=A($^17ih)dnMeM1aRd~~fsb{^ zb8Hq^mRV7$Ww5ROLKoQ6w216%PfLGhzj-Z#X&4{hKYorQjO}a;+#BdM z)DgJ`I{EpU@BLQNV9cUJ2rJiPVMKq@WVCLR9TV--)QEbgO=t7TJ%%#zLSHH5hc%mi z0t48?n;FVJd7!r<;F`P5o^aXkL;4BntuwDtI#R=#gJ5|)#=!x2ciAM(L3*t4kbkTQ;w z?a)QhcnGffW*sCMvj>ka;UU#U)iv}%A=^(lr(`4{;4Z7i8)Io2^}x|@FQrPKtN=vX zS{sE8Y~F>~y3f2yh-r-S=ieSP%By62H|EE8)jg&h6wEnhilUUS$!doiiDxA}hh`ML zdVedMT=2f}BJ!gY+**;>9!mj3rq?G*H7i)#RpVuF+T(8^heR?c@u1#{HC&TkW8!S{ zOVg-i+Wd~iOUDWB-I3cj66<{pb^;afr|B1pA3-p=Y5P>i(png28^CzbJQnmRR0ppxgv$s; zsP$#CYO3?WFP$@HDfed!HE7u|3_%=$5!Dcl)0R)q3*M##W?C0jnh{yAI04$`^CYB7 zccJp~-phL))2g_}{-JUJm412`yg-+_(49JzES7-j5@*90IV~%$IMz+msX=C8dd+@F*HfWd^nu0NxI}wRTe5u2$4#}M zNd{Gfz?2PyeWzF0pkLu4LQdO0_2rVrk&5GnH#HWcIML z-V{`rH(r7d@BQ$g4`7@}lv5X2Hsp}(rqI6?HTU_t{`zBT_UrZ|%H*j_L!q=IEh}Ma zY<~^=2TSJG8IluN5pnrl{^Bu31uz-96x1U;z=%EC^~)NU^zp4t%a{U=ei)QyOiDyt zHJ3hh0l^rs-@GK@>BPa$J>0@0phpm*AkB>NelhRw;tkvV0%UZ*Km2Xf`@=iiOXqU7 zod>S~Rj2$)1g`qjY)@r@?fjh`SlIblIB*{YBei*qfp*aJb4k@#(eP6;d=mpVmHWAW zmH$&7|7yty<{#vLiq>zP z#=+trgekI{^Z$%R;=cZWMeF|)i~N@ZM)%U`Cl2|(EfdVh!2jXKknJX}rOw>Z#qjj9 z{oXh?VaAdSrX@wKNX$2BdFsm31?rA0B-56+UCnJR1fs3i@ac-u6};L(l)wnP-ergz z|9D=f>iG0<0C+h`Mpv4CwK`g8N?enuHdwA)6kjWI>;-z$yV731ZV`&>hwsOl#*7*} zcN=BDb^%9v-cLON2^pR`rC$!Y*&T$>)6bjFRj1> zjOZUK4A{?Q$JDtCTUW_aI^RaBeb;yN$Z};izT!V+0lJO7a#r^4?5*zXyNQQtS=Fl- zb<04Y|H(rtuj1n4uty616FKNcRc(SPy~b>Ip(-j|6gVu0%ADalC^yz`! zw;I6u>EfL|_SoSC=PqNB5roN6W6oR_QxvEvbJPwAv-q}2Z;(+=<|~Pn&9nu#*|51D zlLx+&pCHnOVXT&#O>)nD(Rcj!gS7$c%Ol2F|H9?M-PO1)9=qd{8q_B=K=?cH#{=VC zeBhxQNzCd9LGEtr<~v{Y83w6(7X0R49t!vo!Q`nfSj1cTvWdk4L@t7+WPyY^`ylz| zyJ%w?a9(_x5SLLOf3G*EKaUH8~2QY8V>Ufm_EQ8)#M;qM4@yiLAIxfkEO{)C&(m8+^iq7p(K3E(P0V=0vvY4~DX28Y=!N$=6o~8be>HJF{@mWB$Wx_}hviR~x0Au1k z=*$fwC{cO2pcM8_o-DBvO-USOMipewORhTc4)ddihipg{=5i4@Q2)&Wr3IweJ79!M zk$J$XU>5fg03?OVgu#t$FX%7FE9V)wYfo~)Vy*!mRbsg_xQZHq#;tiY7mE?8{5PCP773ly z_S>$ZYrPc;h%rR;5i4Sf9&o;xuh32dd+dMf1C$UfmC0${zO27A>U~uxgk&GV7S_0} z#H_Zg+P6i|R<$KfWbBt-sw@6yzlXu41e7d=xb#p9TXyRP zW3-69H7QBxA1aTD16jW0D8isUnh1%rYZ@4Npqf_*u1$lyTU0*CZrrY+OrRWH6k@Fv z4!QGc+f*$_eLHv)fa^*(1N7zq-BjJlA?IW-5}MD)fzfiY%2^{kI6EK`4){Mc^fTL<){r0u8J<9&cSDVM8 zP3X|BjWC176Wi8zHT1;~nFqq7Soo~i5++}SN~MYBd-R7W9d6q3T>wT_X6~;ip&aZH zj1Itl0y|wg(E#{6*UJ)a*?Sfn&w%aUs92IH&A(#T9=&I}8v8>@E2^uP`+^%^13O$~ z`+@stOQ$dn21whm^!g3R-09hCDOgi7wnuz5CovGoVj~=zEmWYqC~iF>Ve)g#ZharV zNkniL^{ki=$Umuw5jWa;@nE;cJPT|=Gan$NIdxXL zO*8WT)(7$@A-TeG1!7v;o++0VR}<1=E{(L7HehG#A_-saU}5VxzB8KyHfv1X+&cvg ztC;o`jfZ!MosEke%%+@^;!qeU99;ZTi^9Ebdyz6$(+M62I>Aw3nMQ=X(Oecjpm8dSn?CmYTs7y_7EoB1OKP|;s}WifsPFrA&l%fDBjg14q1SH=yH zCWeGoYRKj8d)dTnSpQ)pO_sZ3y5a7qekK@=%J9IkI;O@KgX;AUyV#!X6O2k=qfxF- zc~O=5)5n4-A;>;f^!X59O%RzRIqo8vNp|B)G5#_@BQvL*F9IcemZ;E)qyrcdHR7cC zBZj88bS!|_I07BWcN;gD?u^*krL(;n$y`s7)L5uj*gh8;Or|$J9IAc1O5!xGj5alW zA^thFStstHh)5MqW6!ZXx3>_GNSp{p9>M0eV;BgNe(Tj<7YOnsn0L_cSK{FhLu9Y;?|)5AFT4n3P5#CDJf090FMF{ z)*GJ!Xr-MDW`cRAeN>ofsPpm@Fkxe2Q179I=-NX?r3vX8e=@`L#rG-l z5}}#c&0B`p(xpeg%*d@>EU&cAe*CE z)tjLacji*;k~R%xR7eG22jr@EkLf)D`vXV$y5^c1wHPz=32AjTnX5+yS$`5zNU;%Y zIAWYx#&tr@63UQP9-B%J^^Vb%gzvU*?2c`_W81bmwrwXXwrxA<*tTtTY}>f`?|sg>_v~@k81=5VR()BY zYSf%HpZOc*Lamy83&1}010tBZ(`IxKQ^cktzRgC6?BBc+`TK{mHSlfomygHA_7UjQ z++nLb^GQl=21i*koTX^smXC$g0z-yk>KGTSj#9}nK^l|~+!A5Xz>_i5Ex-CDJc`k< z_Fkw0v;p2S0`gj1jV_>6Wq=)h@kTr<7X^{1bQ&qBBT|S`_RUT(9sG*%SRXdT`+FbTY-k~qXo!Dpyrhj z7YGd3rUS@Hr2u>ZS+cqwj!R2^ORgBve%#9~P)_6}D}O;wPz+E|3`AWdeJi&Zwj0ud z%Dw@cft$8W5-1z_JyyYpezVb8C#acV8wPiT(zEE$$=D!G_Tnix<>ih1@#|xqo(NV$ zEh&BP)npvBGmsL-1Xi#~-bD^i`5Kf9IFuTXhD$kW+8ld$$C(@M2%L~W@oMxzdFC0y zp`_c{WQ)hgEdpRw>qi!q@m+b5D}o%15O!_@P1UBD2`N*2(>;y@2zUf+36Z1j-raV?qBZS zr=7+^Z$oxt=GI%OZ+^aM}0;_*bB+Dbr4j2O#9K(E2QU><~JYj0WPwZODtwbw`o;s41&P3rsMSp4zCc zl#qr%DoNT#8Yj|sa!IK8`xsc#qS2GWzARH*k`tMM9m*%$X-DWwE<3=r2Jz*JAuKiz zW*NXdA$yxa?>0115?db2hgUbr!e{}4(vLd6*=$Iy+{#iIFU>Y>#LGn5LVWOELI$nN zdLGP&`a*O1MHc1r$bjr)jb$xBeGxue@E`sp<6}m&1b$G}6dt@w z(vwuJupu>}g0~nTBRNC&6MO&sVaB-U)0EJmnRj@DGdUQ^1#r4tz#o@LFEkevt^nE| zY%^}!EOz#e8_Tc(Oxp{Vz+AnzL$JV<2rSq@au0SYxQOW&$_X;h)T}k~27dzRLe>;u z?WIQdy5v{iFC&l>VUg=&|cAUzEQ{Zi|>QSjDLwME?BO@g39fu)_9T$-#bxK0_K zr5=p3i-OM^NPlI&D@}r$n>*H+3Icve4Y`>iTc^m=n^M@%Dg{L}WyKm~vY76Q^A@lf z%Cd2CC;h94mD}Qi*RG80csKm-;*8P)?hhRqLIUTxkmd9hhX9h#wP-PO zq?8*QcfJ-4tI_sO_PI*Wd}*_Qv%YCWGrHqV5Q%SeYM1?>j`Un%{uA0O*JNP=->rb> zhu~5&LY_8e)ttfTb=4g7ET#DjFWLH)(Hx?n`9DoZ0deh;Y7m77!+(gP@E4*vFMC)A z);8Q{pk`V&e*vhx5>@&#^Gmi#lRG8Ob_)J=b4+x5S)R!%;mJeUDZC`; zsJiq#U!3u!d{pQxolk7I>TNY=Hu`vM*nV6d+H}y{ZT#%7{`>d$teABV!r;(rzEj@yHdkp{2RnDhKHCXJFd;vvT8mYNB9RdQRMXaK zm0j0R^$)9-gwH8M3~?G4Jqi={7cz(%cpU*41lFtdEQ`!S!uOD@tm1Dj8*DsUu@b@U z<3xrr@ZE8xKrmnaG3lfX0EC#8o(~Xwie^fV+02#UYX6WH$qkHw?-%;@%@E`ds@5kW zz-SLj<_A^#K9u)FkH6>-eJ=>e%gE<9`PQVEA}_bArWn0t&HqnY!;t}RABS}oO>KBJ z5_7wH=o_T{t8Ca?@7cSFP&zEZ$2Jonm zcnH}L;zoxrIqysOPJyHRUXQwiqy6Ora9cc-dn8J|?3c)X`e~o{60!(BeBJGftqx5g zAd0Sk%!l%O^5X~WAb_kLO{(tmPc)-VjYR}mgGCn0dmpKMQ=+DBRE8nU6)_3)-HH!Y zN!s46e|YrwuW(W;Sxp088{tY3;A?!>gt;_;#9=d49JhIkl2w?ECq1El>e85t+?zm|N z5@&(Sl=WT~x6yOchd@14RPn^aLxQ|4lNtS^0ODw3PK*9N?50VJkFo9H#M)h@`hmSat zT+kzu^>@;x31GdDy4xS?-c|-xMWtD6vslpgjcV!+Z4pPqB#M5BbO{Sc0@>`nTh^yL znL0IZ`cdJ0YkFpp9`eNTp~t}u%5)(oH=%PE^B@;68o>A?P+52X9DO|EzzKeVkEIbeBW9yed>xoF2+rxM!ArR*<(T$1iGR2dO_h+?kN;3Bnh(+u zmD{J&Taq#~GBDgcw)vOcbQ?!&GhnU}QrKxy$C=;>EZ|xaOc=f5DsVs}6@JEm$dE7> zNAGDA;HJF(@?$^TAoSV>g<9{tR-s$RT?0M2+JYcg%G^e{crdts)xA zuM`&BCAu&7k#}vS&kzRk#vnEY^ntm zi+a5iDxH&Q7-<{&AUW-9+k_6SAEo+SeOE6RZxk&UGEYgWeI_{@Z3g3LKd_sxef+3VBG+WD3X=RC6WR@>ynaN)mCnyLU8bfCZ0?u`55~cojJfN zRLc)?E{4*y@6YL#wUy9J(`CAMFcFJZZ`y1R`zNW z$c-V*o&Wm&6nT=xRHms-#OMTAs@vWyR>cs0TDKi>Yws`G#v#X`>f`z_xnbO~7n=3M z^58fvULrHR)9K6c@~Gn7tiHXC`UgO+^&#YRRzdr!IK&tjq-(^U5p@kxmVjcIl?z2z zRF0t%)&gx@eOn)%Aly`TTU~Of9jsVo-bxbq4)Ya&tt!pwlU0xlj*E|f93j9NGszks zQucBoP%ab~&ly3Yfzq;{A?I~CtM8;Bghlf;La`9n#zK~wH2uI5on$^Y;Sdl|^1f_N zvl39g3AJuEt`p9l0(%vcHX}NlrOHhG3w(o@f!DrDKQiADjXFT%S|nJMLOV%4&9$D+ z6VOjtOgvpe#FPRWUQRlZyRdXM=#(arvU7SFD4^S=AQUNcGT(<-?d1;AhivPPuo~ZMbbLCq7N?D z1>X?v#K*Q#eL(gPEgP>px#z-hR2AZqj3B1M8*MV|*t z?s%q<^{&Z{<*)$$(goEvXQ|y3nQ*~pxto)@$C(2WOTiT^#-(&GIs(88Sc70KySQ+l zrfm=WEetlxm7Mpef{oR3~`(jj8d}tAp)%M7~2TG-`)R%Z2 z&2#gv8o%32K?(4U`ngDZgqsGAq6E^YjSM!91 z{i~74LQaS7ToJSE9&LjZxh0YbhxWuOs7lmtrFoiy+*%|~p7f|TG^&oB(w!oNX$`~GH84#2}EN)4&aCRnh~`-_F-KaovQ%WT9wR0Xrs{Y5Y@Bo z?QUhVcek5otXFrkxZGgTGwM*oPs}i{s1zf{kp>(q$r>Y*6;-6^lJlaI{K@6QT-ys! z^R&Cv0my&oVhgg}_>-PRTcLCwK9lQrJ$~K^s|WbaQdV^D?yT>$j0oQd>lC0ldEXEt zL7QWkGCLX+3=k*7Dz`Dj9`_%x1}IE6(NL5+I#U1la{N6xMiokHLNnekg+#$vOpU*N zzFvVWp1kr{-&y^FV+{l!D336)D?!ru0Ep+10_?%_0BDi-lLyo|t^eO;X215I(@3~5 z*ZkSP=eU>yWYFTo@PR`esE6nj7480Y&DUjDtiSXpOZeGFh=DlA%ltXdIN5xyBS-Ht^nsH#{cmOm|AC*^NpabGmhf(|0&?7_y=F+f*_mE?n(!P6RP>4 zlf}ZoSJ3mN&;YLgfIV}kWb&nYIdAfEaQd7WwY?FKW|ul17NeQ;vX=G_WJg|wh{qWt zSKCvIaf_OX3Z_C+1w(Q^K9xgx}GW*-nPw6I`a>f&jmaEjX6J*b4nKQ?oBk4 z4nH!iTeRrc=Ja02bxSG(5}>EkNcZU)JUAT3)DvKGdIY@s^dB5agSK(3X@oUP`Bv9v z%*4UzK<_kAh+l`kg~!~W{Y#Mc@sDU>gZ#q0rV@EZF5G|wGU|6}rtUAb6RLSYb9j_J zH{z7?U~f>7DXO709mttKRTXOA`x9VX$@oP%{mTt^-lz!DQ}yEoJs}*Mi1o#Sjyuz9 z8yTQ5ehgqcmr>6}FnwDteiaC0Zu030(0x z3d?;(1@RfdO*P2Pc`5GDD31iW!g6@h;CR#_oB6XR9K%2n)O;i5mAvnsQh2J0UNjz{ zq7g?8t7IZrK`W6APUT~4%~~YybksvBd(TvG_cMnLl25>i7|~|Nc7R+3KC};^PV;@T zY6?Kh?<#`2)Ll`>KY0*E+ffD9{r@gqaX{DpZZ`|tSk&wdGrpl^5ha!8?GYt_Msv;k zsgpeK?r<^UMY4QxeK!vu_^iX`7)WG&8`?L2?|C$YdWTlAxEl5O1Qa60*ynwRfp<`k ztHFM`+nRLxZn?UXbY#vMKv)`}MC3yvd?3>Hd5`uJ_2(Z-J#;cW47VZdC#pVs;pgt% z_QoD0YFC!tsmdQlZgf}VjF+7ZZKF86F5o+y8%PgsiT3-e-lWD(&iG@*-%5S?@=SF6JWJ^Z6({mO+hZ$j1zwSDoWRO z3G(Tk9!HKhhO*NeV*`$0+`6Q-7Xw}z6}RCPWnc7o7ZUgAd0A8AO@v|m7B0eNuo48F z-;3Z9<~74L!;A25z*7dpk7tHu6?2eM&zaF42MPFBWG}yeU=g+u%SN7^v#2mq9)|39 z)Amd0Ki_aL@dZlJYfACIY?dFsPCs=lfBkJKlou^o^bR4Q%_9J`Igr~6?n^_UeXRDE zvh32ml%wA+bs+>?BwwK5NXanH&-V}0UN-5@Rag%o@h{;!ut?M13(>;*%6_`WHaUm) zLRd8d1vKC5cKPi4a})4m@94N$~Jbzd5rTA z&H8Xj{gep|*M@*?idQp?GqY6Y1-hJ7Q<@48Ec(aph@mMhMkS`zm2u5aJD6v#A%a4I zi1ta5);d+o0zbv#c6YI2=%Q~jrZHmC`cXO!W63~BWiR<+Nuk5x7HIZX6*`%22XYSz z*@T;LYd0uX6~zU@pj*oc#Ct^F)%N+-$uw*9re;pebXvd!=da!8D|)Y$sM6w{|KT(Nw|Tpb#AHdaO*PY+@^ zGpdW_2gjri5Y^qsg;(4I^$1m5UDD9dkR^N26lx!&ivDu+X}n*JtACU9n)U3b`0kGo>JXV+G!Gq2vP+lJKm_K`TvK!uCey*zTC~ z4w`W#`$Q|qiQR#C!^-^4(1OQW3AhhD#Z)s#)}~WK{+eEuUhGCju|AZ;6E|p0Um*1Y zYq#A{MMQ^BG-q@pe;8Gymb>;T5Nma5!4dJ-;r#=o6Eh*xjKhA?DnYgbv$y>xu#!fK(Lc-Cvu;2pa-`U6J=nUP_@;RNB+1o*vjA;=wFC zxnu)QGH7TKzHo{hITv8Mlyla?M@_mBz|PyaCf&;IS%dcn9Kz420Edo|Ys!_o#|(!f z6=*YTEj+T5fznSd58BGww7f`{PgMxSLBh5SpE>ThTuFcVlGfbXrlbCSzz!fE=VgD_BkpLI-E5^a`}<#3qFeTJ>cP=U;zXqK9t-dF zGvHHshWk7#9iwJ5TW21LB_SVXKg@B4yT>t%S;6vQ_}7R?IkS8n)wtV1sM7cuW2?L}jOa|=L82-92=n8d#c9c5|yamE1 zNu!m|zJISTZ;$BVB=cCL2WHsuT`R`NBLMdInr-hE;pq*$`j&?GE+huy2xOI-F+Pgj z*2Apfc*A&0S8|dg#BH7?+@Y(aPi6l*+OkR-8UUQ2 zAVsy{mXl|V0UM1I!6Y?ty(w`S6ROu7wpN>c9q8zMYQoxZ+E|N~%wz0Ipta?-mn;z} zy@=|zFMUdLiHAM`bGWZi>YSWyGNUyG!VkcI(12M?({B6>0(&8E zxxHj2pD}WEdS7Xhc9fg>Q{sW+9aEP;XbRFW$UTyT#wwZ#*z$B-R6rj|Q zq*2a==r3x1!R9!W$f7ZZwKmwbb1mi~?HLkdY8U*Fv z3Rv0ySgzH9DRFbv({^aRI-Ft3wC~0B{*}sn>>VlDp+ye8K?* zuayeg^FdfT$E9J}#B_CWgcmR7{Zy+LE2|NP^MNHGGVf$l2VI)`X6P(PHbSy z;SvoXKf^RXYeknYm%GG?E_V)vNZso(x|8YPbyNfl^N5F`m^XmV921#eL6f6YcP?h9 z3XeqV@24vM0mQ)9x8Bs2{)Qf%N1!*9l06!21u@E^7-&5j8YwLdJbK^e%uqQKKtTo6I68svtUamxzqA| zHf`|G5$!9}!k_Fh;nzB?BLwAnw&s&0Jxs9J*-u6Ly1{7#Qhb$oqUhQ?87$#ZRYs54 zy=gh9R)EncRx$UXx0txi@D}FfUDO&K6uUlzadv*rAp*pZVlhHPa<1xJUQ!J_ub+3< zA2ymQ1}4nDG-X-|c62|li8bIPqAol^YpA-`E%q7Yhvk`@t?I)RC*ZR%{70-h>#(C9 zS%yENas7>;K~&h_H>tJUwVjj`lRg#VKF&}e1%N`V5dDbN>TOfYg)0wK4smpijR9%S zK0@#>=269cySfmdp-=asNWN@nEky+jgpzl?`O~Xnta-2;B%^apvU=yV0kB(j`4||} zBy}DbTqARy=unbrnPp6H+zP>S!Kv|4pkdTDPiVi$O5>oAr-aJD>4|O-R8@w*H4p~V z*Z@fnLC@-RBndGYT7oc+2oy=W&U0@;^CR?HILflqWf+w=ZG!wws~v1@i1__7p0|Eo z5DplwLux`Y5GT-?jm3jjrQZ14`t;H483l5|L?4)CzG^++g8IW(%6WlUjJ7jGv<`$O)OWmij7eQF|8P+~;I#yWX_=CRZq;2OAgwSYg1l zo@7jN)E`37mqKju>RW}q7hFn@o zLwF(gy`s&tdNLOxX>^9F^cZ#vxm=abx-+WzmF!DW)2QRcf(*R;5-Q8j~{& z1>fAh-4j;Ua0)U+_z<@-Di^_F!zO^gBJ3^7j|ikmf51Je2&Ua{04mfPFhHi%mr4(P zK^u5z(1i()g5qW(BJNiea2N`Y!Z3L@`YUw`Ly(t{E`W<}GHZb4eNEoGH;owWNr*D= zLCpp^I2UD@;uTiMaE1zn)_CK<74Z#msHr?4e+)PnmwXi>631Uvsf=Rr3AW%~hCyz8 z-+Uou#S|uyNCV+A$f0l^6*K>^c?*EeA@Q8O?owYuc2jKHL|q;+}*1AE2^Fk~~fF{=_s(SPbK zxi1t@y(>#BWwO`FP__cy5`{c!w)}(N-t`qy_0sejd)-o0^f+(9-DzJz{s@lS>U|72>G_cBsfK_U(E8$<1K3k z{_oSQo_IYExb76|pE2VlR>-5&oLID&xsoGkcH7l?HI6z!`A+S+9do^a-dmR(G>un5 z7nIUDGmS=z`EP~lR#vso{aFVI$qt`3#>DtawLCQ3vi)zU zxLUOwzmH1*LZ9>0I49PSQi$mkri}fZb!*v7X=C)^gJYUXy*fT#m)K=pVJ=jsrYhxC zvf+T@*~nk#L}s7x1RIZmvD35Pm_FB21^2yS$DCG9HsoDQN*>z=PvqD7c4ze?S#$9X z#JNN7_@04X44*3HkIE!X9-W84|QibuAZ_T z)Fw@wm8qs59L(bMU;owM_NH>=K>!B?^eO#6gvZbM|M{eP-vA>4jQ&r98~y+GDV!Zm z{@bRw)VBGL0{Pm~>pKI<23=IrU3dObAcJ!CrV@#?Ph8rlq5{&5Qz7WQ366UTGFGv@#CocPbzJpT*et0yG#Wn<`V{x>bLC=Fc7*cB4cL;A zmh4TSPh}ULyv+2f+{)`bC(np@Hs^DAOLS!ASSwU63~lXjpU6TT-(E(e0AN#NcfIKL z?6MK{<|cu-Tw9dEKnxi~2}{MmSHG4#F9a&+`D>y%`=;kWZ9|(anysptZaHrr&ADiv za(%OQQAnxPf>zlQki0x+@BoUKH7c)jC7S|_Z(-LhaHD7#@Wr(K5c;GL?SOG^+sF!< z`G)V&dbZ@7R}W7pA`rxy1b`Yv&?=h~c+CE*;_``Q0PJHbtPdvqNk*(0Qdt$)T0DX= z_T8uLra&SjBkSS4%RxS$Fn#Osu~fKUs0Y-8=Zcs-T8Qk11;&cWvg;J$HCpdUQMWV2ODFCIcTia!YIoAqhp`!ncs-oVrt?^P91>{gN z(djF1jeamR90|pC3F*n+XX4CNmB?P(a(($pN_s*>UnDsJP-jLE|8<}Zu!)0@s z(pGp>1L!MR2(48@`%so%f%uhGv;0g*K;1m@=m<3+XQ5|zPvcuj!Hut%;B8S_Jp^W1 zK=Xi8Kt+6%&9Qk<5J}15=93#ZNk3#5`OL#0=5Lco(J8sp0Bw3^IbJ7>zINvVi)}+v z8I7}*e>6r@?f+#=@xGz>8)Jil&L^8~_)dQK!lA&-V+EgQ-KAZZ=f*xJoo^}jAT$J} zUMCQ9p})P`HToGLWiq1wWIp+Q!C`jwdS5Nv(|52 zTwHc-_&zUa0nR6u?7R!u%Jcu+WOGI zAm*t^-u_HQ5Ida%Noqm<-pqj2@|o&A%L}lO_zqc9+&<%QUftem2=94EKT69N#?xOo zd%Prie6;q^r*)Umnx&w&)McZ<+w1`oCk^r5`f~Kc2VB@ob%5~?I78hBSSH|O6p`x{ zLNYutt^iYA8_jUz3EO0oG`X(}IngavC0549Be(nEldL;QLUxPsPLfjDL-_B>L`oUB z>DML>C)8&Q`TR-~r1$gLte8rgjtX>ll$9!2WBN$U=?SP#?~XW%_6S$tWeJuqUnjt({}rx>?_0F0NS`-O9U^%l$HLK|X58-$SJaPrPl zr~Qo%X2zxPzRdG#l_yTQgO84u&SFkemTg&E8ET`JGYb=mhKCw?ypQXCPz@Oy;g4nL z)`X0Pw?4z*Kl+4v`Mh>?bQ(pW!JARyNPE^`JQ{uab(4joU)c{c!V+!Nw9-=c;y2mRG*NV#C9k*(ESsYe~jTciu1&|A@Y|s&)-Y@bPG>sY**BYxhr24oM zxhkKRCgZGx$z=s~eeM84+g^lCKqqi@xuc%p9D1Rmw~kPc1Sj+yf`&E|X^^1-M5^F- za0wmjp7Kn0olSjD*Hr>|TB&Xp|~>B4#WG*o!8)dUa|0hQBMf9jCbfhd z=UO_D_gHNl>$5O?#Pwu(w&6Ux+R916n*#vCWgcHT|7yuUej#DNQ9SAxP}idzivN^z}WrJW?7PrhF|lwZOur#xvQHkFUhTX2w?#B7DTgRkL2_FCG7}#uKl8Z z743zxiTMw9_@?HOog7KL3*Ehu0=4_5K{@0dWM@r<0Flw%GcK za2|sXIkS+KfoOdj!0$w{Rn9R-u;ywC&j+fJg^p@+yxB#XEKWe}*njYm;4wZm!6#l+ z&nG&?qvhS?j@a7~tifaHRNH5=8#dPqse2-MZ=l~PZMXO_#!w8CEO!`AF&Dv@k6_fB zFYeWw@cvcc=-z*__TcB6|5m`XK)HK{IX(V!d#P^HW4)I7#Q5kz-!vXS8mt`UljQeN zZVRX9t=@m!Yxg`Vf+J`kpbPQ;@erBn!1#X;rz*ObIC?0VIQ`^5|2y%i?PIsWhVmch zTG@XZ*l?_FA(gC-fJ3g`RAP@-?OC5PA|T}?>@RH_a`xg(%JtV~{9@%{OJ@}hdg0&S z32r=FcmOvZN#2*;vL9l24+r`6MT4^A?bppik$6V`gW%nhc?V{fiTFEMqRbO`fZx~?+2vxLovw-Fm(muHh`zu)Rs(uWY} zytgPe|7DZzy=#byBEu&BC$c##>0 zeEm~Jt~e?3-u2o11!01${Ze&*o+R2JjV|vaXt~eO3Uf}W@-O;@HBw??lQpx*%c0&y zp9+N6Ltv!JrnNS1)0tAgt4`UjyC2#c-^UPmeXPbQ=geBIy+2WBnLL4Qu7zGxLi)EH7oy!*s*{f5TrDY5oUXXDjc_Y zy%`uEaYj7<0sY4fQu%AX@SKi}w*MGts?T|>CI4M3yo@@S?IQYI(r2sax{cEI+IalF znGnfrIy7K8H|91}_hkKv;Yr!GWu_h=NIp_oM=5pG;bW?C!o0#ltj|gBY&1^}!0a@* zxMXSm)m_+=`IGb9Zh21-n9axiJUg6Np6EgdF~{5xTX`N!-!t~!v^8`>$&e3FpY1hh z>tPh$iye4gH&Pt)g}`rkp~qoj^V9PFiJ1uulb2}Y%f9{C3c`pd`QwzzV?#`*v2 zYLxu`UH6W0(D}Y$@XU0oii3%XI8y2W$A=*|eahOZSziv~$y*c;eF@!)C~7=MZ1NFY zS_H7f;T<7o9wGe4KMQ|R^P2pi5#WW=ENa3$ok;7TOYSsSsP0Ez5tR8BZv8W4Y7`G+ zpCeb0N0i9tN?aNGjA;1RiY68 z{xe$|V*T9U9(kJBP^O`2_ZWn8-lWwUnGpbq)O{5Q!E&g$-X5V#ESde*UBc6Mt}23m zPvO#wEPD@6=R~@^Nbd=c7ozL{18fNc3l{j3(E=w%A1MHZ!-RXnlmv=*XL*7`FfPox zu>q4K{YNUV9i;Lo>E0=fZWHj8vP;`|nL12@xa~LGkAs4TmcKk&!ZI3(A)3N3&;w8m zG5jzm4;~Zn<8kn~+US4$8=xDoibMRiHEnfvOjm+6je)N%IO}|@s?_w;zV%9>Q9oR< z^wYj&__d;E0DXqz?){>!3#^!ZWQ^_AgaGjYp#|TnPf=Yb8}%<+?c8PmQJy|JR;yC- zaGU}1?H8LBnWzoRFWgh2ChGhJU2MP%$Z_INo_}O)NFP;7m@Ei+Rbqs1pfV$$*U2h( zkeusp6bxC*5Z@SjHcSDNu5i7d@bAdj8tmVR;8Uq3C^5fn`z$>RX`CiOW$>Sh!M5*^ zwHfnEV-d{Qy0{>PjRU;Ry*DYgWzcqK`ljRX1U3;vtx?6Q(CrfK2rn+PKpX+frPW^E zzZS#t(->^y!SPu4%K#+}J<79~!V@Mio8%;CBUSyFa2c@7FoJmUchlq(>y~1egaaTy zc6p0dlaiGMK~W#O)!dwl&*A=tGv$DmsoYiXExL7YS~EtQ(%3qp<;| z5o46g&mB@jOppT}B1R0gzOn<_9sb>*+>ctMs>TefxG3sdqc%#LJhLiTtkz+Dm?C{$ z;voX##2oF`qfCu?#CVPi%8lsawcFbCmLhr9dtOrQ5V>LQkq~!RgbUCv1d_F2GW0N> zxWc8;OPT?TU4d-`Z$@Ej(6J_#{)wk4uW(L)Bb zqm(>3Cl8}ikV@1MMCZ*=_vfCJpJSJ)iT*q|0$fKDq}1pn7QlU{E^MN~9!twv6#B{C zIwX$1uUqILskOIirGB6Qg-(mMicsTo*GxS_Xx-5!AGKqrN;?c?bWns`jN;RR+E;W{ zht8*|WXdx7khkjXVwVXV?Ts>RiuRUrLpXV=+L$~dA0GKP7hkb(2nCA_5Phw`Klxr4 z%Y55i+_ft_1K{>*6*A?6+{HsG-ol7Ost*Gmf6#ik7>geNttR%#p+tc&>5c*{Y_oc_6ggJIZJem5pJ0dqnEo0Ywx8|fGljj( zj=HaHxs^f{Nlm_d|Z*vy}U4`tHc*9io_#S5yw+c<66l+1N5>O~3j#YrG-Y;xIO{b`N zEg==TdY0mDB|#ZhzL0y6(ss=~T`4C2*&ZH##3n2(Vb6&b_({(`dCmXDLtq2VEBzJST{+ zBnGs^twozH2N5iZEM;HejqXnbW(snkhCSE&XBJXZ@sVqR621_nMN=o47@f8|<}VCb zdikFBeM*d%s(Ows&E|pjpZf;G7W;*06Uj76B1a-d>%<15cb#u@c;Rcv!o$H%WI@&b zcfjb5MpjW&=9}1rW*n7#NkM!`aq&AE_8%v99X7wEO#x2ng;6Bbm(uREY{h3o`p$CJ zmZv%hoz9lTz^sn2x{fwXJB6q_n64xwS8z8*Uuje=d(cfApdf^32xv5s5mz7~HD(6#>kME%pw%r{^ z4M7T2J*592-sG7Zi^rVr{v(!Mdaa6?Ct!l8u|)k0)K>duUjn?IAf$DFVQ_ zWtGwn*B9m+f4P+(3C4wHsDj@`&23k55Ti`KTgN6l^1AI%`lr=4dnW)5ZTL1y%{x80 zNPV{IHeW+1QNzd59)%6afAvH!rq1%zn`7!KCdrCOo8xP+cmowc@^yuqLr;-Jq6Y=U znr1?kP<|oT?c_DL84Em&_J`XO5(79gY>Bmm?nev$DbTSY!H#^R5szVSZmZBD?!gxn zdrSs&uuQ;SoP`*A_keiS_4_(oyUEKDwD;z0zG`de{c*E!0g~t7RqAtH8%Q_}P+@CR zh~KiUyMkSL<(8+G9*=&RKHMp-w|CKSpSrtw{*6N4zTeU*)p_@Iai-NEcm&XW)oN@r z^^j)3BOoiy|2XNN8f6kKxFim@3^sD`aMxB*&nZzi)bws}G)U*6NlMMTAsRoBc2HQM zpdqT&4pWEiNZD7bOHqW@2B4`QikAPreIP4Nl46fdOB3^dx|jA)+&xh3=DB9%lr|n} z4P_Kon&}Aqb)~f`^H`IytOW2ak8ziuqOsjL7~YQ&A9fZC(T^#=-Y=}x{=ghy9e8KO zAEFTb=K_~RGtCnfJpVTBi1G zc63mE0tEJ|Z*u|B4XOi8Jktb$MU5wq<6FS!iD%znyZPO0NSyE(-yDD&A{4Yg?$)KU z@~Qhg&x8LGO+WN_T3l0_+Ff5KPw!Lw=V#&VdU$-8Us;gWd-%Bon3mSlXnvgWzLuW& zemGlMsMJIFJXaDD*PSS8PfZ2&R;-sojvD8h1|9k9m4VlDSrMa|h+O7;steLL%8ql+w9_!d$B5QkneYh(S zuWH}_XjyW~YS>N3=cvU2yc>^Nkb+1qUuzkY& zXqdYAba{O-JTfq#gDh@*GBXy-LOdlr|MFGl;_iII%Siwy*--Zl_^YcwPD(baoBhd$ zaJ8XEA43{x?9-aX7}@&v*GBS*5N%{+@R15brWt_WT@DE4850PpV%Go2aZt(}o+GU$ z;dhCJgtAc}Z7Ok=hfWBz;jdsYPeQe$5FsFJ> zLQ%*d@Cs-gBT$>Ije&oz(%1X8?5`OyVwIkc&v1Nsb2)#U^O9z(;;qC9Igl#UB6!Mx zvITh|Moti;n~28SQHNC&6LLHox1OXG5MGNMNE;wlyR$we!l$3lKUkAmgISAC_&fx>Psb8&`7Z+q!!V#k?q=UpZnF}RYKbsg)e-1pY=7vQA8hnMcRJdkj5ZJ zAIuV$w8AQ>T(aqrj7}p-e1h)?eDS4G;*gz0?m#31^tCD04AUvRaP1XLJIf4h@yR=Z z`%MUq#|8LxL_!0iju&~2YR}&NexDigWh-?zGKy(rTY)ZH1DhiGi2dUZtD})%$JXo} zt8OUS&aaP0I$wUba#XR@z?^~p z=97vPkQ>~36D4Ag_a@k_r~zkWsn87N#n zSUx}kcqzb+12di}k;joS=uBQ{A1}cirLl#!8sx&=gb!j1T!L12)w~Q-^RKmJWT&Sp z=_^{4R%Jd0e~5$uqdsA5XZw@U?x*62Rsb+NU^wnwJ!Nr&P7U=+2T_(#($gef#b$&U z@FmH1QD@1H3C&-B^PH;>`^G-&{%zm_DT1)x(023x5cW>NfrV|?W^CKGZ9AQ$V|DC~ zZS2^#osMnWNyoPBq{B{6-tYTos^+b!nv-4o*=PIgS!><*x~y*)J)rcEz{Z&btmCwx z->a8fW9)kYTi;b*JoPJt$sB_|ZF*L#1J6S`_;PjDoLH6m=*>7IdBN;bt{`n1g%~D_ zU6~Wo!B!yCjKTRi9R@!}!z=`|ahO#SD+aECrAOS+UzLzL{W~6GmgMwG3%+7bU%=Mm z2)Z|(gcbt5WUo*wko!;pvxD@;%vEya zzDpBX5Znj2Sx1sC;&DhvPp|;2Y-r=V=A6t_tO8tr zc@9u2_JoJzTCgGq3J%Mqf0!cqa7Nv*4h^i1ReVR?nAA3-9o`1G>}b|Nk9OH@FN!Lx z)OOLVA(}yJi7y0`Z&w@@!H^U6aOhajiCu9Y=8`p1@F&eziaes>GqT~#?7s(MPFlZj zRRI2y2$*V$uBN=ZA1QPlMi=Tweav-JclvtOS=K_17Jr+Jk@_Fz~w_~3B?PA=1i z8aNkzqhAYrOLH+}Q0R1yeo(e{D5*IAoVq-%0-CF;)eb9D{L1kZQ6h83J^xj8FaxrD zNgt0@ac6pN(BMwXgl@9ldgMXA90wY-p~$RW+BxTCDGq1cNi^=D?a^_x9Ep5rT9y(E zE*hf+0rncdkev|%#uK2FBiQ3C4>%cRe|a8}X6)1V3yq?Ke}J0(MHkJLQf5%cq|GLs zD%$ps)fDsQvf%7HsjL2tjN4MJ1~Z-NNnDL91F{(^alNuR16(!GouzoGWKgd#puXbXhvx+ODRm#1!AG+jb}KBBOjkZ_ItKI9jwi;p>+1g=@opqD$T99bs}rsdjR;MkGMYF0QQ>U z+Ohv?O|#7Q{oJ)u737d1zs1_43a-sQ0|P}bYEI)VKnt<#lXaC`(Sp%Mq|lIH*NS;| zHH%=}X}A zCc{IKXwEuN@B&)XDYXbhQRYB*9?>cPaG!qMa?lKc~<+l=;K5OxUy^q zsuP0qrn6*E&=dw;F^qRm-=nzs5n^Te;kl*3=55zrU>jfmaYqQPfCOI$ue;;S!fq*w z#+@VUsHJ6X99T1}FMeS&&zQlQX`Nu!sw`_j5^(D=0%8Ss?LW;21Cn=%Yf0-yc!K>r1_$pId( z49l889FEfDH=Iq3rvT(FL#%i)tbzo}`EO?Qn?E)TV8Cg|z%EjbNW#$cH2F`g!IDou zTG9?_i7Kfz4+Ip7!_fLZS(qhr#H{i9$RT$n|2okFmj)V>a@qX}F43A^{|k(ikMi#i zQyot9|K^+fmxatH78d8~PHR|vIIl`vs_FEE$%(44YX2SF-qzkv;vTtJZQeuW;f@sy zu)C^X{sP>J^koH8aKs!f|MYFPL)5=k4dI5$l)r|+h3j*%yc%H{PfxL=FdEzT*^tSB=qZth!X4?l#N{Ocs7l zlr}zK|0l@ED~gwQ`ht%Vzl4(1@eFH@O#);@<9YF64MHOrAJO zJC2!*QCi}(qtdbLIp43&0tltROW)^kClY|u7bBYg-03Uqb3VRGHnFnw7eL9E=r9cN z_ZJM68nyfxL!-TZ?J+YLqNYrdf0bASZ7VUm$ePXgS>O2i{`JZV20cTfKGehm;{UFg zK5xzSUla|x7q6Wq{@v>4_VPzfN+$7E|8o+&vsfjCBZD<&<<4b}<@lsCop`B17aJGB zUz}jr@TdH}=MBpu^9i& zG~0;%WVW@cwBr0ZeQwB#hG{o6$|eW7wp4r&!qLr@5q9wLL^u+Ux^b}VRdE$DApif>b{b9 z|A?`K_`2aEQ<3|GQ+Iq$XpO?|byhzr?*1m!(83rd-?8OII-mRMq^a6td4woW=w;}! zChXp*eJ#G4~P~E73tAZ9GPn{x*FZKk(@fS>^r{lTlOGb&N(%%mNkl@&Fpxb={GmNrX<}^ zSj+_s&Xh$lu#O&b1O>$qEf$cPYCd`wKxZljp>P{hGM(gObo(KZwB55Yo9tuwL6s)bm(Isz-W8LfXFU@qC_mYw!g$IoYEF z{J>2ZFO|;#MX;j@nUe6c;?zj(UB4&sb0dCE+(*%fAP7yc(8WjG9(9JIjEzx=)v~4u z`l)ipW!i=^wcV&YLNN%Na~>a#Rlz##x_=XHg9(F#=?X={b$RS zY7@Z7aHQH9wq#Z%ki36mAZNjj-8sTuh?=fA{Z;`+5Mop)@v}0?GQ=ws{&3=0stww1 z_F0`3-N4oVVF^MnWZ}DxW>8%mIIcbXo`V$71373ttxwzQFN%Pv+hsh(o2BQGf_9v8 zch^&Y{sVEsxN177McvO#Jf8p08A3oE^zZAeZ=|!Pm_k*{tT5oIj|&-+T$A4}`C3ud z+t|I9=Rh~VF8CFQj8HNsXY;)$^b2EYkV&XNg5xoQ%?d>;w}Xx6S%$65zR`4_O!Wc) zMh;`ip{r1%#17UkPb6OUXKZtAE>uO%okaoTbIOHuIk4lTs1OK}>v+Y`%<6}IHJb0C z4buyY<&K`~XYmgU*RAs%-rVwqZa-KC41(~P=DKz{)-&4XYX zZ2g2yQMZt=Z%l-!mTts&-wpPvYCKiI0%Kk-D7uS@4mw^;-Kf4aT=voP(3oQxK#K4@ zB-2NBgy72OQtJw%14niwl3ztp%eU!Z7~fNLLBvKKfjvN%rs@77HGy&1)u{V0~k_9V)`wr>)!1AcL6TwW#A` zS?Hm@ys%A?4IZaNwNk}_BULv6$m`AwMNDO;e!j>=%(g4;XGTMwq$)ZznT?qqJRSH; zO3PND;6L_sx8^Ox2L2>HiBL#yVwyMvgTWN@=^%@7gAWYSNOKX=)64Pu5L^+Hgt|aT zl;ETcIM_cvz9k_JK}D|*JQ41Dz-T)1$VbJ0(lW)wo*R18nSk4=Lke^Os!89$J$*}0aBd3PVe7ZmFs zWV0^lv)@*E5eVZkhL88@q9Px%AUb|<6@y5$ksfp1@?qD}^{|a!MUaQlXedyBYoRRn|G`)-TXA(vJNKQwC`*gfzQ^@1QA9&)t9!!LDCb1Oy*BFpz;JYGebJ2#-9WaqBab}bI%?fsnYY6 zvj@Jv$(j>A`s`=fS8fuSTo%q9k?#w6Jj{wd zB&H#fIFO?cxL)34xo%V*K|x+Ig4?i9CUpQSufq@c2ePlFagrU5dSr)@x zI_Ru(J+BSnlr2SM=PuE$8N_b+N5ml7)`FDmquJsQL_pVRKsc7nz=xr~Z9w0h4o18# zL_C;3Kkhq`hoRq{;L&F*oX*H2_zf>Mc(+dqZR<FDU@x5|3fhE znt0THnSWK@TFq|7(~9OXRyQwpniGtP1wKRfX=EM1P+N~tNmQN;(jWMgsTv5`==*`& zuj0%JY&3?rW!fDH1f+~~iVpv{i+A?5y0c_|P==F=iGE`H7eYkZh2MEZKoM%R^Q1(Oc5~Hca0>}3_Gtu=eT6bN2$0$8=%7XZ@WPDMuvWk?s%eE%s zs+ty}5wP?uw#}G4Me=ew+OjNxW0PEg8Hh zFWRhqlgB>;&uji~rE?;_=i6Pb+FsE6sF}J_+(`m`PPd*egYY&KFq&BFs^R&ZcYiOG z6b{FK8Avo5o*N2FiQwo%qEE$73f=txa`hPBKRS1vuZL%P7ixQF*0=25>HhV<44mwA zD@{14d3bAR3SNU%7u*fG|KwasvuY^+;;{--AKTT#s&%Z@bhxa*tG&l)=BL ztftU^X_HONX_mdCX6p^6B{T(*59NgrBWFAFs4)6VquOnGIh^bM@A&(Vt3Q7< zdIe_*-L)?Cm!v*d`Kq*I4_LQu5vyPK2bq`XEE_kNUB+aZ;b65wwHArEILu8VP>Vtt zUicd`+UNHj>RDXb1#9nJ^Lzc5OuSdv zF`hi;GeGKmk7^OcfR7o4Nl*a8)@`>-KCecYu! zk9Tfo2;w7;9%+e%E(7e=p*lMW)BycVeavtcY>}ngE&uLK(io`nWq0GHJ9{xb9CpGw zl<2#t^V30dX@0nfo!;QZ#5w{+EsGi=_Ngr4C~KEXr1+7;}|qp;?-Bd z28hnx8S2bD0CuzQ|W%V>&KZ>nM z=HjilgErR^r;vS6uwr}V8Spa)DqB9t0;PTX1menCM-zIr=cqx%(0Yufbr4zo|Z;W!w0;4;VbTR3i<$=pd zu0s7YS}8vaDHFuKzXQ7f)F7S+w2|08olC^^_f$y`7aR;C)6B^k4i1qCijXV<3#8k{|E&HRi(s{?B%ocZu(gwtmVp zf^Vy^h!(rG8dSj62~4>uE8($!3V;G)RtUFY-($B^IWPg$zZ3IA_BVsCteE$sQ zhaIL$-LSxSEI<_U6Z{jZ6)I}k>e!>rJ)hnCU&^-o2xlWyH!m*2Q@v$Tmh%vATa+`4 zX^+h|f3E9U9U?j^>%HyGJ8Jtv2=jcXCzLSMWhgKO6+20{&D0KVescmv!u7t$^81$( zzAFu12fwMPlq7$5SG@j(1rBQ{J2v7j6Ry&v32st93BWs7c(d>sz7UHSHBXmmLf#MY zgwXKJpQ2{<4N2?(zeL8GPH6uRxDh?8V_6*_e+ z9el+_LkE#MH2j4ENxTvkzDOwhCvFvGI$oLr(CEE=D1(Q_u&(>7&iPe8I9V#Sd;Hv##q9Wpa=`*VX4ZSP8{e?? zQzUb~O?I9y4#CyIl^QFjfbTNkEAbCNhGSYm1BU6=W2Xna$cQ3G!wOuesl>uP5bO!} zM!K=ZaY+lOMRst>o-FttipHxXJrnE^U?4|1Pv2uJ%E5o11#VFAFQkQpZKt zbWgsMj&N7E_f-Gx>4y~z_EvWWeV}a>Cj36t{!t;u_Q7kNXAUh)_Yr{|7g&-sQ~fkf*( z%PZ*I67CH)Nl$Tl&Sqoj|(JulI7NByFAIxW#XzT%0<)Kc2KiNhvI9yxZ}%q?*^MjDHh?Z%y_;r`Nk z>`qAG;^{1?oD(LdTq72FKIcDv(Lm|@qU+C~wB-5^wwtJ6Kdn5nC6AGox z5-UInu}!>Z2uEkvhEb#;$hssmXXn>v7D$n0>_HCw50#GLTJ9empjHX|U{BUdMioLx zA;f_(l|+oS5B4p;%aDZ?9U%P~AJuqWI=R5RDumQ-8ODI#G%%;luAdZBTtG(*iy=lE zC-c!g3o2W!FGn+)x~nPTR7GNMW)P(=GmFfMIZSoao#3pqw!=GsIez#JK%ho8I&g61 z+9tz43xh*8CfDo|-d6$KRr;6-1_{#TWw?bXlZ|uAo-=-{ql0J{qB-zPt!^@_AOuSR1r zwy(fO>uiaExp>egj=6BMVF>p&kEj&qm55cZN<9OdaBX^+fy`w;W4{(6A~i>U%{2D zJ}Tm-C|!6|3r_(mN0C~*s*1<2R5$8HeHhH%3sZ4d{R0Fyy(}p~le7yr+m&563$`EfL28&hogmTXo6Xf|c2oza zLu3j@XcsX;AWhP26d4gCxFALf-QWx8>0+1RNGMyVu^@q^%IX$+cr|z5kt7qV8va1# zVHotg;`>PzN7B1dtM+&$gy6_EV;r@TJ?!{~@vE^Wk?~g{e8m^9;2RY1eRFr4bp|XY z6mn}LcJN=dtsS)#>4k`yaSR^kTvaqg8n>W2bOehH;pt;6iLoIVw^?r}&Mdbk3S-XW zV;l(PH;DkO5?iTF+G<-FeNdt32XUVjf<`VLd;KM+w#Li^%rsmE z%Gm_vx_Gi-FN$4EBg1~hAq&yXreFM|bp%wtMAQ*9XyXhU#YpN~5<%?PrfAEe z5G-`6w#QYPd@@%KB!l0plsjIEg0fzfvw5QLgz$##AM@ZO!M=G2eQ$+so;_7|+HAK$ z4}<38DeKOd>5^%T_?{4P@#yHu?;hd#o?j?o_+i;`iF`}XVhZbsDyIt(rIlb-Rwn}L zF9~Et&QCygK!Wk?^neR$a>2(t1a$KVYK*|EytxbzXNe8>B{@Pox)bbrMaCt+h_j%( zOP-Khyt@=~9HzTLIiW?YjmctYhZ0EXr7xcZ)LDno6NMv9sFI( zSr&ceBz|`U#c3Y$VXw_&aYSmcV@u4DOa)#O(b?EQ-*??Y28539hWL7810^)|iI|qAB;?fJMlWkyBJlW>DZNAJl}))lscu*&1dM^Q zUpQXbPI0cN0?@K-Vr|T-sUiYDjM?`(4>t3;d4F;58$l5xfHko18C|JJQ~W5HObNIW zk83amX+lJso*!hp@Vqb@HzgIEdd8m0`p_-5%_B+<=fK33HslYpBx2LdXC#;ML)fLb z8YTOlC@WGUQbttBME99*3-ffP8a5B0oE{v6Yz8?}8;Ol#&yabP?DHp{w8<*V$1*ks z-Q5=`B!rXB8Qkv{;5&1B?#)6Y$`-aWb;NnTKNc|1yt#yv0$s#<3B{a}`i^4}k&bG1Qi!MEx*cKZB4C+WJc|e8Qaq8hd^Dl<^$QlPCc?gqePl z$QQ?S=t{=odlbE;l<9B&{k39Ji3XTSJj(Tx;81STqv%ly8>j~xBJ%$zMNnKbY?Z>> z)9W_l)m#uQfcLH<28Ib}lvf8ep}ghn<2LtUo`fbMj$GCg6+`EaMC8%DoM6H9Finr^ zd(<#$K|P`ai_qA)y5H8PXF33g(~QQxj0_%G;W39q9J$!c#V)rnWM*=6;_F*;Tu0## z#^1!X{+CxZSIHl>m(n8DFWZ2!7bFv82xlWN%O1U5f>r>ly2W%AVg?XcRW*=V(P+MW z`?~|Z?~$&moX^^P+RewAMJI$+`9OBnN_+V{TeO6e{e<61&jxZ^EeGIibdys6Fk9+A zRO={OLWLAtUbdrCwBd7VAvKQ<4Ft&SyzhzJ?_}&la_4E?lscpxC9dxkW{9JIh{6TkyLj?Av2=0lww{Wt5X#=5gQ*5#4Op>p3)UL8=!s|~C%FvZs>;Ra!>34OB$VZMYWG{bB z#(PcrU0_P5byI+HJdAo zF}HHwJ?3WyZFlVukSJF<+c<>zTH6%?``%q?KejPjJkm(^QO}8}kIvmDDDN3#x#MUa z<9>HvfpTN;*PPAN9dDzDKMZWFPG}XtFuQEvIBGE154Qs^!_JdwnyEYdnj?5};Vq*P z^-T+q6x!P7p0s}7yt`gdq;Rpca}HK<9c8WQY7reU?Yjtt8ojEc`P)+98{&BxS)Drd*E~Fbw67RsF9t!a$Jc87)0q* zQKEGa9cghLtm$9jC3y+rJYGRm#PaNV?%#sBPy7KxSTVd@)=iwd=aABJ zLTi9H4MWF=zS}onLD(O zAG}rX=Z`AB11dNFT)l=)GZ>al!XT~?=?vh5^ZveZ7NE_5eh(u|W)Rne)5lz8?+koH zg8Nsp=`kwE)b998~&4TZ$A_1KxN^`6f+GxSeXYU)(x`daC9 z73@~KSQbj0nRat7#q`ev9rH#`UX2(Xe=F|Epx@j`i0N*LD88ZsUbJ%t?zW= zza?I_W7FCu`;@jByj_=yIsL(?_45+_(e|~14Hs_bkGl(ott#ztd84fOZk{_c62;W* zue`fKrqLEFQU)%ofeK>)AKfV0m4L1V1qbX##8CgTeWU74l8oL;{vldkN(-Qh!RGY+@3NQF|t z^K&wKc)R+y?HFF=W=LbdVG2Q6@%{pE?b)$Kf=EJyRLdO?kiaU_GxYntu|s*{UE73w zf_qA^bB9@aqIDyFF#$F^GZ#a)QmW2suYR28K6rUWBuBuXsUE>AZ17pqtH&-H)J26+VJ}#2@<6U^j+U z7tByWtenZppg{qOt`&tG|6N2s3CgqB-_^g}bpom^m6PyZuUaX_4M+?&GOSZkWGUuwSWs%S?cRm%-g8A{Z*%FVTnVu= z+wzFZcXW#3iTV-oR5&c0#S@nZV?I7)o!-)yvS?k$IU51L5Bv@ip@5Orn=>MmgmOhN zd$reJ{qE_LNWn`dp)GPvgKz!)S>4<>`j$KHshUTE?_eHp;K7`YQf4Tt#`dz5QD-b^ zUhJKKE$?EVQx`jtiv%I(tR#f9IqQe|90i+uZ20KPuYywo8`iiaNu>a}kX}J-z_K}$ zm*|@CbPCu8h6VqR+2nfb_}D8@7Dcc*%!|Wjz;#17)7N{fLm@8JbLA^c=FaEAr<9NQ zP?g2CO7|~alxFn*%Wi7K-L?E*yNSoKk2sj)zYVAV@|%GFm*He(oJ_V^YU8ju0V!yA z*l;;PCfP<6M!Q!;GFEsI(%WW3r%P=qQ(T)^`(-5Qz91ZfUN(!OIjy0O6uiJVzf*vv zgpC+1LV{ZTT*=>Vrdl!H4!rvjqqc!6m_y!P7WWZr!_q8};kh!f&>rhkH-#GhCBbbi z{B30$HyWx|l`I@cNOJ8B=T!V1M9352ew(!1^XBH@rwo5Mi*i7#4B#W;ke9e8ExOL+ ziQZbKZx0o+t3?j1jK0zI=xSnA{^aL^zgV&w;8Y_cPP!X%ff0=>s3Fg8e`aHVbDT5J ze?mxjW6ya-y;=DYkNrA+mqlDMV^lV-LsUdUQ`*yY&r(HK!#&l%u6r`15bo@&ljG}p zwST@@nF*h+`1%jGU^x3G4^ylhhK`;hkyW|+1c&`Y0@SMKMfg8McnnWi^=Dr_xYxD+ z9kci={{O`+|3kSJw02$}YuI_9H&3ZRtYI4n?IL_<@-sbf{yWBM+WNgjr5qG7zd2q@ zcJxv4IaI%xA|AQIqqcavQywKEKBIZ-K{<7sCJXN4Oa-;g@^^JlrsHX~Qq#-$do z$l+4Jo+lTZWdV-yV0XMT?+Yc>ZznuY`n6fZvCBVHaP6>T$kg){n10aSc#O<^$2(xZv-6 zI+i0Cso%2RXSdja8ORt6L^UZ873)(iTtNm4iuU1J<(6+G{lxCIx*zqK^(_jThEX%D z6c=@otP}<7tsUI2J|+%uy#4M63WGSFm}@be3MwEnB1n46{Ah8={0aMS4P3>!OGvUI zg9m)UjnU1Ww@k1xh!4a_2xh?#I8|J0WNheFJnz)`;r_v0AT&D#ftwzC7nJ#vw+6=> zb@rY54ghWZAC6Rv*T3R9k=OPDA<)kl0eX`6L*~J4*6p4(u1mdxt81hW+lgMr*XQ<+ zcd<`jT77`>vkME@9t-Q_KMw+Ht=zq$^Y4V)uK{a+SMl{I5$e()#sCg~1#U*8sK;l) zIjM@;(TyoUwwIG|WB%u}O1uu76MbR8|9OiN@7XzcM6irQe>jT5uEw?(#@~yrw{0Q} z%Z3-jH)wIM_r%WRCmoYF@SY!{R`75-haz=-m-qgImnRrzk$>Qu7qZUI%i%geK6B@T zv#peecsKS8*cC~iH=>eW)-he}kw0k*75+t`sH*Iaw+UF`PX1PKaq z#?JvGV%9wl*$t|o&NW`bEqI;*|AfBf{u5s* zAi4mhLD`5qs;rtlI!>_ahXO{~5TC^d$9?Kx4s8_NC&>|BSH=1}q4}YYZFBXqg-CwX z2svN#0Kl9=#1$z?3KabdCK{taue0t&oV-lf8o5puQ9>T35}eQ4!>~ffmZ{g zkRE`F&>z3egGj{rDj4Q39qm!{ z>BY9j>X)1xG`sN2Rq1V+)4VX)xJL0ovd*Q@USJ(-wWqL%)ov7(dr9F1KJkB%e1b*K z7|gSi>=*nWc$E-1Gr!x|cSe&eoEdkWYEAyy?Jkxc8^)W7FQI*CpI?;$2wDY|Z(uWt zV$IK~;!SOSYK|6R^^8&nU8o*f_NjnHy6m%jXs{QX+Fd2|NfaDaihZ-W!-b9#gZz%@ z2W3tBo<-bON7<#UUf2O?XZx_vRZWRI;U%NzWz>}n-1>%bP zOLC=)7#3mK#~s@C((>QF}0gpdsvKGB5lSbOaiQpyh>5W5;pKy5~F+5 z3@>!LIkoeDC$a&%54Wu+D4uv-_kPRe(@fT`_&YIDd<3!rl7)uqnZ3)!3PzFK$^yao zx9(nK+lg~3(JTQ|&i<_&9+yz6dg#e*&bTQh&-N0U<+&$atS5BPETT3kyj;UzC1-^m zzJU~PdYKGTSVcXkG zO&|Ml%M}otZvVi;V=HL-4XKHTMesI7#CcZ3Y1$%2^FuV~yUq4|ABOHh!!z{M_pcVy zA5_gKBH1?J#-ILT5J;6^V63R&jwrqykX^-|)1yLJtL9McF0hkGd<-$L5k~Fp5u6l_ zo`)tQ@c+Oa7ZZn*J8H0ss>~9A;8sTVMXZytqg1o6% zI;I{7{`~qnQH~8A(5d!O6{Tz^?#bC~4zOW9DdhnlLK@G!= zU2^A{D$`uxOayJ+Sdx4h)KyMfs$>2#<2c|2`NhosK^SWce$h3GfljjXJS!Rqr8Olm zNwhk3BD1H_-zmlO?U}#m%+9!HmAW9h%UT@aQd$-@1sKw>M#>3t$7vvjAOoGqtDwDu z2ATQxdiJ3{nYBn=I}2NRW_9vp6=9m;hUu>u?16byYxBl@6JbQ+5;9S?N% zA2F32!#*45W#_pF>k`eJ9eGt`xNWngsI(~{SH+Ht&PUR4^T1h>AR7$ij8)5)be3dV zt$m>JRdkO@uW>dZ!M-GXj08;SXffMacj|bP*hDCR>kVj#6lxPiP?05U=V_tGoE*)0 z#QZF771IzqNT@1Jo~JxUA2+fF(*j1K?J~FCbr^YnAC@;&K6NgtvI8p zeuKEXAL?)$-jNGm?3Tzy3T)|S7J=r`u%UIZr!lXt3f%|BOEYbPXL$%+H!dh?p|A>n zk>Mo#H|IfS8WAt|7Q^~JmXV}46k*uI+DHBkS1g<3a>iv_f?P`GHEz0PEjuPjkc@nD z6ppcg9eLQY>Y*^S8Q(jd1mA<_D=(lPy{0jrZ*kSPKWcb9vLfRB2^@sZzNI6cF2c^7 zZPjnSp0EB>H=Xg*3IxwSP4yQWdHhWjBv8S~g$7cmd)`A=&Vnz$wPTz27YZIuAcwr> zkB#2?HW-alks;%+%L^cKbN$+Qf-1LKUVDR4a*f*>-%~(l8{Y8G&vr1}r|ci_AKo4t zL#?mn*&-p_rOQxj4*ZGas zP8%sR!mw(7u!wNC@#Wh!GLfvIgHE9X#>nAw@3W`O^4wd*DAUfqaA36ef8o#;k5cc$pCQ;B(icajPevT(O&vJ z^oT_?8jH-!{U7!pSUN5-;O3CqFh!@xnLRSq9))rJ&kC z;(7jX>RiA`SU}a!^JFn8>V=Q;B3}$EgvGPMYJi3>qL-&IzrTsc;F)@da=6GO~ZZnvI?wF&&(#CRUyyz3Fezrp}XW6aO1kOmiRzgnbG5r!5RD!g( z@;wG6L}7b0bj$2k2t`gOI$wYl&Hy0{sfUEdIOfPT7GpCN_zOL_?x9MWM`^Yoi9eKB zCF0!-gAZsAlp#NUb@(Swv;7T+;u64nq4BZ8L@BE+N#j1tI^p^A8u)c=`>^a!N&mfJXKfD#pu1Zv3CRL2{QmCE`y08EPNsF zZO-+5)^4nETw+mllqy(v6Q4gP$&gO(F*n`eJODm+K)_ARQ!o+>)L^iG|6!F6{kG4P z{I;;#nxUDfhYH1E>-@yXv&xBr8Pfw1E$L{6JKQDC1i7uXgJR$s!yn46#x|oR4sR4u zE&Azg-PhFx=uagQ4J`+p-vd<6-77|$CNLc`Lb%R=-N z7^Yc2p@YV*!tbu|`F%zdEM)Ye0)d$!6(CW7GIeIQp*%lvF=6u0H|S^d?}JjeoM$V^ z!gHvn%8~)%1k(+?1&FeXMxr_7IFPUabVZdLz zup$%vZWKzMcUfL!ZnibAAE3xLbbVyXQ;I&0x9u)=Dbs8=7&*+fkm}5}lS4tbpZ}Iy z42|G#c?cBelE?NARUY_z9!#NsSh2mSaJ@x_B;EXMD~1*dUtNXfM%{!>DP-8KZk>Qy z!K0`YvSb=ANj+vDp} z5gECoevzN+Xl`?;IaP30F%`O@EWM-f=d}o+oEf8zMnDTug+`~>2h90j&Iw9{YngH} z<(--ZjZKsBLFw2cv`|bJ-B^G1yZv>z4pbCR;MomJY4P+JT?4nyRi*Kq{{is!y(c^z z5+Dl(AUo;!GT}^0G&3*L7^0>(D4{pXKU$hrXFO7#Y`$Tg;>zL-Fz>TK46x=abf7WP zJ618qdwK|7$x$*z8yHx={s~%g@#3r7E8^Kw$6;PN2~a-3-lge<)5hWa&%wESmS}2% zgvv_*?uYFtZ5*zPm*JruP)?ZI55EH-B;RHa{3?W$sq+8P6wO$cm1Y2{knDl5T&!_(3d1_}LDg%6uQ7t}%hc8CWrtrRum#Vwtl9TA)%i-x zDsu;b6X*sgLtV>J?x9-4qU?p?25_6hyxBf1{l3N*|G}B$Vg`f$n~Db<+Wm$#%yL+k z2mImzx$eAr*&O-=qqZOaqmQ8wZXw;nPAQ^`iE_y2P14j9okELgKI&lvQ|75~(fOC* zB#XAs_;m)gMkQ4RAd8O}^XLC!>ztw^joO48+qTiMZQHilvC}~%>DX4swmY_M+qRuQ z{mrad>z_53wd$ho-a7kzp0l^``k3*pGM5GY>{o9!7Fe*o9(iz@ufAE(bc?U64dwg2RN3vUU6q8@WE(=4mRoHT09xhjPg2Kk-N7+Gg>yPSb=39%h@n&5(o1 z+|0^$LKFnKreqqppvHfxrY=3uWt_yY9~%1@yjrsd}|px zpOd!V8>_(Yykiu+Fb)-rpE__ZLOHHssX~5rpwQE;?*X7p&=4QLb#XMqs(Wc8B&=$O zJ)eZ@gwedx@||Y-Ul25chnTUz9^wYUw!IOL%3QBC*Vg+nmIB^ruR$GNjuuB$57YY0>|MQ?b(z%0nv znQb+BYk38lHbicT61{~x&BMmSE!5W3qmDn4@dq`+88%<-lE&z=SuUpim)Y`RVco6a z8`>EA55OTy19>AEb)~DAsdeht^5Eszoi#HtPB0z=j=fnZPzjX#?pf{vqu2(eHgRR! zYhj_~I&XAx*F>wjv<49w`}1?ChXkrbRA7PSE_;2TnizFr*GOWnP*79S=b*CI8FkWn zW;l}SGUS|8S!^Id!JXp~V4L}#uhVZEQKu~I1u$+@V@NJOWWWu{C@q$CB9qBY9C+~e zd(Bn3m{@3D4-rlw->TEw4d^SbYe=V`LLid&z&_JVdmrWYzDc#Od|34BcOjJ)SqF~P z>{$h-u1pyXKVg_fcM*%Mf2#^FYI{b|2ng>&jbinVN{fzx z4}hv5^n_{CEVWa(BbP0WAf}mQZfaJ|wS4DItB%qBKq{2_3|B%{fk^L1ku!!Wl72!t zRZWCe+pU6?z}K4wmf&t$cfm4@vwGF@FIT6ECHpBfQ{LTdq`c;#C+$O@(*3WJ+fKnT z%K2iGQeVOwmd|;K;H(J8-caawn$n^EOu+4-EE|KBRFN*8S(uCl&3GJ(sFqB8ep`!~ z9JS(H3G?VJyxGesshYf2qk&$90}Qe41DY{Li|rr{pOjJ*jiGDnMa16Y%E3TbJSEco zOA~)Xb##}$p6_XvZs}7$^ka8pDuWZTF@uP?RHGD+ zvK>w?zXgWV$}4>b@)$_kNmfN&EQB+nBHgdEIFlWj`QiDAc3+`pHaog*t+amsCY2#^MRgl`Re=M%5;Ws} zOsApGCe+LliDKmF62pH;it(5n0H7ko@ye5ibbq&{4O3o4o9TWC@vNA@vFQ4&e`3kr z_@?wHR5J##Q<(Dghc}XYNDWXI7;QKu+(d)3q8Y#Ssk-U%ybwi$+-adV_oTh+t%uXw zp9)mA5!jc%V(&gXnXl`okNo_YztaArj+13sZ0sUGBSG2?8pK(}G|2@_>5)_cquaK|aP>cH2YJC7a-uEtR+m2hH$WSo0 z@Qy_rRyC>s3Xz3|$u(9a0*EDf*E$=S&-UZhItFi6An_PAf6EFf7RssSY|N8ggwImK zQ(Q}XO){&>hpw)}2Nsse%*m=!Qj1!K-WCg>zd0;RTZ1h9Nse?UeUNzmOoA33or*rX z#*j+>4SJ9*t=Gb70|zlmMB8c+@HU=ghr4wVDfgMBY!*+`yZaGQ0LXyzHH`0?>lVRy z!MpD0Vi0yFWcg6NVkeBVD72F5ABjwJB$edFGa-vwZ7tTc_Q~%Io_Y`S=d%r~~;E74IF2L`7dmkEPx zZH6LD$Tt;Nl0nTD>t63rI!2lA{%gaLTp#!kIe^_1Y1bV1|`eR%QoTw>%nC$#iP3#8nHh_IFt?lRNs{Gkhz> z6^F?}8Ipzc&D*b98rR&pkVitC$(3oTUXHSD}-@4%`jPrBI{Esr%UW7 zy|)f@a9L~$@f9an`)eHWEJGD5>x$XlW|P@p!BnALKzny7_i&*emhweCC66n9Q{8~E zX#6^rv1N*HSXVz=m@MaDh-A;5fTK#&@gm!X%-LDssvWSvqlH1It$pUZzWFm_xxBX{KW1uo z2X4@K0Wp4P$;dj?`12E4(4c=?eh46lS3DTgvr{1x^8Vcg89vHn@YKJwyO4P#)6|4IN@j5z0A~BZAgP&G!t?}D zhS0k4N>6_-3u`2aWcO!D@47zP+3_#>h*vh8UOrXp>J!fZeBl)~sxzpN%gR@yFfLDz z(>fpkMgS;d;a5m6z9fUp{d+RRHNn|6y$1vaNX8mC;$EED%9W+8(yknj#PXpz<@XU< zu8MnIRq7VJq)_)g^4MsyV=6peH8v6bVYsGv=B@(!Q|yD&;}-C5q*{*Q#Jhm^JyPxY z-y>BaF3A7m=9-l0f4K?qe%h~b-g*JRHNaaDkYu7Wi)>NeCLL$lBgiHPE(tKil%`Q^ z>%Ubdc?qwLFIOBQ$_iuEyy-5;`IY4HEO?V%;_6QT9-F3CKqg__)5aXC)923iezRC) z-M5;3v96-;GBB>u!8V5oq5jm16CT%Q z+tNwMJck@T$yugLes7&7nR7Fhx0O9)Ev)OpKBp^0ZfySqG z4#TO8p+L8+Y5+GZ98;_s-wj4NnGdPtbSG^)Z4PeENJ$Z%ZIigcfc-M1-+}&_gX9tu z47oGQOB{YZv+>6-lP=i35Tj?<{xMKR`}UqegqxJ)OHEX#;bD}FEk`w17rrO%1j)eA zu!13{B&ju99FiUKqdK@$4)2jxK)ftM_X)`QqL6x0Sb#zO$g@|iTLvUkL>XGByosu8 zEez{1a(Jjv+hZQ$(u6K}eI~ai>OT-$vs-E(dUIQA&psWLz~C2BC7CGk+G?X)%oV6F5CJaErMUDi0mEn&KmzfsqVTTEE%svjS zXHD}V2n69&5?$|)vIO-*B?wRTtM@=XAVf(w`STz&!@$)>9g;8;3Za6kmoj5{W+a9o zXx=k4{|QsY0qIgD&caAFi(olzT-D~<*PJ0D;SCoO1!|uEy{^;^ z3=i^x-V@B`EpSO*}DtNT8RKqTMq)5P7_HJjCRy+C!K_y9AnRz-uz64%XUOrG&jV zINn{gtg7mLlXzXBkbe7c-aGtZRJ*`nj5r{E1rACQ^ysN`a@~LiQ+68i?Kr5~g6p9w zEG+mV$qO_zW0F=TJlZ6dP+&NK1tSxJZ^z=$_YDzG$Okk!Ci|9>$a)q}q1WgnA9#sq z3<2|enTb8DwnMGFqpbbc-RyHiEuLx?Tz!r}k0va!^hcP53_KM&GXB)8!|6)4UN(Tc zS)KqQUlEUiIMI(7zXk3}I(TtBiVr2dq=A`we;(tAOk0&2YQh5%8$%s+?Gfn_Bps^HHUP|Oa^{`4+r)?HGARSS^;IBj*@QL5tNc2 z^S8vv;lfk4EV0n3T%?Fy0#qQ?VaeZ+9^V|TaG&D16)387CKVbdv|$HJ8F2T*>33c3 zz5d;n zXh;sQrozTE?H%q(Z!eduHk9XKx%0STsyj$8K9qMAO^DXBRv~M)Yr2|8v#IOK-CJ{9 zbagC9akFMk$Lv884BWD)2|x%L-7D?)Nv%q{NINUX=8~Ikb)V+GUVVw2mSI}#VzeH& z*wWJP>qj*VG|Pfn(h7*<7lMc#)yz2hdSjVMDB(0`=|9}mW@~B{vS{0p{`SuE$1(5w zI+N?3&Qb($uaHuw{TRN6r{hQ{d|aV*+A!7BMPRB6bg&IJhYlf%)BtDqLz}aND@oDs zZH|Bp5pVi|sT2g36CbcxI@jn)gb3Kol6ffx1(^IrsrotMkO{kl`6D%P&C2@jRA?Bz z``_aE%O7H@2<35IiRrQ=7RLS2N=74-mpXmcMzph02$2nmUg2e;uj{yVeq*;BSF$d+ z(2?A%K9X_WvC~S@5`gXs4X55b6M6|+8(gi6O-#-Rr?QtU;qRlM=eU1OjzaEraIBxC ztf(>Tu8hjg828G+JZAl(Y;&S|{w_+Nl(B8H#_S1MurenvT#d}{FTsTdGHd0jyCB(F zkuwk0^xeTO$^58`e+!-(%KpyeBQ|6g~*;8mjTT!vJY7xC&aM=*ZG3MVl;8 zM#L&;s~1uM7AIwAIcr!eea-YQ$ zeQ!(GHOzv$9l(8q=Z(fBQ{``7x3VBd%SLN9jm$%K2ufnMVdaM)M9?iVDd@@Ct(zivoUP_VsVI+72^GTE3Z#3~_=` z_r?{ea(CH>5i_e8LGSWQ%q#aRQHHeD#;|!L%MNUk8R)YZEw!B99ar%V#Wk)&7jV9S z!<3zH0>kz>t>)((NJl5BQ~db0XzdaQ%P_<9;H=7qHwKxSBGh?*9T(sbt)!Ou!%w3o zs>W@Fy8=Mi63;MPW^>WyE6|hYZ!&mB_L*Ise$D%A@n<*!HQfQf=+;fYt3|s_C1-Dt z+26lX^+-R`M^Gt+C6wwW=ulN9P6(bFD|*d67e5Pks?Iru9YlGi(oQrp#9B=x?o z3HYq(m1HI$kH)k5`8_QnExk3(RkZ%O3bwol>I6f`^B0KAiK>-;cN&DU#z%#&-M{=S z6o@%wt(80Iz~5E%IUH`^+ogl#Xm9)$53aKp9CBJecd_uZuy%@BIsFBVA0wTIoNUn$yIA2u3LwEteWfIG~Qs0MZowck6&E+ESx5sZ*YPKU~at_o(iL_ zV8eW6sg=<8pn+JZQSvE+36&Rz0?w&xjI!FnTq5}I-P@wYg03Zkssl?)*E-OP9M^9mj9|{@+Kd#gg2{ho zZ^B1hWo^QH{o*)3*{CUY?^FE#^j5eDFLPUIaQDC{_ce!WtY9Cy@qlZ5CmomPL{*j? zK1!(frTN-r8uz6qx3}^I{Euol8#dblzJ=@U|4X%ZF=fUM4V3LiDvggt*E_rNZ3B8n zBiE|S7<6AG!+ORiz!4>;1Siqolq1tIP5u}DEo$TW{d55b z8g%w1p;6 zXNKql6Wni`epN z&Y*aB_4FIlxKk#}g9~0l+obtSFDiOFAy1NWf%IY{wckQ8MBc}TJdL-oAy>m*lGu{u z$Y8*EG25(l-0PrrG@bw`PEW=P5mX<)J{hQgru(N4;b@HX6@KzLxs)V14wEpH?OwhgevwKY!21bX~4JFs99=zfti0JNk2&A*% zSWFS;e2}=H*?3$ye(JZx8krws2rV8m+?ZD*FQ4|1Zz)oh>duCOx5hO~c z6+VIi6!Scobw#pezwN{!W^jirx4cU6V6KIIB(TrqdL=%B$2V4-HOtM4#~`Z38oxS8 z{+vtr)FYG`FTL*=l@L$P3^A(lUOb@Z9N+i`Zj#w}yyl|&01fYik(WI*HNrQC-Vg%r zKuMcBMjtzk8@*RCYx{$jBs)w9e>^hR6S9d5#o|YJyhz)QVpaeyZZD9L&@KDV=vvxF zF<>Ab@q#HyW127plk96j^fH7kaUxM^+1q}xpXCD3G48{8Vv3v0sBmU&g^vKsd-6;!W)xRG;UBJ&t0c2_nXBU8KsJjeXgVx|p6& zFHm*D_fifna<#tNVFN%Mwn+sJyms%D?E4J^R=_6&0ii&WgrG|yAJ(AnMLzgaO|ph= z9qN=e<>I1v{Y&f3>yho*+$z9ZnTWLy0meGYd9SYI;Ty02q(xNZiFiXj&ycd_9k17 zbDnko8NA1;3w}h#s%15(&O>Bf7OU16#6kRDJ_xXJz%R?s4Kkgpt1p1;K5mh1AYT!J z8hxxlV9eLa8 z@SURyOH>JOPD}#G>L%<)KEhbqiu|-_*w)_z?mrJ}gMjWk;0M=$_N6dx5`ft7sQK9r z#cn%QzsMqFoMQks9AE^H@;=IeWVx|ga`<{t+mz~g8~P|(1#21!wFGOOtK%;}7RRpf z7`376KH{A>$=K$wbqVy^1`ARgp#7}q`!hwcUxw$g*h&BhBa5KhWqrkd-YTGd7NugVGGC zf+JlM4MPIlmkR5ax7>3_j7qv9u!xLOK)8dAuwtT`=-_o0W6}NQ&&>eoM7vCx3k_2g zApTLrH*_SiAf*uhxc|pOYIf)3a{--e_3Aufv4Ix)&J#lm6(R38#jLf)pFyy~uC!ET z@{xko2F+6F1zwB48_w?&(%EK>Qq!a=1eX12rq|s73uFx|rw-TpY-U`^72Lc{&={y7IWP zqB?)AURXINV>X}m_nWLbrSdYJ>7*6Q7E(v>4ahdefNBKR!qn9+AkZd^UU%4|F`$J- zwSMc_b&+xjcLvcu{SzG!$Z)`NRk0<{GeYV>6db^6)3Y^61{NPdRO;-DAZpkbP@?)@+iM&OZ?$Rkeovn(J5{ zr++HoxLbt2Oge7ov;_%6f&XWM*9c_~aCsXp92Gw9=0FsHcYsBaZ5#5p_=`$tCA#>7OLja`O^v?fpqDfcHW${&}%;F=v8nb*y8i6CE@=vS`pZ|ev-0U#G; zZPL0JEUF)X9;6%=={K#GmgPy8aFtZ{&=N(Pnir%X^ec@i&-w*4*~iuIO}0hkL#O$q zE+^+#N{1~djg!LutWBuPNbh*?3M&CfbC{CCGfL~sibp%Yox+AXR^^_W&5iymJ%J>V z6Y$g$MqB^++15Ovx!yT7GQ!N*h!JuFVU(DSMhk9IWY;zDahB(n9Yk>DSfqw~XP-X@ z-m1baR0M7s&DVXh-SRiv9Fw)GpSeQtB?VsdJfLvep~33Mw%Xmz1RVB{iYkCSd*|s( z594}XoeX@%Bbd_W^F(kVC%4$?ZUqKO3^e0N!J*e;9S-IwDylAawg-`}Xp@GUgukRn zLdIYDej8Hs`unhz`cyh{a|@&Ho|UPjMyIxn>7=scgbtJhGtn9l34Iiq1!pkkNwT_X z=qt*!KT{Cb{_$K`p*KdWkJ13~=^~s7f$$5vhTuDAj3XM|pNk`QZorffw_wH48Y zUj$_mZiYM{?9{fUW;B1Q*uv>7vh>9XD9rae3S9jYR@wWz2+LZv1B)Rg2ZGaZC;WuI|Q`7w;-(cIlI0gU^Yr(w@^K&>r^{HEK@Z6u;-C-X>T0ekS z33+MktPMzdVkge%kyH2fi2UJb|OWPg62s;P>Li}(fiTmdYW32!VvfZYc7B42r4^{xWm8-(gM@LgB9Z; zr+(n66WWClKH@b#6FnX`*8`kdPmgLws4`k&j2^;>_qtK#TS7eRqc@9*T%h<|uRqlv zWs#~L9Kn1D1OXCkMHr}FA5cE4;b_^g<_Zup3C-b00W22Nys@Pj?PhapUK97{T2-U5 zG?edNQe#Er=dc!c&io3jLuqbVrmijgCqQ9Czg&KhwGbvoibKR;A z$3n8^`8ewz@#(W1W5)=k73ZH={V;PbFHlj7Z57s!D+Z+P$x^|lO{!-h$&4tXpB<8? zA}93yVB}<2kOP-o2cpHx9>vX?=cLWOeE80drllxRiU1y(mrvGN-ppfu$ch3zT8r6>cZO;_^o)4)9M| zTH9~7BLf_Igo1hjA2;#h4T{zWW*yrO^X2rDE(AXOG9m*uDXd(vV>PrCzLu!rRJkX& z=P@5Yb+_vQfD8KZ)J5Gw z&l2hh@H_fjl>pjh`5i)Jy*T_pH+ktpD_2bja|R$ONa;v#cio|qv9O--LrSU_DWi5< zSgB)As!Z3IAp}(j7ne;X@q!1H34gj1{!S~Rk8y%A2Om`<5H8Y4^ls)=`d%(Y>H#LI zXOrk9xamU{X72a!46b)|xdua{<9n#fi{fzhFfW9;nYUe7%&i%e;=&HmBxOgF@VS~ zCwSz?>N6Rr4xG`=-h#P%S5K|DxYIG3Z98h}wqQ6w8Z?oq6Uy1FQeJ()izyx|RJukm`o=-;jDnQpmxPCJRAA3=1z>Mn)#F^xC#X55zAv z5>GeeHkrjv0(@=^{O(rUM%3~&H#1=LCXh0;@AGz^sO!ti$;U;ezTo%?&=YXU$bXEh zT5kAxR)DW8up1A_j~?ypZHHV=d0;r?SXEtpan_0-s3HIMdoIDJ_9T=j^j}oKy6XHx zwKCq>%}1<5iJ~Xbnl|qda)P+h)e(AEuh|! zc7vD5E$+j}AbV-Y2B6gb%BGWisFHo9q_S%f|30k%Y@obOAjEsV1_9K7*+6}554b+G z{0b-8bgLlVBc+)SM_iVjzi~@#D@Qh7rYD^aBU*FWSlQ`|nk310+W=fGvHUa$uS{}d zvw>sy^I+sOE8j}?i~piN_@GCVnJ+JLVfB}*3GN%x`j@mY1pr5#Y$!mC?_W>=%F5I^ zf0(2r))hC|mglvr;Xi;1Umi3t%<3e1RJ^7_+qQ-s|CCV`qiG%TlR-V(~$926+nr#%$1wL4z34SMKL(!BxF*oB%V)}Y>I1t$WDg{TNf#1d?KDC@8R zMzt1?{Ss}b-9^RHwtL_E;>1*6G(%wh%GPXj2Y zBAz<_>PnLvZnP#c+0;L!E8XevC0sY8Qa&jFv(rt(4T^c-){WQ^+02u47*DKFqQJ|_ z=hay?BZo}YfhBd48bjOFp0ejvRV9sHxF(kW1P6YT3P{rP@mqgF$jr}b?jqlK1d0+^ z-*aLG7l0az(l$JO2M4^F_bst;ZV0XZJ_$684Dif$Hj^E_brGHeLVy1K1O?rN!2yW* zEg3qeaz>v`^M3eV-JsdWR&6)$3ShOh?0dC;< z0DKE^p72aPDA;&5 z>n6=PZyhioEN&97$o|2^d&_y!b&a61K6he2$sRJ94342!hQpihjwBRdm+tS3Vxx{_ zjQBf_Ic;+za*1V8WrIw_`@3`2fr6qv`UK}EHbu*%pdYPc?bV<4kEq5KuqZb_^EY#+ zBHs-OhJg>5H4vNT&Hcng`0uFLmz;TItqrRsbQj~zQI{dqE2f9{t1ce!Owywv)&q4m zZFBHn8^;lO-k(vLf6g8NuV<@gO*)H53u{sf!_z^p_=$fL^Jej1tAr&BWseJz#Z9(8 zNI?Dt2e8(&<83h-Q4|YIdakRCu}!Nkyq5YUY#arHh_TakG;0Bo61MR##S)?-;SgUnmIUP`kdRQ zb_9U#8^21dQ-h4#uGJfsy>vLGHg!%Nd{U-z&mazbcT^0AbvFk6J(W#-O<$nRef?G# zM4S0nchSV!`MvCoam)-qmeY=Zel4rfln}l-Ou2jLOR<)%vUDe4oP&%74JY7~wSr-^ zMd^_yo!QKJIvetrEUI@=RImf$BR{b!Qv{&XvidOMra>Aqy|L<52$P3dhxU0W4V&&n zzt6L38jPDs*P&$;exm2Ozg!ks-wN*vN6n5khnBs@bFmR-!sglrG9Y^9)zvWMtt9_gXF}PH@$V;d^8+rfiDN05)Gb09pDY3zm= z>7%qeZ8c7pZnd!A*c3;3caV`XYqQ3?xrXn=ScgQK%Y{hhee!;?Hm1gG2{Jl&V>$~f zvndModKu-kHKTnnF;<|4dF>4fW@gF*Kj?KN)clP zTe8fm#HeW1M4KdxGP)4No8WrA-Cv|}I6vbbujk9g+Pjc%K7mkaHE!M=x|ig4Ej_3Q zcG=F{;O%$|UBrlzxcmn1>B9kq8DiW5c7J1HBKfR+czM>ouCoKAv;)1;QK>f4C=y6I zT34z}y)yq~Zq)r4t^wkAk~V5SanR#0}2pUg|8H zf5&HsYz#|E*6UJmv~CcbrHI;bbG*R7Ym&eTuADHaa~W|vkB0T*E)y|E?mglTf3OJ$ z&(Gk8NIjCuvl^Fj5X(Cwn%tQeuw<686U3JR`Rd0hLz_Z5C**0cKJ<6lODax^>I8Xs zD(*9%)hKYca`~629XJ8bu4{UG38SBab$81VRQj5ft_NjB(Smk0qUY)X~RK*$2#CZV`H zS#BPxU*Zhb81z#wSFdL=`bAUD5_y#??bsWf%+edgKRWKv?oz5wX<@;VQiTc@p!79U z9QnajKvIU$hn*^F-%DI%1z58a)`%+g zD*AyMo*c6z_L32xTD)WX&4t9le&jTT+PyHwDe|j@sP3Lm2efd#)`PTjf0K$#lUF}S zO$&4j?Rd5Sp?KuSXSG}tbg z^4TPOlwu(84X;Q;TG5>zUbg^I*i*UWnMz&w{<{tj1gvMmvji6_K^WZ-Yi^nhKg2!Y zpjn+W_BWI*(Y%!O=v5GTj^vez19DyTF-dx28-GwED8ZS7So{=PyXEzFF0#G$xmGc} zxi?frVvH#=KF||Fw>Q7@|LG-E4n}ixd>4iofG3Q}>2u?{Vl#35tPdc}RQ9!%F+P3l z^sPL+1&|s4z_v7U_}n|=IuekQ+90h)TRChG^mO9@Gs&6j7AG zO(&Gx#AhH$EqbOmzJRT5{th&E_v)!Y*<-}Q0@eVCag5sDWybzU?nrbieMK3DQ~ZJR zQ<|brJb~i`06hGrCk6QtW<-JABSG^_pW_gvNVAv|7VJ?i1?MSO->x(Yt{rW{y+3y@ znON*P_oyQXKdmB%kHuwqC=7mJ>ips)VCI7Jac2G$+7L~!*sGy9PscNTRYYvvU70bp z031jh-_&i=={13Y$&NguU*{APuxT44Df2BAOtNCpF>pvq;#%@97K#v$goYFMJ*h4J zoCfN@w-eg)3vRIQ_6S>oYo+hWcl$DBR(F*tlQyI!7g4Lo@!;quEsh^w<&{p((w@fE8Z$JbRZh%2&o=uy@(;=C(WPTx|{fa9-0{o zRXENd$J}N0CR-?p-YR4%cqTsp>w6W5+~IA7nR0oD80{8QrpbQS_nO6Mdqhp0p=)Yc zm>JCVY)|R?3a!3^P-ZbnhXJwt7wO>n_b%3HZ=b(2PSXr0q29-@GqhS;Lb3$7-u5dXA$FYh1pQ7{m)d%o0+IKS0MojUPN+5f?MG2pkqz4c507qDlh zTmAtXy6aIw+s%X=ZNkr5#y_yC`|_V;fmXH$Kh`&MrmFvM<`g>rKbTY1)8W4xc6e6b z4ZBA#U+{7eJ;=~PU1#!IO!?iDf|Z`xq@`oY)yr80 z-vv988xL>q?@QHL?+%;1^?(0`~I z0LlMATfWH{I)k1EFxBeYnZ_eX74ooH;ZWDOZx%z96>x_wyN1->o6(M z4F<6h;XU0_gF7^dpwF+eduF-Qk_2~_@)G^bd76jEQ(k4+`qS2Azh#%uP3h(?=$p&G z0+4YNz{79n<9-)BrTYUozq;&D0liPn0h^(z7l3^4G|m9;H0=Dbme0=;n!iaMY=|gq z>@Ax?4^K)#oqZ8=@D!S`-D|Rd0ehttx*=JL`Rp!)?MU559AfNbNRa+k;P&0EGcJAn zWt07=IpAPKkT!$Vb$hAr`9;_J)ch3{I9`qwhvi9o%1i-AVn_yvN#$VUnFw z{wkD{)1rf{#G<1W&xu35?Hm>sa#1T4%9|ePjW0YTj8o#9VF2oxZMTHHv?S=JcCv}+ zRtO}$P4Vs}yo!y-hW zc~5b^0s$U(ruJ%W$Srl)J>L!|dj8}y1TV9>MW!Fc(JX8{x7LRYcqy)<2!c?m)W@*B zDLU^+1iT`Q&Ep$y0E7ILASs9*p6?iH6)6GbaucRt{s6FQ&!bxSV+Q)ABMab`QNsmG zslD5fCETRSt!bhQoKXt`Sz24*?91e6iCe!DdAhv#JYX71%Sa)_gpQG(@8?}c2M9^7 z`ib`o-}Uzn0#VN4+X|9@#wF{u)k@uw*8W*4PBOF}4#lMQewoddb-WYrsS;oSdX#Y?l?iL_S1q-n^p z==93w-s%>PacxyEY~jbAm$&j5KpM{JIX(&GW zfwUfZDsxwNHE@}odbS>ccTSzno9TDKsY^V)fK{i_FLsZ~AlO2JIzngJ0HJ~fo60TY zt)-G9*{eXPO3P6%#8gZM%HF$_H@)kxy54cU%HvPdv@H2+O z3krY+8%zO1jblcNKT9O=kqG$$I*+?2jtjt%v||(`TJ!WiA6kFQubTy%aPbR%b&OXQ zSYjk_>~#D>STE<1iqHGLvT)Tk63K-z0YSGzclY_uAS?6%j%CmpJ>^#-T`v&YTF3yw z3(BCQTLZhaOgy-=+0)au;ZC@TWzclwo&;d&Gd$5yTccKT16-RPw_H@SN$*4v<4Fup9 z!2|Xc$*7Y@s#9(dAplw#f(9{dR?utmMeLXfHa2aMD^g92ygN)nKxObZhT}>>aR_lK z!K?)_XZ$f4^#jbc6~&EPQ(K)Ggb?^J2h-1Iojxil`b22gdk*D7ZXvq@fZI^$MRWTP zGno~|HSKV-e6pqD>QsRsX6Xc<03>%V-F%q5Ee*-F5%Hus8z5Lk!A3=l-4o(IP+KNV z@bSSmU0^BDpA@D~0xuUOfQk-i_R7inRhGDqq@cJ4(X-xKU~VQK8o}G+I_G5VVQv@CcJ#Tg?^*>Gj6h{=+k7<{SP5yL?QZ1@X zc1W8NHtAJbwj_+QuGNaHJ--}sQ$^wU%P4Nlgq~V^idx=gaGVRcCxCu681)I#poU(* zs*4>1ziSSg@lwn=jl&k)20IO+P)&z4??^z$xNz1o-pNW>u=xV6S2}d_<}n@@=*~+6 zH8u+ARmRT%|7W#Pk|U4+ z_o1%#^fNu2-}~z8NGNvBfQ-L}CL{Ym&=Lcg3Lp^OFE=XOXAHWpU_Nf0r6AU5BewI| z75Io%d;8rugim6GG4#7(qMcU}8`h3k$eTkuZ1QaS-U6^>Pi7*2r&^-=w@o(Kne2G@ zB1-a6&JD~2eN2gOx5TDKI&x&PM;MQM$GyT4^3X227~GEQ=+=d|t^$47)B2=bz#y*P z9JJk`kD_u)L*wtCEoZs{Sbg(YGVfHBT)9hJH^kc=gqd7o&P`C>IYGS$$kSSV++-&l zEGtN2FfahR38pvaT{}N*ELYYvUWq$V9qCrCK50(J*R!UzhG)oj5x(8DWNlbn2pi9X z-Z!^GLIr%7QqJYh;?P7Z^xK3FaG@7mv|iyXa4OCTBmMSo$-{`S!!h!Z3;ip#57r#& zw^TcQJ$N93Q7KIx z%?h|hZNu*t$Zgn1rc#=PBzh-E>;fe-K}3Upd=wBatFot`Hawy#g3T7L_Z>c98Wj*y z*LJvS&p4@d3OVP7nSShKePs z*eudKqECCrB+gZ>$Byfo>T%nC+%TipIu8(`$r;3n+0@4=7U1}tv;16SEPFMo4O^Ac zEF)2?YVU&zeEUNP_tATz&HRiV!F`uY(o(jToqqHa0ePrt3C2X^uh!q497cg*57v@; zS_~M_1Nr)8IrgMMW+a!2RH;r)62)=W#QbyYGz6~au;oIpNeLwmtmMbW7$F}gE&_no z$S)9-w=vS%7|F=ugo@C?o?A;i5}ds>8k#)EW?q~taBDgP*(Hy#S+HiP)M;90;U-d*-a?sPPM$4AZBcZ5DbVj3ZDq8ooxOa(8; z)WF)Xh`Sf>jl@i|^R8;5zV0&X7wF=7;@rncGE|Qh5TdJEvS;~uB~^3zWfj$rlQ5KD zyILf!ef>oDq*U@PddTD^MDohp!MZLBMVi@Mma4iZd&NN-%B_zntO!%2dIo?_{w{B^ z1I>&)F*%`e4#BWsV*HUr{ZXGtivp`qjxrQ}={h17Bm8aqksxLW<>g;sj98A?aLCN= zZb&V{WLRmhSm1-lf!+8kedB~5<8Y`NgJje|by z;aFgFN3-I7adA{+V}_hFp7|xl;YZlV8_Zb$`F6F>EVlO%R}3lxXmpa9^MoE(Oa_d5 zQX8cDJ0ghu2M#KUS{5P{b}ti_%#~I-)wjVnru=-1Tm-ERQ zj#A``o*8XH-Wx$aa&2>SY>8VB<)m}=pNC44FT2oyqw`{BKC7<~E1BjS$FJ)CNna_+ z&|}70+CMQcPKdx^Z zXsVL*Vry*WhO!2cf0#5|1f0@WXG|l<9p1isiN0!qV%^HnoJR_~0K6HP5+1$ZEfW0= zY7kQ=_lhJ2Qpm~7NZ_hcqO{c%zsVU82B9rkl$tQ5pRk(mF{56dLu5oT10L?vv-Y|L z<(Oj67mM>bPSyN;)TS;hjqfsQZM4F0^DGohpD2+VVe0EcOfdg|-f)tIz^Gx|W0HZ< zu4*{dzFJ5Yp+3{h0^q~vlSof7JE~QVTd*SV&3nk$4y+vin`Rv1fr8f<`NH2izK+%S38t2~7hC0RHNK#?ee#;^n2KW`;#+f`Uh(b2&z9f|* zoF$2f$vr@$s^mk4z@TYE43Y~{UiSu*Xkp8sZi!;eSsEw6Z_aM#RR}+$YAT)2atN}8 zvQ>!MWN7_p7?V;-SNkraQWj{#%v47#E3$0d{$>W57b+Nrs49u7-_;_WU^1Cut*R&C zz{H=hrCf`-4H!@OeU6ND9`pPej6v>=yE(;4QWui2!Q2%JwI37~)q?bm9V*Y0U@YpF z{i_5s{7A;90D06rAbQ;cn^pOqS&OY(zS zcik3nXXncnwVFAl_J*~ba@z*AoW9-b7Y{a#zpJKGxx9hLL@v$RxQ-uej$Dh+y#`K? zKK*M?ZM$~swEb>LW`C;2jwCLZtG~eiZAw#8H7-{pgMhRc{I@v(1jusQ5jhj@75t_82%&w~Ff~}&=7?zdLkIG8c zN3adtoJK6GtL(3joV5tUOij`3$JEoB)$<=~Yir)f&o>z<8jW`+%QW5_?c7wF*YUHn z*+bO2D_=GWle~Wbxnt127Umglq8ka=mO+lb>Fz$(D5iZcRyz$p7b|$GvqV-~d4I12 zB6kb?8wO-Edd7{c>@gj&wwEl@bt=iUBY<;9c(v@*;w_EhfZKH1>|ZaH6;4;kb#NUv z3e<1)k(BD+rD?z1?+6zWzTr#nZ_YUDg$KHU33Os4l(S$?$D_F)&=2uwg zQWYL*?_YowdqFB*D0o~nJ5@9SD~xrmL*`G4FS(!D`}JB)4o%M3Ns@|VlKgRy<7vfE zQKD3Fa_=@x^#;T$3oAH*+m8?|*N?-^prj5+0<-;qmbxM}`P8r#%1s z)~LP5iiOyq+N$}!&)&YoAnjWi-9tXkrF zm?ViYXWnSBVhfP0q`27;n2J#RG)`)F9iL>EGxP2dP1}iz=h1qE-9myLD@vuT;9&b+ z9_T^$ki~MoV4`KqldV+xeC)=0c(|lN^n3t#9Die$aNH15Ba+dBqYH6HmqXyxb?-EtQTEH`0Pa^@X zdkf0a1Wk|T$lL|QO8fKXHv>OY?PpaJExmdXtc1IjaehSyd&9TVpx9oRQ;c3gnFb)u z*dPFZGBP>k6fG=#Sdaw@#~Y8Y;-NxcOuo}UQ$mn@GXa`GaW!AcoVz4|X3*Po zEj?_$v1zFke#m%8RWwM9xSAw->qLMdV7llXG7rzYI2HgWW5Gg9jF@Zq#_0;6Q(zXs z!!N+-`Ej&#ErspEZJ4g6$xe${l|VeVT%(YE1N7{i!S-`_pc0BCVR zcBuoa@2^IE9J%H>&OXPud_$`n)yoDN20Z}|ewzkJv>xGq=X}4fh(@Y7Uhn}#MP((# zN0ly5M?3|+gD&^^>v8Ty>lcBo_R(%<%3X9gvaGGh(q=_-aJ7kOx_*>%Mc;z}Bfc8+Z83ll=DEy%9;$0>`fz z!@VC6{$JW-HW-s>pi+FN%kOFYV2&N0NTCoQ7oV@d>!maORpxE-& z0@d55%{=wlIxySvpuF{S}?pQnGgHMlxNm zu~5z-?PVn?An<-f#O-F}Zeb!#6MjH%G2##wy0J!}VvBW4$2fO7CN2Ti;Z!n&H2aTF zh{G|`XmM!92TTh24VH6VYkva`As6-H_3%Q;rlkx;Q9{_)W&ng`w5x#8vZX_+a5lE1 zjiqLBHMTyCdqNgw3~keT^&B;y=ioRWKgPflTzN7TG=cv$W# zesGVOz0Iyxuye9nNe zCh>ul$M~8Pxjkvgp{38@ydZw+*v^*k-%cC^5`#g%uO0xu5;JVv!*hSOvh2)LH8#ZI z45Y@@;6(a4oU$Y*5^ybLPbe{(Q}Uo@6o1@J1z%)U|7@BV6LbjkcEl6(W?q6H^@8Ci zjPZ&nuY&;f@of<&Hs14mW3}W}m3$B}8V$mz zNzO5-5O9jN__tYOEvkaE7~qAv}h_OtEt z@|>DfSYljx7nM!9^e1)2nE`pa{TE9C$k z;Y{)hz^%M z79uJmSjGc(ng)(s4=wXp-;WJ8BNgFv2#hhLblx}bW1WRk1kTf+D&D1OSrx&l5uBH_ z{HG8{>bI{A<@M5mqGDhEi&!KWL7adb9qEQoRs5-%diL;fe0eSyew()hfA0I*`b&u; zzh)>!5y7>dV4}qVK>8|G_6BUqKpsz#3lgo+rvZj zMMCkhZ)i_a1?~9~hcAg2KdAAs!pFcEc6aH32ug&W`nO!-*ChOq=)G%(*qBqFW3QkD zon}^lFp%*L@4AkMM#2!e$0r>(>r7}$M7yR_k7}{(aBri9_rS*OY2Hwo$ZJtdGnaE! zC}Cvz%_R#zf)1z8Ct}#tUtfUYWD40R+Z4>sI-cp7;cnQqn1rj}Ib)nuii&(vmM1w^ z3a3nn^!5s4Ox)CXwJg(W9a#Q+UTK%ekGEOGu_eA43!oOq1zh>RkA2!mea@bNbvvpu z{^;BMM{4I9)+f;mBhgJ^3@R5m$m+iLaJ4iS#Mzfg6VEouGo3>)G-Lp6V$aXjI}bCi zR)qNjr||f8h7}VY#SRua*t*zjF1n#AH{c_=|CRqQPsdlg-L6GEB_#Z)6f=c;GUp~( zt!QYTx_iQ7uB{Ufq~vXp87BK8*Sa~Hie&pjq3mj9yS~%oN&GOdH#5tOjWv2QtoF-c zjv`TiI2xje9+h%iXH`If0yE$OS)x|BDZ9yjD&WPuB22Hdt_PGwe)$-lf|=9r?~qjO zX4L@$FXQ``=9u0(p)xcp)kin6^XQPH#Yxsc#Cy7CrRjop*+`;&PKm4>GZU0b_76@Yrn6_2uGb;)DQ%^a}aDxpZvATMUyn z29+kSb)9Xx&2AjtN}k_1iT7mKOzP3*?_`BCxJ%obZ?nwa*uF$jWj)0>QwJ#&(i9{I zkr!f;(XE34tlo+QTNApooL!$1w_PRg9j8ySkiA0LAKfaquB8VWWs4nSp99v%PqJHq zcSc&zxX>@B0geEd@7$d4tk6*pfBcb@u3e>%1-oZSdVGEI2N&P)^R`cJ?gb;to_OBL zfuE69=ij9vMSqsH^73~t8!tM#XJ&+=Q^@iv(aQR%9h+9PQb+%m=WO{z{s(@CZ7}tCABttgt8mWF7r&~7T|Hl}p73P?M!dgum^)@F z9!T>_3CWz4k`0dv{bgAxox{f45g?Ey&N0jjTS1>@YnOw{`;VIqT*xWEMVcU)|&Wo>G%S_vobH zh%@g_-N!jpx^1suO4xGBW>Xd3%bWn2%9i6cdPvt@*5a77Q1f?%8oX;&sO*DZ93SN!EzIvYKMcVb@d zaP#-&PcSCXbd2dELLNC(`Wp&ROi0z+DWc|qitlsc&+)f?kQL%9M3UD6`KEr*9|`#A zQn2ADx^^fV`|BtTp2-FdVa(naVO2m!ALoJY8n7w*3GJoPI}}WO_Ub&zuAF>jEo_AP z)O5Y$@Tdv3!#Ex~Z8D{ruuZj_tgTp@;PNRP`2-&u*~d(G-53 zEVmZ&=v@{(j6p5-vIQVq3S!m;J*ePa26gvd1f~S>&KFrKXh437>0t=i zve0L^TVYidS*lAgAfc_waEzr3H>S3E1-x7FJv|s2L$0fs%cY)U)8!A;uP5k%-e_5c{&(AKf{ zGsRE(xY*wbvq(v!fu%|H;`jNFB z&@qdR_oJhxh=26@F7kDX;LOMYeH!{Xo0LV$LBqxBH_=~sCrdJHVtVOyk7<_dwH9g+ zqgj}1wr^|l3uVUn+g!pA!6n#4)%c-g5FRfK-B`_2TM)K%6@w z1a!5g5#a4x(x7*y;T`s@xvP0ZXqbEv2Sgg}QY*cIPr0#S9Hhv2_&Qf8J4MzUq0+M00isPa7KQJsf(7}xtIFC73#oLJLFTjfK zrfCB%AG2lbwI=^0cYTWtg@UWTfdi)4@%95nVSKKD2rsal?4N9H44R0?>W_$%M49oh z#nz7waX|;he$M15esW}O=6dc#d9i%=k8qfzptlw8FMvotHZv3_$a4fxh-bur0iS?A z**&BeC?g^&O5*0%rIy*NAY6Ou@Qe*JSqT|Fd;LnSzhD-zdlM9BZDKx4h}!)oKvnpD zjHmfE*mFT!MPtDa8ONdxs}86NAIZAyQ;fKH(yfcqD9cNMkcTLAJ@>uz_|0F5L(Bl5R;? zn*?WdW}#p|!;!YdR`;c@>P(-ckqW?=@%?!NstNvRpwvXW*8VW_k=6wf7- z*XB0gPTzGsnq*PD$>HSPU)@F0*FWRn(m|Xc&B-yhk5tG4?Z28UHD!;~ck=Nx*$Aqn zyBIPF&AYD8RJ@X0&~4P}WrHV4Xvz1VOJ%4gJnY_l$gX^9hCQwTIU*qbzVwFI6fc9Vmxkj3hAQmLwaCtzRi;U=V~ z2`~+K1&vjU`af3k?K)rz;M zNwd;$GU(WeQp{@GCrk&F&iPgh!M*}4&b+=klj6kxwhSWUobnbcPF5?pDclqL4k;TB zrGX7=(SwRXNx)k)G*pthb`}ukENhxOt9;l6ZC6eJf_YDEx7?pbj0T=%_3%8O_}*~r z#re8#&GmCyTW2@Am6|gpUF;G&r6W3oMpJ-ke&D-*7orB*Il7IFG-^k+J+yq8g)JEn3sj|v`2D=Y8rx}wD_ACHLJrmJc@!+|0v>6w=j(f=9g(phbB?9b_&6=|V|v72 zOyfh*6{%EVeJceZ?%G*-PrNkJ9(opW z(G+XcP_p)fIm3fN_v5B~pMr&5E=hD6qfb@mn+YAYBN-Cw34Qy%7pi=kGQ>)AM>u}u zK%enfd$n=wXz^f!NE~Unq=*j#Sz@NiN&qq@ZGSeHqsq>1d~xMF$2m9naY7ps9)h#9 zLu}i@zSb{g;+Zu-eZSP~9DoVa~^vCEoicmAk#3`7Cvz)R`;%1*A z)_OI)w5epP%(d^UMCJucr?44=`80jY*Jf^?^Q4HFPaYG@L)$<9+eO?wi~Zu$wdLMJpb|D5=%+>w&q-ZU-R;24lAuj`Xvt6e}i1 zn2M6!gcmhGzF0|Gsk7Q|X>PM@o99UBXd^9?Vncpw6q>q6d%x_lfasgXRM90R+YO2j* z$X25X35dG8 z9Q*wLY>lX74AB-13xVy->KbT^~u)3n!47E zXe|s4IO~`ODrz86zay9an)~HQXAX5iM2QxaDFKQcmN^PCQ%A+*(2QwtqDQ z(7oVx;+|DNkY+Pkf5$I85-+ryv+3D>Z<9|3rsL_tUBAn3f3+q9U6U&X#yCkbwz3_A zM2fA^il8e6LKPvQSOo$s>whc>*h;H*%S{o1cIE6rEpB1gn+O(}2=a?Jvfq^Yl9^Ni z-(CeSoSi@a^#GDWzJncFf<0W=J?P1C&}nyL%5kuaYx{D{zuir$8FzRgf~C!J_kvhY zh~_2X+#+o4jQSlwB?%eeX8O|_=v?}lM7=74unn@{1kLy}# ztxJf)y3-pV`)+^tnL7QZ%K4vb=D-s`-pzUiAXhS_|oix3zarKa8+#$*ZW+fHdX@6A_>8t>NVM*?GS!uNY@UMNhM@oN^ zSCA``1;wPvR=c&e_1J#vKBQ;4y#dPP)Iq!EI%3K#)Rf)u;_EwOimQjO%v)^g zq+EBvpb=p_HuKqOkPuq}q#ARC8`YtwkJ!IV*vgmnUw-RrYs5hO3t@Q)^C@W&qjmHE zc3bKK9LJnH#ca~f=s5ZlVP%18;2Zxj7vjO(6U3c(I~xv5$m&^*G0dZcbo5iCK!M1Z z_<{e4{R_ted7G1VEokNoq;}BRq60YzPdo%A!R?p$HV{IS0aG(^9Wl zIZfwL31V^FbR>HdxZpQydg&S);G^NHwO+&Wy8wIk+ba~amXAWoHl(VeGd1JVh6X0k~Zz7d>n2UdyZ1 z8oQl8d(U5erR0v&AA%!j>c~No$U{!$mn|OCcTW@3fQ=W9Cf=I zQCD4%g9|k!L|>aZ*Zr_yA5OUkK=()w!znmTD>$W!zmLsXwAjuAc;X(|3E)7H zP!u!s4HM~~NZ5oDcPh62V?{keuZ!YGjGW8%>qCJ%#se)M2u$SV0y6}l{Xy#F9%_g~ zMLuEM&Du!R*Q_`aticMCwd&SmD5pTv}a?gvqq<={K&61tTt&tR-xN(=v z#xUe#22{Ut1wlT#2^@fn&-%OCfMs`^gmbo^9&Cht9Z7GdfXpC#P!hCpUO82NH!z$( zS{JKd&Q|SbO%;jKO#td#V0$s^DjDJ(l7lMo%IdT%(&ekEGhBcJ0(>Z<3|=dw1_vJ| zBnSc_D!3$Ru`CojKFZa&B+uRkNT_tQ3@*2A`ZCqPUnFIAmu6$>`nn!ol_q_8nz(fS`&`n9I{n~TA6j~ zYx@NP58Quht2E(&1YlxR;C5I|d4T7FO&oidYY6oG z1(Yr<=MWynmuon1=?a(`+w&id(9>h3H!DxPc$Fj6MOW?#612yqr2Q0(f_j@{XRi27KulF0Bi;O zoi_?7k=C}qA)$XxgDg~YU{6l6Opct_11+x*nT9~`vgHoW6uey_Hfq}_+okEBhPXJE zs>O?cY(ncVoR%2z!HmngndirL{T*awYCn`0qBupN(H?c=%^>hEGIo+dhA9lHKnU?5 zCDy3~72dMW4))pAu-Y1K_SZ7XRUo*V{u*FvK#8{LrDU*rAdIqjGH+)vswqE=m}huC z_)nTVQ(9RcIWD||W_>eHW-fOr&X8R5fk5?a98{Bp24~EAs&_W*-sM;+8henwlk0C* zG7IQdEFj4KOZtz%0L=%Lp_B$8p=?^cL;Z(drciBWR|; zKb3d(muACY5gDT{Jw2B;*4B=({zUq56$;M*G7by$KrmsL9v(j^DGO@Ud@Pef7?Z8~ ziK^k01>0;@lM%)VCK6BpDDxT5U6>$`R$k?Ysp|*<5bNvg@>ZO@h)SLmx&v78p2;7lsqBGf$byqH#+x>oV?sWAlVbFa0 zSkpc~Yt8+u1L>W{D#Y^ ze5x&|t_X5TuS^0P+fAV0k@5E!3&RkZtC&G6!S2#RJ^a<`ySAKmMr3OCX2^)M@SI@I;5^Pe&d&ld zY*l>2zqBs8`U|_YDRBAPGgzwwas$9!G#D{O1m7%T+OMys;)_3K>UrUJ?Yvn{6UkwRuV_iJs6Fpy*c;Oh zi9HQt-cTyqO0QxGG^VI`!$1$MJrRk*oF^!+hh2=YTpA;$FH!whaJHlo_cE^%M9@}uY-ND2! zcu+s{G`7^ee& zcY?{kH+-5>z(+pAEtn8-9&CDk2Icy&l636^0rWan0dAYtKXQ}Z(_f3rsE*ZNm&x$g z8>DV3d^WqF3p02hwq<2~oT`y}A849rLu{}3*lGTAhnlN-z>{7LN^RU z&5Wh2cQ9|Ie2-ru11aDsFHjV?nm#)FsrxGnzR3b&uXxelUpI|uP*p}r?uMv&dZ^Kh zN8K)p(I6CV&{9s8Rv5bPFXk6^0MdC_=)5N%ij}*bN{hWIvH_ItPV;~Ca?JtS91naI zHB3PFuAgS;S;x*fDSJFeFN>(Le}MJSog7(m{VY>lyt!L zFb0G~P__T19A+3vK>W{@(f@)(Hy3kbdr4zcH%Axm|F=ElA1QVM{vT4DNZ_~8?Wi{| za~^H+OJB%Qq)Z8tmKGIDqJ@=tZ2r7%je#}TJz9NbhJD=W$ zSzhM&_$aW5kd>6yhbs91Gk}(jc-JL96#_mF)0BHs+#$Ui=7OFB{CwRZTv(Ph_uLmh zhuPLkW?bHGIZN`9&-jA~<0(5OFAZD!uLz$Xxs5N71gyYZUGR7kLBw!{7)WlDq4F~5 z&jBz@<$nH!UP{0m&Vy*i66d9-$H8O{*Eu~OX3i2Q`zaz z@DuVep(}Vf57k@%?xfj}T5^+s#pvPY*?m;g0a7sPWrz-EyCmfyD22%uf(Jw1rSvVA zg`dmAK+5by&5xwVB-d=#A&=jrXI!)SLe;JI{{X|r@22^f>+C@^hHrI<>r(;&d?qVB zAAqaeiDeY6uC{^YKofSJA=n80Z9|gQg4ka|pHKa0Qp^S@sO;#?1|B$ylI><8sxT8A zglL~uzL{K7SUIjN2nBI^s+lUA9d~QH;-?nk#KBzbQs0{_kOQ>4j4vHH9Ujdh3jEhz zj~~u2e|P57&)0GO0^gysgd2G6st=pio%8!P6b!{UdEY(QLvRXS??y(+>hA+~7UOXm zfhup3Whn=6m)PU~!#b-0{NMUCCFmb(dxFLUl5|f6`oSYiUihO>CJ^Q~2SCPqEPvkp z3(_SM1YUr#kyO*pm0aFwcT%?;I^G&a1xwL^zPy1WbKo-4+ggX z${sH=GBD2bBghJe0`Bye5*glloH7aASfTgWGaW!lIBmUafRZnScpl3N`kqZNl~wjT zmI$J3jx%B7kVN(cXo3l7E;X6M8Qwn<1kUhx`Lo2cf>V#h1;kJeaV+nA_z4oM-Rz6| z8*~V^evN^R@jr)l820aC1~RJIB2kL1lfJ9tSJ9AxGK6 zAP2(D5a$^%nT0SR3nqv zAK?z>Z)So__cnn!x{EfYs{e9y@2CNQzPd9g zawHT#TmtvP-qN7OoRYUmaGOF6GrvxHjbYD#B>2bG8AyWbDc1az z{tdf0j}4QMe1Cr-nq1mBIQH6ieY`Y3cz<|&Z)c752L|afgq0)y45Fhb(Ev!gEyx|5 z_kHX~EDbulu$+c{`wdeAf&ORJ@>!#?$*kr&X;rc?&7hFDWtD0kxGst{;t7M~RDN*t zx31p4(dfMSGTbzRuP*!1$ST1*uzw)0WS3SBIPVeg_w(8+9&}xeOifgZoAo`M&>;N4 zf5a&Qy}{d0L>!1*-bZwS90F|9GZQzyE#1Xig2Zv6gAco_%mb5jc`bR*_#oq1HrrE! z@XUliGSlp!LXJ0MMZbHJJC~)D+H=q$pco_h!mj5$=oB^=Ku6sv=r(bw1I#}*nwYk9 zvkWU(L)(H_`EOru@FC=*Q;P?wDIrb`?1&WGuY;&ERu0+$L-R_B~m`Vw{*RH=fvVJ8Ksax`j+`&YT?0kR8E zwMX)^BQ+KR>|hu+I)-M6WS3fc{l7X%d61XSFca0QW1Nuj3$G_FFagRWGgt&3X^cQC zDDnWPV#x`k#9Qog8ucO*^s$KW|yt%gXKnvmd}&z7BNPJN5_Qp;4e z9gHiLV7H{|DzxX5IweYZ(}L(GA~OtldS68sX^t^P_Kyvi(rp}^^GXyTQL?6mxk9zf zs8$28_;y^6H6KcyS)?f-s#Vd6bfuzEp2sCOt919&!&8GR0sIzGsSNa2Fb!r`Ouy{i zZv~=G1()!~;P&B304!-*Fi(iWf)6}`LbOVL@@FXod6cr3iy;mf_yqSz(v7sL1L8j< zR)SMb3*DP^jwI*5^Q^OKsL8U@)YEC0@L&u~1ij5zRV|tRnSg#ZodB1xrA6b%u8*7~ zZ?`gWi-J`X0JMm~ln8gvmCN4s<+e5q7NRlg;?vXc{P-lQ6EzQvkq8eS4J6M7H=Yj^ z^+CD0^kVZ#(QV*}JDTn2hm`H@coDK%@Nt47p^&3!vhZxTzefPW2A1GPq*4{?uND zDK+uIeaSYrt@0>q*%Qu+;sx@V5Ti~jZ@XzH6vF}VuiT)Oo+vu?lT3t!Z zQ?+rG3-I*KAlm4jq4*QP&&SvH-fiTrDU#|A4?4c;W?fJ$T0rvTX=jrdo$zU&MN_D|aVyz#_SzfFV zDr~r3H$ujmC>szm{S&1N%oPMP$@vfqJaMHT2Y|jtoe{Eg1}`{NI*u*S2xm0v_`44p6Zm_HL z&>2@+snUw?-2?Z9E^<)6uW}G;(oK(o7N6->81UeESSZ_-^54vf*~ClZ&ev_yaQa(* zl>>$#*t4d`fu-_1(5S7~@FQ2;YW4#RHN}E((+suhBWj zf>W%>wJr9HR7Nqg7MC$ZW2S_8CezbE$M%$#$QT4JM~a;cHgt9d2YTuJbtLzsn2PSZoGSa_%0A8^lz^on#mAGeo@Q~;cSnk8ic%iFxg~SF>*y)mmqIVR zf@6{G*t%ilviv%SUiO%c+awoz2~KZecg~7&tl0Oa{B>TFS zyev`wv z-NXC($=>7gzbj|8yqL>Kn?^qStoseunAZbS^NQYUQ0tABJhUdXI4=yE?mdNPGd>T6 z(|5~satR)k>_w*jzg&Z66DuYE?ytp1ORJ{drY#+%zHHGHCMC0(tp;B(yy1oPDo?o)U$9kyPHng;VhCtRJ!HiPj=+_df zpk=l4botmzM5U)XCUIHtv&;f9t|@~SoypGu_(jDwnj{JYW}@et7A3N>j;p&RR2NE#RT#YlTwl1<-)R zl2%!qG3fQr+%d~(w~j3HMR9rgV&Pd=8beu15&rs>Exy&wWCV}3h$0H20LB37>;NjC z)jtosmM=n2<)HsfG^KR(~XFk!n4(e6|TsXxkzZzNHW~@$N4M~1jER^ zc>9D=Q`;`<;qkOfz4adKP+bq~(Om7ko7l&RZRDRaGpo(O z?d(sGP-7&88gs%u5;=X1PN65}v_?2%|)Oy%VGciuc81*UmG|E+w%sY^16jIoabPt#xx`d%X_Oj+RfN5NL@h-ES3$ z{6{on3(J&C%(pf93%;p6AcR7O_j)VZz8GO^F0>EnwSH74=G`3Pd}LvI2i{yV4EQxL~wON;GsFfo@_e&nQ?l9Q|Og?m3(l9BGdd-$I!=Io9} z2?s{f-<(7m#Xsiny_yhyS1c*Z#ht?aNnRjUdiz{0fh!)%*nFw4y^SDp24(+~x zGtbE;O&WG$Vh3p+=(U&#%X=tsM)jJ=?RzT|5nmg-NB~%aHBPc2G)}onndYh)28x*v z1W*;DY)fvC`z|FSV3XsV=N7fduKhv02kcRl+N74Z1`kXLjEN0wwEJdG>XOaY94FG} z2*%0zV#QoAJ|rq;(KPG+PZgWo6+1HsA*lh;FJJj4AJhb%?WTq8pvSsv0G)GUgb8bk zTMeE7U^^X4->Wws&}(|OfB~{lg!Vb9m$kAyZaD5O_6`>43q5|ekt+KXv=>9*YH=Ms zPZL(c5G?mERC*N75~~7Ct&v+TbdWk-@#ol*@TBL|H}Xic;@lg5Fj4a15*R(s>NBe0 zzo5!ZFcZ2Cj)nHEtb~ZS*xZ;24Crd??UI6kQjvi7`q*3OQ?5!%8~}Urf|;-|Y8&s9 z{+|!UEQ8<{F3EFWuIY;WCzcDR+Wv`vlknB|ZRtNK z#PXtPlfg*Q{Mx;iP!ca7RQjx#Kg&JxsXjdpL~xVZkWif@Bw4 zkJwzGm^~l1UbUkRy-iQcrk4>k=dYiOy$w(zp&~;yCA%%s{TOIIJ^{?mr^`5Y;)-Ks z53`+zD=K-P2tX8q0HRRf!$By3;~BRd(&YLl_V-m_I;#}de^6*lowc~w7(Xxn%<2Y$ zd&KF)1*#@V5Rs>94FPJp6ep~phROLP<;Wh9EFQ%e))#TTb6K*qxd=MzZu%bz^+tc% zFQr^n&(u!+2ZiizeQxk2fGDJoP+Jlu|B);nGXe*~fM|6T2-wwqK@q)M(hTw1Gsq9j zhoDNS%ONTzB)YP}3KrXlk$<3v>z|$z$!Y^>;rOE(SwSedi(}QV2bN~qCgfS_n9Tlp zP8hr5Y}Y}V9k|{U%fwoj)DknhyX>EoJ8a{wI%ZKF13}2$%bYqL3s5$m#v-s;X5=BV zmvkngS`fq>0PKP}+WyqM^{eFvr<~VvIyhsP?mt|$ogy}<)SLU=v1ucsYhyfF&X8rP zjk1m;#w&978yw4%Aq7@V%^Kqh8haRZa#t;0d8&ogp3y#3?oLu9ii;0BHm;a1MfDk%ozJ+AV+Q|rx$gCYch*J_HX!k&T=n2I}e?9)~Kqr*H9@h z=~;f_hlF4*SpCKuPL=J=(ovxqFBz%9&N@|-}ubG$v)rRX2Bsw*yHXWz(Hg@S;IUoaR zMGje6CZrE&whY`=)LOQwPu3OXE}xM6hk?RgfDCk$t+oMVpdx?tcH=2?`M6>aqXaY2 zYyX&=0+5P_!4#F?rWe@soExIC4@?v>KruBY>+sTW&CqB<6FO+D-x0=3(*NO7 z?g24y_un@j5;r#rwRRm+O>8ACM-GU25*)AV)LNZz=KM;{17#~B)m$AiK{!hpV_6@G zUlxrjGo>Qi=&+Tj-<6-+UJz#h#PP(NF<}XD>A%&2N#(-Y($^b8;wDu!6Do5PmKo}n zDt7FzjOq<2RO&d9mIzJDBkOKxKa4ZPc^5Pm;l})jX=*_tB-cnfZNE2fCPqG|;`v5p z5^xhvBb7irI=)LIXzK{CwHl^sfz3zttEJtZil8-+j6RhFveG$CUGq>p7r9gT7` zi>%N=q@P)>#$96YFGu#pUEDBfBM+thgyac?hnH_nJH=Sa!@!V8Osb80MwH#OniNbJ zkD+Bx*t4^(LKyn8W~rITiQu9^>q)83Kj;c_kEN&jP1wJL`XbfpQ6iDe(4~{4<$ZDA z#KHy~=f|Mj#lTD^_mqnPJTdO{igTA!B^BS=(sGn-OUzaBPt?7Yf9qf-bKPf*fpM=) z5`B;njHb{sVWE`ClbXdCV@#J=7cm0{E54BxHU_Ej2+Z zN6XLN$*yX`?!jdnh(Tz0mdHa$soZaRRb-|@kEA4K_9x!(lL5;^3CQYAnXH`g;##v@ zNg)Yb=pN3Ze>BV)0V1FE`h3iKHJePaSgW5tK$K#9XOjhOP^U2<+H!R2^pioTsQ-G> zG%(O#{=E(TO*zei;vy1OYgR9`5&bA#Y5)nI2bf=sPwD4lwNj!B{4~YxM<3)QhO>RV z1yUAS(I}0x66u6=zTHh0##j-h5W|fC;1YTR_5Es0K~azZMD%bO=9#{eHH;MnJfE$v z&TYNEo(JcIIecz@-25uKn)>R0bAW-kv~O5M|&Stotv;TrNPI0}5#!5wu&o3#)Y|5&9C&ez-!@;XgPgQ#IayzCvD^$?dCt|2d`PoX+K)E^B+L-N|1 zLLm){{8#pea`&Qaj9JM1oQYDk%9>W1EPnvi)c8oZ%~(0*Yj*lR|KX*61Sx3I)q)aL zq2nmyQ?6XfH@yrdtVlxSVn}i|*}woQjb|+aSO{!DuVFXInY<=0!aZf1@1PzBIw-+! zkU@|~-f&qgGeoeNAn}*7KkNW$xioUPGUG`j1cv5#Il%^FzS7%wh;fzz&kwybY5FOE zN3vfEqJYY;4_McN_HbQVsuxc$+2Mfe2t=5h&j`XeB?opafozfzM5OKjZ&SA$%5N*K zULPlb!FMGKBx`*s6_Z#hexdXpb=%7pg|)^tI@V^rXHN;K0+)jcI+V;AYij+GU*oZ{ z_C+r~BA}QgpKd+Mfd6QoojqGO7A0e&QJ7)+0HUcJ@pXbb9r#CyBPSXk#gwpbUkE>B3 z;m}P_{i-Yb)uC2+3ckFuMt*HXkIq7Lgm1uykI%n;oF4|RPC(YB!Wn_760|Id|@PRR$w#z zYA*xE+cx=HP>y_cEH9vw7l=*4{ClwFAo15?WU!oP8h|?z>oU&`m_y@ruaf6ML4Zi* zgD<_}DoMqtgHn!t#IxYZT3-mo7xyc<+r}Qv>)C%cqWTv`!w&Bqh|!SY@RN9pR;^(2 zw+UAW`ng~XS`ExEriVCa_L9(~O91Cg6nOIVj}xS~ep;;v@B_M~`u$y@Om1lrMju_2 zeVSH0yIbxeGXc%KrXA{lJWebYDWEB328eknw89SyFb$}5w-=uzsqVJXPVh^K-1FN* zv?NQj{ap6a^NV1UV(?qGhU=LsJP0YuFn20bdQ&iJLYzb}bc|+d&+}-2H-Zyu7TQq| z=R9!u2cjWC^Yd6)6%$v%@UGV+r^Y+kptTeX6(azL-Hgq=$2P${QT6OMw&OeQ9E_)V z(EW%Apfen)y_~P|17hn!{M8_L3}00feduk=o(u7GGFTjfj1z`mDC58(YNfJELkFWq z$L9g(-TwEV(3dUdo{ndqj+!0v3!0t39UU=ST}UaFS~|;lSBY>jtFNtUBfC8CE#!_P zQU4J1vi!?Q?hY-Iz&Z4OZIBoK(3Zppf=qg2-n^^Y%={jEo z_=T`vhe?71^r|GCrqC4a9A+Fxr->xt5r#oOf}fI|(b$Y@bLNdUDFycEq$cnh@&XDPh`qvt1h6jja>}~HI)z8M^ZGg)rNCNqn?4HM9 zv%LHnL1Xdmq6H>LZx2uKtsc?9Ws?a&ICIdyrcEScck7e}b>Sh^2)PW26cT{TCgX>y zWmmYPtepl>Y=)nu-{ePnJ3}_$!&x8iGJwoS&1?}e+yPJ_A}yrmLARrod@z3#Qs-XD zbM7(!NYLE?997)z*dGx|8Kwbu-5Os*T-zj(6heM7_$<*En9Btt*q6d#46>;7XxRFQ-|gCRSugo0_B>2DF5ou&p+8)05aR`Y zaC@4Gh!l7`D?#%YCyY!#q)2B~s*|r~kj?N!#517+8dW-l5`KNs!F`5YEd@!7_*9!G z<|mp%-@rxF2J{0T-5Zp#=vReMeHT#B_S_9HrRf?|6IU5WmCaej>IT zH#!KzGT70(tld$`v5LJ}PWmCC#`+Z8qfQzV7x5@pPTPO4MECpB-sL;OV*`7$(#}y0 zEyzqu8>lqvP0bUSf=}@JOSBnu{P)c|Ekc2(=Ec;xYM!*X0#G5eIuIip9|F%kFp+T4 zBwV8!(MtgZ_pN+$32!UYE17$c_V+%&$>bD8^bi9_+`4*l8baH}XbI=>S3B~4wc1)h zO8I8LwZ9NnErh%V>6$kk^WRLOMmY=D@~XRL{;6?Pd`}D}N4M-Mmr$PS58>Du4M`&zaaAPR;XR>8`D5<)TyXO zO0!({OXKB=vo-AWV%w&Q<1ak+rb&C{TFH=427yMk0%%;L2nOzxd!0k@g;^k$0|k_{ zcwO{MVZ&luahz)74s_kVg3+wLw9c8(@dVKO@nC@5M`_#Z&+tKUGIiRvM)vMbRy|oi z?w||2g8ElgeFab1jV|h|d4yyasf#>UPh_JFs4sBx`Gg-*K}1P3q?prdj$G*mt^uUi=D4tRL_5$x{*oQk#q(1w5X(CTj`%#VT#@%?B| zM1)wRjem&mGSfJUE zZW(QcaVJu2&2TnmfgarjNBSf`XN9;UvYKdBO|MOHxrCt``|eUK)KLNiKkiYPi4qnB z01EQeCWKD4KUP-x!S=S07l^U^XTN)Qj%XEz_sc&8kV1>Kx@bcz{1r<}Tztb)lyJZ! z|A=jE0*;Qub60^^4(kX%aV**TlCgt6cajv6jDj4c<&$R|ZT?}pW9-ZI6QaW+Yo4UU zOQ_bb&H`IrDP`XQNA;CTFV@V%KBuCm1z@=`xLGDdElh7zBx2Kc{wBsiYfwg8q@DxE zHTapBzm`7zF8x?6jix1onkxKf9m}kkz9&@79HU(CR2_;aOmJ?wQF09}$Wgn@;W8-j zu>DJG>-8H+^9rRgZUmKpWh*H*?^)sv>KK*4!ZQs^_pcf@?e;+}5?)Vn&=seQI6&Wo zAEiOeq9E&MgLael7WRzJn(mIzA0}9%XuM=@!)p)Q47Y(^%&PaIPp%Xr>+P|ih7gwX z(7YMTYd`MMPaG8k)u>Mm0t~8kF5G1#&Pm-xd1E@}n2iKPwub!9+3n?g$ zC)L^FCNG~T@}U{1=r+Dx`K*$s!MtQ|{Tx%Y$c~JGi$64WhaBr_F?z4990ACKzvv&7 zfwcS9wDQC0av<&A0%%AT8f{FYh~!eYIfdF;9XgE?X$G6D||e|1%d7 zsCfI&T!>Y;gD}SP=L0o(E;NO`berx!uzPwS?EXyfAJ}~j5k0J-OEwkVCBm76-kyEe zuC2o9L8FVOyZmJXDd4+ctj=Qm{0u~lMcgjy!+!qCsk(P|ePT+kV-;aV+F#suZBF9X zj@0uEL=id)^&i}QS)OkPLl`*1P*9Zq@F+MlMR7&g@jt$+6iMn z(4t{<8{#{~H31|hLng;1FUF%&MlS-+V%zp~(?Qp!4U3--gf5AF1to zzb**a`0RF*Pq}8R828+g31zZaHnp`VUaF4-6+`OvekZF+dL&?!DXqU#s}+naGB2PH zL3|m$W}U(V=b9!|ikOORUUn-mBg$vuD%e!t#_d(f2yXkFls4^KkJBB_XZbPu> zATTg6|IB=(5(k6*_psi-VtW5KpQo}h478?Ia+e zAP3AdBLpkp;9kmjd@MXZ(x5P(gp%IU#*7_tXnlE=G<7vRuyVH_CrkkzVld4EKxL?e z?laD7PzYPHz)>jam~R`OKd;&5OZ|I(I4ySD@GQz z9xH86S}Z(_8b;=yIWz{)7$?p%{b=5A&wgPfJUzAVvfOCvHHRqo9Sf5}`Ic{^jh|m= z5L~3QC78V6W##}9Xz?cp19+dCq%Xcg% zBeD=$RL77+u*C%(=7d6MODc*j4FW_cu8@<`tBd5GXQ=$J%NYm95W~H~QoI8BZ9^1P%>vg9 zm&$rQ+Kf^Q$TJnl_%Me+uVqDQSbjUQ!Cfd+GPNMs|L{u`#z6ROXm*~->8O*o7n5Iq zFq@4xZ4f_UCoIa8OT`G_&( z21=+A7HClg z{p2ysg2pxl7IU}7R`hdiV0EBp?}of}!7zhNZNq6)@GCxpU;P3|cA&)gcraKEe1XIw z6p+94Pm}lHQa0KT0$=H!fXlAk@6{rmUKX!-F#Z^tnaPT)cv4v69q2vgr?NSW76+ie zX$u2z)FdssRJVpdOC)DOMoy-3F~>7Yk)~OVBv1xALQTkB+)}A9L)3jjV1XVL!armO z_H7ZY01^H;B!(3ohA7UQj&3Z^&7dv3d&Vu$IOfXLC9F+!=2p`PJ^hP6?k9)TOe7Kq z1Fs``&igoj0N;E=TS4E&>t|kt>qE6kIRXCXTj-$QHcNyY*+SPWMVKRX$ys@DrgztL za8a{ChOnF&D0gs979{JwnKM~3RHczEBC((Q)^%3xhGT)IDb9O${!0I`QBli z$xSKD^~89ucd5N3YlR|Xmll-gLa#VYHcEP7(typ$|F}u&5ZqG&vDf`Qz9?t~Bq29~ z_}hTCa)VsgS;IJapEd|h#{Z?Cs#C@2k%=9E z@fZxfbCWO0$@(xh$dY60tJYTM>k44S@Y5aTQ4jZnL$B1_hPlx_fub|cBl0Pqn)tkM znoSGnTxQ*F`L<~~j&b>Waas4L$p`O)BBvPm*d8=&8lu6Eo=}!R5q2+`gBTBQd zkW9Zr)l~kT+WZ=am(QY~i@PMlPoFpUt1ZG1f{NfMkQw;VLa|KwlYx{bu|aJ+#U_kp z^g51&K!RGKI4Ryqg;fO4LM}iB<+Ex^KD#)nu)=aIwX4}b( z?0pMXH0i-O-oQkFg^U#nu(!+}8+OQ|5#X?PV*bs{pR%*Hv;t8h>+>&TzS62f)nXuhQS=v=d! zOE)R^-lZYJ zj@R=8RA;V^$o&AAmhw~Rxq?G`m>OjT0kj=-aFQg}-1Tj_X^+9-STQ{~yRGxem_%#y zXI>GHvE-!KIsr?p0mf`b$LSNox)OEEfh_N8-*II%q6_=~c#Q$SxU%y{b1g;AESuCj zO9u1P;jvek@M(Auz`*y)_OT<9P|&})TKo!i*;hn(1SJMovJ(xSXeFJSKd%OvN**TD z_BIK>MyFX_O>|+tb$J#K>=$fB6tsyg)-ev^_eC4s>d;>vo;Xz`ygtGCH? zwM5qau_|lCm_&j>`h9D8eEV+3ox*c?TO|$ehc4ocAA*cwX_N>t5|c?!`I~=5F6?uF z<(`=mP2Lg!S&#q$SxwCW#p=haGW<6>P11HW(ru;8Ye^5O#}!FTaTtHd_Xg9@VAn~> zI8aQKMD0*JK?;+A4(4I7lg`q3LWb{DP$U#vJxkB1c zhynb7;kGoQAmo!H>9~fp5Q(&HDR0DgBDgrBOvHY`Gb-5pLQ#tL!~^eqDAQ@!V6;4v z53^2KZp*RCeIRI}N=l6IryM!dPi;6&SDE-D*oqlreE|yI;*e3SdRS1M#p1*GZj*Gn zv~!0QbHQSeYokcMFv@FJ?9;o*gz-bCQRIPMF^7Xw>`VA5YK?FkxOC0mwf-@`CoHXD zI88zTH98l|>?_=-EDxTB7Xxe?FdQ9>A&W!akCkU-JT2U9$~iiJr)jssB(}Qt(ds98 zJiOc0HI6tWd{g#L-q})Xd=BigyFzuE@jx(-@SyOMe(|1LR_4dZ2>Z^*^UW4J?&9a* zZ#~;uW}AAK8twLaG2)@ODqf(Mz*o% zW_(e0-$={M2@t-Uofs9xlS}2qkeY|*Ui#70((M@hU5wC*ZBP~qRh8(v%BF}@#-9Xc{17mYyAmoyXN>#paF%=(Tt#VWvacuC zS$oSdJ<_^rijgqy^TTK8fZS47`j0Ni4UC(!A2P2l7Bw+lxuw- zUrR2dL&6zm<+9bx=~U(cz0$^v5W{=t7_HSOJYTz_*}IEJa2yWwK;M^*SkIcRUk0e zsYMdc&@23K!_|7X8k{j=6D7p52K@ce#I+_j=^dB*xmk4ClpVR^T5NDO_UCj>@XUQ? zJH-GZ!@H`4GC>rcrborFUEoRu5@R@_N8K=2z^``aBna|lwFC*n6nIsn^L#bzTY!ek z7SO!D?+YBc=?mnW_0If5SNkmJ*SvGm0J)I&rE066yjO@VuQqP%f-&>+noI%kt*+r# z@Sm$F2 zW5yl>is+#9bHCKJZY9@a>yA1EJ;)x+C*)rP`LU1-n#dELgl{iBJWONtvvu8|0lGN} z9zhdu&L5x8dz~_tTW$accYxlLsiQH^W9Bd-HVnpuVu;iv$qN64k}!A?1#~rU&PtkHd+g&Tl@ytW@8QB@R6*(k&&kaTd&hpEei#&<2noiYCaO3m(cW|i=+8+L zhO|8aY=+Ss+u`>?(kA@BlqF6bJw0LxY4Cy6FCjyw9yx5=1Z+=8kAUrjg-`!;4)<*= zP?Ksbp@-A=8Y?cFIeS!Ef{Ir|=G`REqbjlQJsR5kB72aslGWN*&=wClij?2W!&}~@ z9XSL{vZV(D7l);MQx}!0+8O(?F$+)5xjPD7{JPx^a8PLl%uTlQ1!Rkekku+V-A_B- zs7Su;D~Mi~iWO;#>H?rLX{FJRE!FM{3xP9ri}|tp8Gsi>2@jh*`t=cWQyP90dDUNV zakkQg?>W{YuBsGv)=@Kw7JbF+*vEf=Cml7aE3Gr5AE6#m_uHoh^p65R$ zd!#llSD?yC)CyBHj(%(=3=eg{WAQWHAAd$zpl0I4b8@g>C_4XwcEffNY@FpK*eeIb zBsIKR&L*Nbcbyqck3fu<6HmP+Y6_Pt=*(%t9VE`?ezbV^E@Fou(2GCtdu)|tsY z4$CQBBpu+8yIW8k{n}C)dbXDBYNzSPo_s<5VXYC18YXg7F_X}0JP8;-nBQTYC5Rtl z5V*YZ0V!xAD6Gj=DP%S*6Nw##*dB{}hQjzhe!V41V+)>Q-i4zTAIT-2I$b)iWodXB z8>ZA)g@#!QV_pt}3Bymi!~`bAT**$lx4ipLLu5b-(I5p(JyHejg9|k4w<{H_KSHke z8mWcWJW0NvvK*6j)*Ru%Eqt$M8fn1$AOWEO!wm2~Xu*;!bO9b>u{!ay^tnx;1$Jx0 zisKL4cBh}5pgq5Qxkc#7w8KtiGJ4Y-+hb$MVtLZEce?K2wp|hv;mFCDA^Ny+K6IVp z%>p2NUnfR;Vv~n#UZ`M6$!H9?iEbtDS3;myhfz7WR;T)j|@S$iCD>KpLWE%+48U zT%eNfhtX5|RnD|O4l}yT0DXONfw)37gB>8>1C(~y>F+J%CIu;mlztsHUWN>6vax=y z*WdozW*j+VQ_Vg7zDJ{q=Ee2{Xszoh9a}bb!J%gk{L^do?;6XX#P+$Y!OBCz+Xu!WEf6=CeYrYZ*3A;b0PxO(1f*BEy`WElB|| zh<1XZi@4t#VY5G8x=$Z_$vMhx@&^}EwV`RM_5s-}Wv(2u{!fj^Rnrb^!DH+;k6d1i z%&gi*4fYIV_r$MazwD20mk-!mI9AFt%>~*CC`r*xgXj+WLLMrS9pGQ3k|AK~bR8SY z^Nu{7E?1VRYWx`Rv@GnKa_K`>S!@6j8p?FvTI3vv2wUp z8>$qzvX)|ZXjGm9mSQ(oCBJJRE7k0%#SG*>H0JM;a&^lyALYy8k{ea2fq^!--0Ua5;?`tSwR zC5GHYW(#l@+tQ|NA~yCMm@BTG+dOH&pd9o#vBZtNcp7(Nxd@)AL+2(l@PCwyL?A-_ z`9bEylI#~hs>W$Ji>nq`r1b+(wOd?z!&Yo5vT*=x|Lc~8Yz$o0tW3@6GI`QBya?M( zHg=o+qT$l4xoz^>O@Rheh`)v_?|L-li58AK25Ud;+=0TOWmuz7-WW6ofv*6Fw4Jkot_75UH&eoC=!) zOtDG~7vu+DBt`tMFwfErwyWCA?4MyjY1_mmgePB?IQsTMgTZ}Xq0-&X2LSz7#Dl|Y zMiC=y-`2JUA;j5Pu61|-TP#8AA*AiDK{CZ7p(S++8&(kY6pC1-Md$NiLJ@!?cP|(-OgAf;S`3Zgi|Ic$QEJ`Nw)BllU5 zI-Z*WrO}XW89q-zXSG^ck3RL$=m4TQDFRQrDjPDmE<7Wns|9d?%K3xFy*1%3_JE)w zDYkG!r+8t-yIIzKrb=?;gu^CnjY@a5>Adxqp*+;7nAn@{Wb5&B_m1*1@!71%w`Ro+ zx?0gM&r$y+D%4y&6OH=SPBYB%Z|fb}LjATlBC7dF^OwC-CjH9I&F0Hzw&w#&+jY^a zxN{q1X}3CaydzhD#08KGAQR}6p(Qg z*I$VY7L^mF*TAd2o78x!rnA{Ni;<%JhU+0t4mVwl?vxgM`DlG}d(2|fsBW48vA84q z_qt@40t1?0B0{TFKRw{`#vR9!!S{zn>yPAAgAt9Oz9ln2o3Tz=PiTblSnI9xn5*B$ zN5bJvR!tiG%3qyg;PE}bqgQ!+^qsi>&vVsbHlA1w_$!vU^z~AG@=|Tp1g|-^P%)m> zxL!tMVEeJRF4(&W$Xow;^DhbLvpz6b2MYpHL;F7@piH9G%YQGm{HF%|Z`FQnJBN*C zjL&U@KIb2QLFx`xt=cK-81Zi7}N@k=t>g&^T?^5o6Lr`pWR{%caF3j^cm!&_q19RVQEZR4|Rso|n~VFmw9-6W0+ zHcFHzh|4(7E(eh+uRCc$WJ8}0V>#b!Xe{eubG17&_zhTV3Dn8HxBNSFGvS>D|Gby6 z<@E1rKXKIMdXfZJ|KCYgaKI6YLfQcVHvL$R?R4iVc@zH`WrdTEW39+uIM-+Ndq2rM zA5jdTC9EoF;G^Zh^*G+#|keZ%ZbSTS0PSy(Od2$FJMP z)V>Bs%=W4Mqg9wA~G&wnHE>3VYa?&#_VN03W z+N*)UqVkrs66cKyoFm74_#Sc+yW|q zl->-jT&M=vZlDxA9iAjAh8ar%sg;9iW^I!ejk?{Yy<{Cu8V z$`=VSs{4IsD^)9Dgr&B#dg}-x&SkL2BU}IKu<)TKh%qqUUzixcNr?+nfCyZ%f@xCu zIAKu|1s7kbdXV3coJs$&f}%Y@1mGHJyxO<_fT;{q`L`78irYJ1f;-9rO2IJiFL0sG zA4I>xnp>kSV6j2r`_Rr-hx>Xg;5QS(*AfAhPHuLcf-%eC}nj8h4miBR- z<==5O8_geD6gezUXr7zj^KG`Y^QnLE8cD^4?QSE4Eu9(NVN4qaY}UH%xPiyo;t=Fe zY>KVuBN;)$n+e){paQyX@!T*%LvQhVdPEQI9JQhU7+G%jSp*DbhnP(n6?jrG60uAf z2G$abN!&vsX%a+zV>)13{Y&QNKWNcUDO8A)+}i+=Bv~f)tMy#?A@SBTjBXv`f&Qst z*1eI10RIY1olak~wDefpiXkCEqh_4WKv+=Et?LW|lL$B!-ZN>~x3k#LAHBXVT%jbNa`O2K=K1NuE+-kHJ?h zMxlu8N6`dg(e%+e4hVV$D(U~xf`7B7191GP%p-XLrXmtCk2MT(>;F#+lABln zKY}dQu@ADIdB$3}k!@SA7QHkiR$+Wp=x?-XuBtRpVx%a|ZqPSoCSwlXKXCVCFe zvp(8WFZtd=u~e4n3e4Jfn3icy%d5Klk%5luActIW-d6Ink#f+FrT$jXy7j#-g0nIVmvCs&?p zCXxjdzD0D_bkCRyEkE@y_~1NS%aD9g3d3-D?nKoz@KVOsEhR9abW|-7ya>mqiFCm~ zKWe?Cd&Mnjv2U%9x>E2U1w{m(dMP|xcF*l0p6HfyYcrO@~MrS-!U{-ZiA~| zRG~izE>t_((To1be(ZZ45mvl|O=adEwfnK5Z%j#RIK;v;#n%yOi(EKWtrq)^HVJDf zRHG+PWjjNm;zPZ7pfi#<3#42B9u}R%S|iR?cFTQwE}b8eJf?I)pBY3Zb6&f{z7O5t zE7ezn1i0!9dZ9Wj*67_@Zla_*TOnQlCx+yHQ@FU-R~na+5GPh{kk}LBOyFDn0JqPf41c2AUMT2eGO0o1-`62faYZBu8(- ze9C9&q3aUoJ?@yDHb(wTfIDo;n&sFLIvmU5XwX;iACb!FdJ*VUYG`A3G**)2qmC7KwcyT2SNUsK6J!AmUq1`R@LSb+}-G#Urc{e zVbqw7XhLXINwDqr9iCUuPw^X@-^t%O%rVKM|9qT^wGCPdHtN7T56IJ=XY zdA(Y8mMS92#Tk>(yr!lDQF;l*)wlZ{6o5|`yDt6(>!(fAaHLEB&@zbaNfn7IZ9EvA zeJDqBr}PWY{gBjq?!@J5C{wP`?(bOqOolY8R5wGF<`Jj+>`2zWpJx4or)B?$ktO|c#h0Y6iEvD4H9$KfI8ew*UioJrpH^jsT4r^yuxjOb+Nfd3`?CBnGWq** z;F)y!<-}lyEGH$se77Vgo_-}t6~JG%HIw|8kXL~K4G{~;V!dfw*L`}hT0n4&T*vfM=zFEC^7o(yKIK=pTEQcrFaXwfrMm%2fV+}n4q3P@5@psc3Uxz)-x~Q&pKLJhoCf`sR^Z=5Ug!!F+6r080kbxz zPY7POx}t&Xoy$6(DMmnV^H8g!b7mIygrFvqQhKH%=msnr_l_U;B{~$h(b|HSt7{834 zq=_ZIunkP>kI%6qz}oH;IYO5G>Y>xGdu*m{c`Fy0kG1x@dv$ww*rt?GucWWo^*WFh z(adRaul0h?Q1B%#`(swt?XlVd=SP&W6+fn$lkV?bkL@W0lc))pYbfgIH$?Rin^Bid z8Ch=((wl2I0mA?lSuX=!!@x>e_ZAE%)cdLT^_^>deq#pGsqF_5=8_W*kTnX*0s(gc z4h;>Sjm}l>M*kYG-r=-Ffq5nMwwI8}`IFaHSFB6h3l#LkTNMVm&d^o9MyQ@d?)Jnj zER>^BA~eL3D9ju{JfuMoWWD7TAm{!~sFHaW@wmpzAc9IL1cIK*cGxSQe0tvW$&-rA zF+aSu4s#9)q(pZ#&Hv65)eZ?YW8oW)Kb?UK2X)kqqvSwYjQd2nL7KT7Hi!jtwB-}+ z>K5K?k^NL}VJUB+QKHxO<9BcS0(zKJX1=^PU@@i(IT>Ai)`A9xf zBNjXX6Y82UORn*c)*76p;42YiDsmR9ol5ql9GDSkQ6*9;pNNQ%=8sL!#y&JdZKgUU z%eiswu_O$D*9%M3E#+~`tvZ$29C?nD*gBsRyawz}5e$R2e_yaf|6&$aSJo9!iygdEScoZ1;HSulyLtuRJAONEc z)Y!oSD}LSYw0&d+B<2wvd_<0=q`(wkFEgF$8vUQfG%A$+FM@SKqGS)9?UzIC}(Mf>0WKJR>I(W8S|DoIbv0)i zU~D#V9v2>V%wB2HcC{ z-E{*?^gm@Y3CNuS&PA~Rv@WMA?YwUFLXL?SCE{JeXT%O(BmopSaUk{SV>d5KPWq^3 z6eqh<1Pgq2joJsLbN2D;ouW_+mKfTs?j149^W}^z2`E)TS)g`x`%aMGA1-axtINjMBSj@Mc&E*vJfuY<%qx_zO_^B z?Y^$-r@xxDP9`JxK_|>X8y*lYiq2x`Nd2!MKL1Z(5WkXMU-pBfctcEA22R(hdxyo2 zTb3quvU*Y_UpZu|T9{&vBr$PU^0$m6aPzt;ihq?gIj%#7`%;*)5Ib`h2%scFo30ls zi>rWup(Y5{1Q7NEhyWFF!}xI?55PHLj}rVNEyxh|{asE)bYINeo(@-XmZrV}1gW_P zKg~GZX_zc`zXzx>^?ssI4*Eb>f2DGDw7JjmYgIU2q)ZKO5yx-!Hh%`)G9{^4b*Rxf ziLyC;*7kDMe4K(Y#w?erP05OSjV&tkoD?Tc<%VfE0gTf+7Zq_+k3-+B{P=inbU(5i z#wUp4_@(pEva4?3%ZFRaehrF38ah;HDh@|#v5mze@Y1n?)6K&QUn8+sfN^AcZNtoC z#vb03e$B?0c)E()bj4aLN6| zbGB$q1GvZft&~d;Y}k4QL#Rij{6Iua-P8NwFDA-~MJ+IVX@C~XhEJ}3*ZT|Hw0IbG z*e$K}J)+7U5y&I6fzV=M_enH0{_Yj4{0Fn);*dMG5Yl+i6mEDxJ-n?T7!!%QIkNOV za;m6^PQm=KD1lY+7~T=J6n3GWJ#i-CaMHN`7+^*%L!@F#9`l3t2Wf(CpEfiYn zM|G-de~}K+oYT_hmrlNy;a*udZ95hC!aFU*KYRMv?Fr5u#wVte1U)VENr6Z4Q;>=Zr!55nAq9;724m$HGtIZNn;zFYmKZn{=%rVZsL?)6Z47tY4Cydt4k@V^xK)X!E8;BvD$7Z4@@<^hO$LDK$x+5`=(>N$ht)>-d%`N4w1XwI# z5Q(H{Keiy?-|L0Q63rU#vcut4_G>b;Z@@^mAC?O*Z)uS4s=5zK|w_9DV0Dc0?Y`vsjXqMCLCU?{tFD zLeOT`V{F&oX>fk|yr%{sb2uA|1u*N^3XUwI9lrll&K|xVG=1dayZvGq>V`RrkUA5w zEKUd^my80gP_cDttU#pehXU7xBc$%Y$9xvdU>1OD!gMgDDJAg!*=bzZ{v!U!&e-cD zX_ORp!fm>tba?+%1mM;I)&JD9iRfcnk95g2eFe&Edc#Mu;>?jG;{dT6F^LOmIdS41 zZkK!nOHYx};BibJhU|r6Pw!U^+(BFYEa+?{S1QLKw(dK349fgp#!Hb=>R+RKO9N4w zclPykIs-JF1uXf*_!)21sn3)CYQ~QVk<)mhblj)3)D;nv5%%+C3=L#ItRiFvnzTz? z0_v5MLVj~=r+}AF=Ku;s%!FJ~D}UlqL+ch!R~o58vnpt|LdZ`c^ERZ1*s!BnF&sG! z{!WFA`OUnA4_91GkbV)z$teCf+abEt<`Iz{bf(!6*;L^fUZJToWnsszVRVyS(x<&q z0I1~G#{K1BB1(XBa{g0ez)4{scP4y!c((&LY{cd+lCkp>h69kd0}bnP#Yfgc;QUap zw&|s*Nyi#C72;O!gO^q<8CT%4BE0o69JcJOEI0SW`lQRY{|8+Py zD$4>pJDc{z1`1#;-9=4Ab0bh?|C`{$hN;0Q1azdHgOl_v-Ia2CKHo~1VkFPus7=}6 z8-)_o=J5@`tYe?nX#SsbjCUxHN6wBh1$QLI^^2&6^BP}^pA8$Zh47&vSA_F=aXyg0 z`s(&tkgY1uFj1-uL>qtpAI9D>IJUR#_Kj`ZwpQ${*tWf5I~{Yywr$(CZLHYFN^?5mp>=(2-Tnb6Ubj@B-Zi`VidFk^ z@$&GIG}>-_+2F4|Ib3VVUuZ>;$5#lIdeA^)6@PAalOvE z9E)X`|+J46a3(D93ahgJ|5OE zhkG>2l%B?TZcpN!B3{T26KJR*u5@loR&7{ndZ{7nXzv1OZ?m&v3n}!Aa?fb*)r*EA z>)2kc=Fs17?uOz|2z$4|nMj*4j&YI<2Wy9KlfzTq7xkVkPBtz1s$WXh%6qa|U_c<< zUJW1AI6@{K@=T29bd)+-40@z4&hl{rm9Qo)^*x!k9as}`utjZ zN256!N)7-?0kq*Qc4Io=$KF7xRMHnffB7afZWMNRrGbvjq>9=*Vpt5D1Yw4(c#TI~ z6=iH%n|y&5MXMhuCMq~I7;coBuF#PXsWLhn&r<-D=5jkWqUdRwr`#62TW;RXY8i4Qr zD1M`Yt%Vb;%K!0S%aO0Jkxv}+EsvBPuFLcx_X|Bb!bW`iuS?E%5B6RTndb-~*q%Bb( z0-(YU8aN?j;YKhoaL|~TTm5vOHBI{5_oKrg>NSyBKIxPcY>d7Q*yF?!@UY(o>?SN4 zSqh651G=PvR{8#YUfE^ApLIbAr6jidl#Rf>XPy`t^muDIA!9y|y_BQ@YT%Lii? zgS}|88*|e|*vpB)_Q(UNTseK(DSp)t01IFW@h#%W=+ zI+zRN{UB4bx>iiJCrl`Y9KDK`^Dx^+eEjiDBvntKhnDN|3$p}F1~9P4?%g&=@H_5h z2=vZ`wTDs>`b`hYlcUNwh6y<5^}z!zd|ZV&LtJEAE< zSa#!Z!fHiVi9LM%16F%sH9fUD;RAYu{T=HS1G zV@#d~W)Pf?6%d4r3-v}4>%_2&V-&oY+5|o>o-Yd}l=TJvb1Wp!_g>0mQdk_Zcu8optK=JJ{Lz{`AZiy+~7Zb~H$V?KrOl!1r7f ziNY=WM=1)*AM<^1#S>d9M&YSvyfe{B)IH(VJD(qu2Ql1SuNEl90MX-k;Ke|DKd&?( z=vV8jU0SNy@m8f*pbRWJs@Go}4xBtLRPfH`|4xm+7`|a*;io~daiqzG^&Z42{IOaKPHjd8tU6c+$1eL_=4z`p&s?hi z>Nhja6SKBPT}%0pw})5##wclj4bS z^@8vz{vt{NI;P#{pMyn=ppybbAV3DIJxG^MfzO=)W438ORfcQ*%h6i>E;6jl^(ftjS`>Ydc?Eo;aX)B2f*jo5~(r)M*b)q(D|*t(<= z%S@YKNGj~R!AHzU#@e-XZ$@k!edoQrJY?E?GIIz4o$vG<#&{RpqYJwV(XRLOST&~m zaLmZqI!3U#gR2u#3NbIGGo%fE@xEC8iR+EPdMWRpSTL~umsiQ%p$E>3e3Kbj8;z~u zwqrKP7cRMc8FHj(Q2vqe$NEGYQ1hQL1Bu5>^MlTE>`F2EzgAC0vvgLNk?s5PHNME~ zEh(V^!(!l$uuBZG>7Z1*^0G7&XRgMKnak-JUaMZz>>N$|J88eO9>?6HOcLKq-AD%H zDEOkATtRBiN&o6YB7WUkuHgr+8pq7kect8*H~-9` zlxKBc*qTU9xsr=EdFnGQhtY&HR;v{}fMiw%+%O3jO}YYk@mF9V5kgl5e*oOvPDQn< zi}KtJVQRH`G$8~Y$@%!dMbKP2(9Fv<>d`U0QjK1qRMcMFn93IV?TFS$N-r;qrAV#C zpTT7!dVdd-`5VJ0<|Nw&l9TLEK(LL5eY--dlA7ZWZa%O~>r)qo1u#<-YdU;d#e15`+F_$f*bbw>ia;gj+1JCB~Zp zOQuj^K0};3pq&-uTG-GUdH@uzI)o zV`>_f=zivyzt~`94#&V#<&`oX3F!yQo-#&o(v@`62{BK?5L&J2khwW~9hC7wfg>D4 z56FE|6veo)6O)qwUQ2i9bI%({uJoUxzBb{ayn_RAQs6qW#o@)h#idpe%qSInsPtNY z6T<%_4b|(HsQz8I{#>zKi&;Qm^y-?p-@jfv^37UCEP@kHs+m10d+!o8w&%TxWWzaM z=wOq-p6Bh7zJFktQkpGsv&`Nu^6*SKI@L|Dd1H`G=K3%e(Jx`9)EpF$>U3gZ7)YwCXrng2nO z`d?^Y>jAhr=-CmFu`VQw34~a^_^Yfexsrlasr==-hGvkdtv@|GPGoDz_{ZRR(&l3q z|6=>bPixmB0JtrG@bvTukY5A1zgbcrp$GR36m{j%_d8p~2bs=tDnr>_x};fQ5X_kW z8zm+D`w9Q}=xDfmt!be2+PON@AM4F4nlOa9fp1SUDrz97T-9;Rc6))JbcqJd0C#^O zSHDHWj~?Q;XZxNuMr|0(QQTFKcize(tgceoTFvF<%(sLAd~2Ajf0|UF_4o1CU-doj zj)3bQTsCf_)2^3EX9lBS{{*I^YE|KW%92){| z7@Y)^SzC6j*=PJ{+MT_&2d z9(pR9=(R_E&(&}vk?k(TyvbyKO4QLbN#M1CJJPv&LNqIGT{ucNtCi5 z`#-FDn&AO%H`kZ`)|3|N?4GatLsyX>G0CgV&6T7(l$bF7kCqi7LqDi&VN+38O4s@T z>G-8wutq|lDcCMGb+(9Seg#`$&;@dCvOaTgA4~yPRflUzs*3IjYUDF&Qvae!sg5;N z2ebvHonyh@eS5wQl89so`Fyut(2KjPR)a?d512tbsD={k@!}X_ksC(&ooktQnR^v+ z7ZV6A-J+|x3m-$AwXVnh%-M~Is{!wGHRyh0tGH6Vi*gIA(dFxd+|nqPyWPqFc!#z z2b%VvQvzXFkW2g=wO|M51}pA4x+unp2^GPSwN`OcD=3OYHwDTZVamT!R{*Sl=RTLS zK^iN#$rMoBf2^YiLR%Z%;!P4&%M@Jp9>8%=#<^RgF=NV#EQNZ^_EK7&qEHnMmnrS6 z^qRkPgKhe~7SNR9!#^SD!Bd%E9JhtJ4%Bf%zO#qK_3x*0Tl?QlwuqWpuv+jMkj-V8 z2p)Xnr05dyyTkqR$R<*IJph*#zR=NbVfk{g&n!uBrjWr;r44ol^ZmHEX&6oQNiLRg zIe_VcztCq@`OCvOV)5s2P)z=jK08O-c1d~^rKut+Q!NXuk55otXwS5WZw97ar_|KA z(W0Mkk(1cQYZeN$zGk0TwsIS{`k`+^j#qJeg0f<;_euipVrE5_=g!%J;XmsNwoaqwk`NGK0ey4k;gQoh6f zg}WJ&-yxV=03UDO?-WdOx}RdBBbV}!hZ$9w{?Z!e_GG;wVaCg_q-x( zphJW)g?52mUYZptXvGFDBAJt~*OvykggEs9=~;x_iV@exmsD>(fdtvX?)WMek-HegAnsQmkjrCe}jLWG0#xH!M~Wo zQASX#=w@UrnB}V| z8UYBdC^mE+*^?@wYUTduci>ZqS$%S4U5nwk4-iy{Xph(_HwL{V3X*@9Ft&pn2--#XqTul^%N3Or;g zfzPkD1bqRImFT>|q&-uuNhA7jH6UPA(xt&=?MlbT!c|NC9PLcWtxKgiLvsQW<1{`y z0>vh_tB@C0VugH)9%=<}Cv1u2D?j&hb4R;dp*nl2vRdu9owMvgh5dL`-j;4H+Mhjt z&CI_lu53vI2laP7Hp1MUb`&C#TaAxvChbbX|4lFp^_g|L>QB?N*iHqV~E5i z6f1|tS>*4)`KW$Ezd-j=P&79|;1atE6I-n4ZLvM~#3i?pE&?jR+d;U&$N>QuYAZ6b z*o5P5fG?VIozB{_3Im6<3}dcTUcuNo>bn5%J0n|)0V<;$&$Sk%a`T<HCLA?V2ip*1iS{L{eZN_Ue;dj?}Dod0JT1@h0`0s19VhaY{UAR4G`#@mz zaCP5WpaTa{715&Ytcc(vPba%HKdc9T;rt**mL%qdrLo(gtOku|S$)2Ba5YMZa@Lm? zceAQ$&OnWPMML*>wWLi!l{LkGlR+!F&E=7Y^=+U)q*$D5;PXRWm`8 z@ioF)Aosn6d#~dZHxD%55)tvAWS8xXO5xOi7X}j{r1pQ3U3v$%6d2ULCj zLXD|SL7aK_?>27t?A9ODN6Ei|r=+U-lU?%UNN}(EbO=_fF&a{tDzkU;7-f%Fqm||< zfFsG_o|NAejYFPfoeylwVPejum?wPvtOnceZ=A_z0ZH)+Nre!G3h=|-@+PGFBDC}B zQ-{peXwdXX8bR0noKQC;%sA8BQ0z{qv>U@TFWBd+gX!lcCxbp^07IrNoX&8z<4hWE zpM53rmnP>A2~A(odgAZ~wyE{|WoKHh+ zUZcGzG<)ZBBC^fH_fv?vXTvp}8gOt=8W*o});WVD%}<;83CH{nbKAOf+Q@K6$ROtv zvI-vz6Sg?ZlwBR|(awEz-O6pICZU4SOs=S{iB){SB)&sI%eZS}P577aACdaq z<8)?600N5E_)n4gpTV2|?zY(*8e18fo6?&(8rqotYjmJ{U&PmtY*XM==rdchQ`9dj0{)?4kpJ{Qik_E>7GZ5O!)%KjyZEcHewu#k~sx!(I{8W6m;xj>QwCgmhFfupIZ5k znC`npG>@EP)3P{n3gUx=IqD*&kuBj$WU3}uIncJ)^VnSH2sF`oXo38n#Bg?(Xl_w9 zu-~Fr62?`~g)o4SAm-0w?ov%afrYn7z4HV^b+l?T^N2s5Lx+@L#Y>I-6hz003GW%d zHPZH@g(^kUc`Bj#N2%TJPYz+Tr{;P)9H!lF`OCV>z9JmTpB|fY0ba{{fg;JBXP)^MYKO`T@BD}eA zG@f$a^*8;F&o?fh{tuatb*~>(6=_`O^X-*50Y6XM1%hu6cW_If8>ao^`R$MgCfx?W z1+a11el@oHQ~rW$3Ik3FBT^yc->d*l18^m|oz^R(I(v)`x%lXszvj>s1>_-M0oPt(FMz^gtx2bAinXhJh^1MgX37esND4zySN0bC?TGP*R z_nrU%Zafx5ADpil^Tmb8eJDo<;N4E|$6lj=UzXW<(?13=;4<@j0rS018sdG0XRP*@3gF!-W2@Izgo!vp5adNiB z-?CckzBtn!Fdfs`4WQ!c#~Y#5M+S}IYe6mag!Hsylu?&v6WeQ);fh#*9l`N}X7WRp zeUe=rEh0tJf-=e=aG~*U<>9dTSHEsukv4I&d8x#3pSF`NbNrj%qY(O@z8KXp#Cd5$f(r6|e0VBa?EI;#ok6Cqyd6TdX7D%4v9UzcHbBAWCIz(yu&O z-7I7NcZj`l!=R;E`tSiDqZyIy#6)d|>dD;f>ycU+nEAD(b{i?>DHK>@S=_sod|tju zqk}^ET0uC?BS8Aq?J7;xiwKS@mO7kTJ7JRC&m@ZxP%@n-9T_Jdo{7?v#Wzcc*G1U- z2OEx|CfDs@@8!gYy4x`Q`D>za%EAi{$~qvXydi=m2^ z->FZzYc`qsSZo#mq)#h+w)F7I_J<&elSh~o{#KIz4GQDe#wuL|+%1=nKmfz;+~RPT z@#yxxdH8si=n|UYfC&X-t=!D4(u21LDZc`6xfS)iPjn|20V?wIkj2j zcqofQQ_uE@1bidNh2N@LYY+@u@W<5f!}#(Vhh>q5~EVvQ__0<{GpI4aJU2pp5{UhmzhiXlA$-D_8q!C#1R zje7tod6Y=FF(a)_91>@SQnvAhun*>%W!%9=9|sVD=wjvS5MR1u9Jx_r7T?*x%HieY<> zLbYA4D};H_m>} za1Xf_2y=D84H_&RP-|=<^v>)jxwAYgc=sYwaQP+R+9V;qghw?5drQs{Q*Q6)JRjcD z#&RVlCZDWCH5cLcI#wv8>Wl|fan=wQtcN)vnKsO5VZ=^4V;WV9^;4%$F;4#1oPnmCds)in~Lyh(O#Y* z3gmfgZ*>6dqPEXL=h~3FJq5pkhTr}N3RE+VeSTIz6aUk#z>W4~Bj?B|f%1_nLY&iP znSFm_0rQW9^YL#xx}D2!o+%iPg8)Es(E}=4b;R@uoBz7!mj4Nf@ zmGyID05Eh2zmtLAP*^N^F|}#IjFUw%@z+7&@51MTMuszO^wEG8De!~Y z%{ceF_Z9qCn~zs?TRyUz?Xu(IVxmkLmy%gZlDoggcsA#?Q22$AI-mN7-&lqNO)SIk z*XHV(R$ob|kaQIf3|e>$*D<3Q5f+xYHp<;!-OFvZYQ#FKNT)?$B=rzl8xYHOd;wWW z%WgF}yM>dNPSmwrSKj9Y8ovNvLsLt)e+=wjt0RDx*T0zJSke~t^iRubI{H|6yKl*p zkKUYP9{-Pr>9Yp-`0I|IDK_e-dW&X8ujy8>nrn_Kqy>DwOTz$=XmP_M;y3JpV34FEzg_fM$$;DgYHwZroBT9?ONQaG$v2bmFFl z;SGDme}F;kxc>qMwfyP0#yhi_u#C|Dmghl4%@Wzqdt3tZp)+#tl!0G*S$!LQ9n!6D zk1u!oV0bI{zJMK`+s=hPOP1UCrgbI--ud}a&i%aOtVcY1is8v^_ie{ElLlK<7Pq5|jvBadUcmF2ar{@eLai-MCJ#&J-EB;1b?}nDIBY-OGbTwq{#;+bZFqz;z!Lx7f zRGW@-W&$S*3Coqi4^)JgG3^oN{b`LT#NHhHqTtiN+?;LzqO9L+c_(kTiLwV4c#t9? zCUG}o;B+X%mAhnzS_9hQFtmXBfDql&_+{JNLt&~_W5zWGJY8Kj#I7LYa^1m_`~xrx zOG(1|UVu&0)|SsaQQ{mu6|yUyjauF;D)Dbn2w90A&rPld`GchgOh08#zx6rR56m5oJir2Q%NAYS0_y<`-w2cBk@8#o`rBjw z5#Hf9<|*QmAfr%#1t{nDpu%7SfxZD){qM*Z zfYB)Wz^%2Fu<+q6O;L9emu0;1&Kwf$cPRk-T?zPGd))))0hv(AGAn#4m1_dq3fI&nlYNo*dvqZ-4t! zPz}|f{}If@1hT5vDHz&VIbTMnie@a~)?J#8Td++v5eJV)LtDPdB3v#q<#&8Mpgc-B z%z5|qo@T!{m0wdH+xY_%wmsY^Lr6Oi<;xDN5{u;kveYBsUi8I`0XKhUdfCDKh_ak17=&& zpfIaFAj#U`0hF%zT?a&c*8vmXbpS4Em+?elQ8s1C!7>5r+!gHwx3ava#nhO^WHC$r zr-#9hR$4123<~s`79wZ$dznu=MVzN7d=ylU!JzuRVWC=!U?RKrqWR35IU3u+wMLbD zgUHO4_BDoHJJyv^)t7;ta~PzS$1?omUDo`KRh8ADyb7??A=D8!Flc+G_Y48ECYgf%+2nkK2ZRB58mM_osqWC*A_*;o>7<$Xu6g!Yv$4Ze4IUl)_$-{P7Vx) zRhm431&S7>=l$b3g&73)R%=#h6Tc5~xXapE4rr-X$+!u2D_9VY2yrr6mqSG?3Ybi? z1sC1RIzf!!LLCO^f|aY|gC)_~)%+e=Yc44_nUX+bP5g@b?`ZZ3Rd|8VzkII?|y;aP9eeo7iI1c(q))VNx zQOXGLWs*_RDCoB>=&{2@B5y8Fyoo>;(lG8y*PahwH~`X-lH*Mdhmgw(_B?FFF`wCb zS!iyPE-~(LoKeXV-Uo>JPPS{5H zUuJdVV97>mRkayQ&5H#Q9SH}Y2D1Ql8)aO+Us$-P@>Yxr@nv6^2;_fmlWG)Es^vMT z|8=PR`}Duxe{dj!2feQ76&F(ct+-NdCLa0TxxWxALZ~XXUy=s+H}x31xqbdicIRlS zazTEttxJUeUR(c{jW%Tu4;&xc#M02**3QY<(%9)=7TW*)v0@h(KJkD3*xJtA+|t(k zKb*EV;^6pz|I=+U-?y7O{@Y-y>tnYr@ej_=Xom7J4DA9)a-G5-75ZVE+D?97&!xQl zS0C)lFY9S`1?QCO&&i8w{W@s5FogNsa`tx?o(|UgjI_u7%)g86+zVfwwh4%DLtJg2 z?w;FRq*9s-{7ZmowyL6*pF`d4>cs8RHZu>hBgM(ZO^oRIa6SOs=n<6xj>O@Lgq(3x$1$@N=U$06IPldFjYWb*bTi{f;(`$C7u<$4X&h-2Fw1?zylxlf+??j=c=nmaK#CL@0G zQN6SeKIRgaKa+JnX78px{AMtx;dU-V<~u&qx6G&TW#`O2pNar|-$>rqV!OKGHdZXA zlti&;KKt=e`8E3~YP6+ApC+mFm8>jO*~X-Ub?3pe2wJBd`@UPE{GMlKTK|2$BgMMm5!$ZiaDVLB!mn;uxyo%<+<-c?!KtM$J1u33`4v=3{O-~kO00WGtY|&t-=d~Jp z@izgy=+s(bTz*{4KYFJ;{VkP45TyT_ti!{EPz>-ARcV{1tAx2qilvV{ZH!dy>#7V8 zGI)K|2sD9ai=mM1l}nW z>a=h#0>LmK1h)T^cZ9eXcp@#`TJ4FV0NLf3CO>b!HGU|7^(3>9skqC|@2E^}C7%s2 zM>)Jj?J|>Us%ncxw~LLzn0L|fTe6;e^XLXSC%kW%;XLn{O1l=J-iek@*B@-8l%3yu-(@rcQ5tQ0f=*B{%99-sTRN8BBk8!8V_LhIQn){Y36$L8@IDRdb>^VeEwlx|TM)%1pdHhnGZDXJopgN0U@kK)LMoE8`lkrZ z;o~{kSWd2<cQS=^vOuVAN>=S9chGY{|;*xZ(ocaOGC*-kpv;6r!X6VTuKx>hpH z1;x>xuXu8&$#nSqeRZ>s4}sKxR*`a~W?^Fe}84BFdX_C#;y zI>vwY35rM6|E~`rC*UQnRGPht=@kT`k>gC*qqo_E6OIT2}=3Q3)65Wk17Qe z#EYZi#+Z+Hy)py8Xa8@uPjyNFf#2C!gQLe?j3b8~H2tB{v8+J^yCQ#;m)&&K?p(** z44!NafsN)%LguoC?FN-=OrsT$w@RoO!06)65R9E$=* zK!Aqaw2#+WG2aU2B6AZiiwg^t#WCfr-skb*(i9GUpU+Tgr~5h{2p>(X7agiOe?5qZxe$$DJ@2xI6T52Lh;R}8Jcd~l#U-6JB3qPKv66wXkS!Z$#Y1TRXm zIWD=6Rvh2Uq3v8tNmi*5(e$&EoTr(|7WC?@6Fr9F*R^Nbaj*9?>$h=iif%S;sLdHA z-iKDPkcQTT3XGs$t_sVJ9#j&;u^$7{g;RX9YrpFntL)?!B!NN$IMEcusupsW!)+&q zNFXO$%z+%!k2=X(`QJX?n%w|9YDy1{pJI6v%OP-+IfXo#(()KXIfl63Qw?zP*llme zt0{j^Vd+KqQ?ofGf&W}WUQQh5v%sk3sf6HM1;#vhqCWHlK~F?F1?zL>BfDLaQAxo? zIcX@hWURGd${S({YZu)k%T5SIXU{}O(s|2~1epv?U$)JY* zu$1~4fIuYy&(X%TgCG&JS~{V#CP=J10*+rz>y>LA+Y&|m!t5|nP0<}#>iL&vaU$+q z$`Pr~rdFDXaG+HCs!kBeI1tXdzZ*1n-7tE+KVP3m?;`!W?--t7Yhh zQ5O~Aak|}jW-?EG{OHR#u--r9n6j*7@KJfed%&f{0PXb0qU^GCkqYlrI^I7Y#s>;= z;FrJYY|Dia8JlNS*TM<)^SkKGr-}V}hicqG{Ml!Ibi|vz$Zf4@Pa*0S&enG*@MXUO z%Atf7yvoa7uwxkm455lemJ>sA19+jUusj0s+rl(~;1`dDS#u()Le<_M4(tYv zl+8pf0OR1XXcpvX7OfqvOCV7&55$vDHm+7dowO{yBR3dwZ*>>JK_mztUP(w@;xSP} zAt8hct7Eg0qb0zJxuBPQiGpNKdy%aOjH;_=%_K-W;1j|`dUdzsnppnp931K#v_uLv z+Q?Mmxoc33_`<$dP-qKdp`^3ELSXA;l6FCR0Jzkc#c>0SJ9b;F36t+|m2g^uf}1En zwu$gEbt?jj+9!CjAQ_0XsYh+quJO7L+pb#q5gcEH=rqimTPl)l}I~%E!%{a zj1F(C;gK|spMNu|lNyRoccc!hi9#4fRCKOM z-5%Ji2^%4fqhTa^KyIa{^ik}wtY<14X=`M&obH=noux7VeYg69^8Jxx68P4-EXJmj zxuyei&FV{SnY{rXYuulWPVJ6~c+xq*#i~0`;onU+O(Ut-o10c8=L}P0Hdlz7EN~%> z?%Ve7|B)o6UMEw#VKrFlEJUW5m3lBMMqJ zU29yF=e$8EnVVX!5Tba53E~O?pLJR5rUFhHr$qDLL`B%=ect(_wa`Q4z{^emsC>+N z5c`Xyj6k?1LkU%kF7(~DqC3>!uD~QSPI#YE9Dn1!mUSUId+ednSu=!xaYK(nHA^3g zbh>quwJBj7Cclxcivkw!^VEv!XCnMn@^6}%SX9XIt+Z2zTO4dS_alqnp&=0Qq1vcN z4WmM$TRrN2ZD~_Dhg1Vc3f?CGFLE5?DYN!Ea?eJ`^2D+q#%J?!XsbWAS$C;L?1H*L zDgEnGUOD?}3Cz=85VGA4X>9(QYsKSN{Vh#z!2S9dq8Jg9e)QUsTvc8dHZrJ$(nORY zA=;yaHjziRhJiaft+Kpj9?{A)yOWg6UijUj6}T|z8FKd^$IAYzdSOx@@U6yr){sLcXMSiU(T7`nf+O0&{58rP(Vl zj+pTN+GHbCJ~Z5mp?)Cj8$t5{d&TpSd1E`*%9Obiw9ZZm|NdneW85_F555%aXP|hp zS26G_L=dma&2Wo*KQf?sM15qJYcM&c*3jO7_oV_bOMYc%-2lP>TMhj^Hs1Vt$JqO`5JJ_b((<&-_S5d|B!|D3JXiB>~S04U! z6*FG{@bRcQov;2M7ZYBxp#1vVR_O>Z^*dHL!Tj3qzm&OxQ(7{*JGY#f3G|^-8}6cs zE=R{nO-S;n#(Hl1z96Iymi~=SinGaXSNwL-BAflkerk$=2iX6YT66lhT+{Zj+u;0X zFEzl_e;Jr$j4Qoa^1|P#3Hxw;_3|p03Pvm6rm6lg!Z|wYsN>p;%tgy}A1{jz$+$R4 zqI-mJ%q?=uv(Br2;q}}(#`^*fKYl@eBNUP+NGtmOdI=vevUYiK7X726TZWq%Hkk2) z%EbTR0$*7eQYo4p?|6T|zgwfJp!M2$`kRLYVI_wo8nE$A+;lQL4>pZ6_H`J4%hbSN z+r>hut=-Ax9YhA5=4HJBMf8{?dzN^P@HRi5jMP!m{>C9a+MS-n_R=(9Y)kjZ)3j7r^B48_xRR_idohAp6qs(F}e8V>3jJB;5HeBbw>gSqq z@{Vj~+1W|;_l7?uj6= zTLwpk9ecNeW{GqoI@qBE>THel#A+wplnpeks}tXKtvS4>Ajnp#boL|m6J0EiBGM2O zxNLUWRYXB#Bdtd|9akZ0qq*GGs~ z{~Ncd<%S+*JP(c)F!Gcf80aq_jn~u?_gA80f%`l*!DpU}i+rSNW}~X1Q2m^WiO9A$ z2q-T?Y~%vZgnBM3Hp@-ZTExppAdJFMBTnh>jj~b|J!9S2G_!;Y*t-8m+m5=hBtQXN z=!!POA=@N8A@w4g5Ehz85!@D!Y}Idf7Lx_sK2t8AUND5KCLS5;u5E^qj+p>K)7!Mb zBYz5Yp)wBGA#Nb7O`x|kIZV#Q%AX?CHe-l~7b3@C#9GILK;)FHB*bQ7Ch{%)<{!N?LnWf5@jA@;p6T}=kk(ruC3a1g z3U8QM@@j3tt~Q?Zi{*)SNHtJXdpwqp-hn?X)Nc*t7%HX00Ud@UKuq4K5^Z>U$yjr=dzwG z=pdRH(X#jGHo6ZX33N%EZ9H5aZ9XpFIUdgUrwYIEM|a*3RaJ$hkHdKtWQA(r+?S^N zG|oNX$oKY{T5xX#i;Mx<0AQDOSkCUH(zwYXSrThBtv|$4Mv*=d^f2hH2Hv5&K%v~x z0v9XlHU!n3bz2rEF9?-pB`YnVzF~3w#lrS!;`LCwh9%D0-%8eF%e zii$gCR%_zyJeZ_Th8q)~n^mNID5$x2pIKh<5#@Cyit6!D_}^ZWe=J)3{B5vSxgeSi zfx6Xy6XD2vbA{n$1HOn~6mJBX1pw%-Llz4!n0V`SS~tc>)BUNLaoJWyT1lZ=+OKI*H6E^}9jbuqNqcVuLovKi)ia)@ z`LcHJvAafr0BYE;&KpJ@WKcnr*cn$bEz8o(9iB>TggUVvJh_NSp{5FPRc447#k0o^ z?n*t+Abx|Y2yhivnB;tlcB{CLB0CsGoViQL8c^$yb=A(ou#}NjU?M(Z&Z-^3XG>}H z2n?3lMNmU|FCR?B(iT=;C~HIKCdSq;dw?je_3Ms)&4Wn6?;%8RzmUdg@3fYZS%P@b zTtx<>&K0qsPlDf_)?V7HjjPeZtDNVg+`8Ue0{%<*2XMjni2ch9Wb9X;2N5c6+N{}| zg_W-;ED!DnJdbrrM^Z}pnZeG%I$0_&U54sfmW(k?1|;*c=ndkiQF?&`ho5!N@qpRM zUg0`sJp<&aywLx{*EaMQtyZXgU|;?owA{;+h!P zIAxrdmY8Qyzu!N4Hntfp0o>eHS?{Vxijanc2PG_Y&w(QWJqD_H+D78ZQL87WB{UTD@l5j6!Bx;dx=Y8r+TfTH=xjNakyi14Wm*J`PX z7Qq;A?II=>O<6^W#-^0LY9-03Wwl}{4Bq}^Qp4f&)w%%S>lo_<3i?xVZ%QFPo)NO{ zd@|NI#p&CH+jfILApNUv#2X}GPI(`4%)W^;Y&(vD3w`HTKd1myr;lFJu<3nsEFN)p zCvJ3+Mh%*c7HsF^;Zo-`EeH(xM(bd=ZJd1)fGs8DWb6Ytq5`DAHa_f#I18s7Dc9tPV_n;U+F->K7D(ZM1N}jeqke`T|6POHX=(K#eHLk^?LN-Fd;&>Q#3o)L-eQFn@5x2($f3^DId{ z72|lUW^ki!P&>P=V2}(B&ANZD-|;%ydz?GFJ${fZ{^6wZw!?k>UXLeG1QRvsknDHff6Y zkS+(wasP*wm_kwmxumozrqL|&&>NfB{UvV(+$Y#yN5p=hje`Xo&@9RQp9((q9pryj z@c*|tH!D%`uQ@k(^Oer-eV%U_ak?f3r69VI4()V0-D-8tBw?-J)`)FQ;IBDX;V44I z5*0Pvr}>fRQ72>wYjbF%YK20FYO{#B?Ugqx%3om;@GzLEPmVPK7{H0-j>FC?cUGcP zbn^8O_Cud!fXu8~vTnR!v31IR+X^llWz(~=jW=Z^`}J#^rO+YpG;J7#`W{LUtWd#2 zMgc<9pVT^7Um*_#kuBAJOR!v|NSX7v`UmFw#iP6+okRqMHwJ90PZ%G(=X*~ZG^0J* zkyzHFY#?lwpP%?OU`nadh;?x^&xw77K2Bh@eV~6ku`HZlNDJC{X25L(<2#a!Tq~-0 zNu@@iYGobQSix{oqg+vP68BW$=ypM80mx4?vC3(I*sK~x?{rzY&~}l8TFX6{{7U?JBms=snk}8hBVPi=vcm@_E=7xrN*2rM#B!GQ3bjizAGP%Zr(e>l} ztfN7)gr8iH0SNr+xX5k-gh|!0cabHSlc;(oIVL$&(##k%uyH6wB#7KNO8D?of2!8` zu=O1w93vzsRz{d`&$$R%)D$Y^o77WI!awoTt@5}M5tBQNv7=s}u%vz087BaZO{Tjk z^XQ`@NR*=_4H3ARLE@h<_62;s@J^&f3UYw?0@sjv3#?I-#74EZZyJo5ijoY=L~2fz zzaDsgDOQUhOrj-pE$uQe|LNTPGZ+DhN6-LSO%&n|y~?rm=>5x$y^V>I=#EN_BBTN2 za%I0xLOicd`E9eRwz3;2(AH=d*0#jxg3z@|JkKiM9{(Ikiha#^sKj5< zf*hyLD+1o&o2u=Q#}9Cv$mbbW+i%w+I#kUm1ni_`9a)aFD6%m)^SNI^sbSwqzdWOZiMd;GgJ zG$38$B}`(Rv0h1XWGqECp2;Ay(wxXUGcJUcId`(X@-^@J-GB|QXP%U~h1W*xhAH1?tY!m%;NT(CDIqe?(bNI$v3JoGqP0h& zl`qPidQj&E52yQ@&+8w&7t=>awOt$zZ~%W#vd#Wc)S-t7@~kCWE54~!l6X^^0m~%Y zB(+09Ib!@?b=D+Xj6T6hT#J{;&)D4H61?gG7BWmhh+ychJdvGwVu|9!3;(Ix_iubE znZyX)86WOD@^kp7`|&kfopwDz*2Q{Rl_55)e!;)tpV!}=L@s=^=OL>n6_E1;jsVJh zm6BdBe~y0xac!c&!et!hW8q=Sz8rC&Npjgx6MYO(Q$ z5u&x~s99?1Off2iMPoqmX0`kI&RiFNTfgR(*J2DL$-XKxncT*g7~4YZxj6y%gimp| zzE8CXs>c1OP#28vl>H%)VA-(OsCfS{5*~tj3_h()drf$~wbLwP z4I?lmlI6r{`}+v1wZJA~Q&LBfYc9jEwyzfvmboXELdDj&m7z<4ZgM=Nb5%nupwrfo_w6vms;8{ zYP<>#mU4bxqA7=d@?#sABc{@3DVOnjL~^uVvZB=--!N0^xeSC?@F=ItdB8L3a02ON zB7O<0ty&lAPWmA27SsFI^Q!Id*Sb}_dQ-K|pVVpx z=frThy6v~W;=sVrm-io!jj)9Nl?t5MZXtTBhAQ7e%6E#rZN~YuS6r zoLr2)&e}Q$kn;M2Kz0Jkv&uijoYQ5R5Yp_%_z;p2BmqR^e@Jf1{C`>P%=qt(XsCQr z8Pq3r{I;ri_PE6)UC}QSkM)q9JOTZLqNLV(1!&rqCheV&9^YAUw!bWwkK$2ykk@0* zEv}LC+#NFh%#7-Kk{glo=~VOlA1+a~m%b$_)xg_@4SFuD&eE|$TOZT4cO}P;`NgqT zGY;w)kY?77tj~X*<+2=lpN>Eu&;jv(DoQE>u>ZHB{69>#z%C{ZZisW@l zu63w`pHXgG_wt=f=grgE*A+e+Km^`pPXyH?c}c$JK9bIGM3Ze{X_9`$2`$G%=uT!# z*(S)GGqvKKQD}vI#~2uoGsG0gDcfKWAKo4q{chfgM8MLuB@EIT3+D`JlnuX@EpgN@ zaWzcfO^2EXT(P~wx(c6i{~0oEQA4D0>uGL|HVf|gi{@<{ZF$xIAhvA{z|&Th?%=r) zSYdYRLTNw`52ZAPl~e4r_z*MKAJ+fWF(BfOY^HBJ6{c)jlSX|906LnXL`3XqBDt$USgN131%zU!v3Piap1 zYvd^~*bB%l<9X1JTKl_U5cVDRy`LIUX9ld{{kCq?PkL5FY0$wifF%wq+Rn`&SG>1H zv+&Gp81*Br5D!*@xyZWv46(^II*|=q`cLtWK1E^bq*Lc66mSl(6g{DqXKQkEDB#vj z*|@TjF!|TZq13a~#YpGU+^X3Y%!qR+XYA*n!^fWWw@{Uyp()>wI{oz?LAgV_2nh5J z+Eyq8AdwT|v7?=50o!cwLfOtRIrl9_&Dr`2!(pI$h4bHPi6>^yc(jZtAVr{Nn*{Jzqa+-4z zGC!e9Fke_!k4>`C%N~DgnHe%APVFwE{rPN!(kk(=Pc zyrc01%hK=6Mw$;k(S&_S>h2>0@zC@`St5%I*R2QLq?W-Qxf^dBMv^Aw?uw@db%_M%w9UG;b zilXWb(Zn8Qeii#gBH9O?)P3rV3-@B>&dB!dQGiWKi?=novEF<|Ny*SY-~KG!nH_r1 zeRm?IgcVfuSnkF9249dZBa)rw;vqM1 z-zI(;KsFwaT_DAN2iGiWdbx=2sxuE|1;YU=WKuS16~rm?*Cz%W6&M?U!jAJV$!qea z;S?h1oFXb@MDXgV8Mc?Jq!8M~cVGlJdM9!(yvL^_8@MU2<)Ao**5Sr&^mi_h$dv>Z zEmK<*{y7C;3H#n2*h6WcLo2Sj!d~=Iq9ie6TqJj^W#09ik+_dX_CK@`*G(;(92o#i zhN_F>q#oeao~XAF3n_dLad?s9$CS&~kDR^avLb>_kjm=a%e2GVU`AYm7(cUJBDwJ zRtoe=5ymJ{eD*61?}~4a%r*?Dj5PrCKx_d@t-+jJ-=skFJub#YYM1Ct=?y~a+m zwkPNvg-e8P$oCn4DP~}dw$%`@sqIcrUZ>hBbBu{zt=fTmlb%Zn)C)F!!j$Q$iK-3N zg8FJ3f7zv&!Tq|GM?9@Y?dMjEkE@ipioZ{rZ%@}fKs@veblJv%o%JYbt3LrIuhpru z)GKPaEPB95yDU<6by&;OVGAEkyQg43lLGYWo(8%IGjIW8V7*j;7eTzhGiT)uu9>~k2rwQkUjWmWN zKr?kUwR8UOcG!Qat^d6*Y~%97+0;qc#{P$?iRj<2{uf;JQC{Qx>xC6kHTN_OS@u_0 z1xv^PW_ckX6DDl1eak}pH_J;|o5VrA^R=~W~s^YIu9%ay8HbhGpue^d*$#FB|+ zwwP`4T-?U}O(XvLJkFSg$5~Ko*imDJwYFwWekEzoP61%ev9U{Bz2vz+&#C}?+pAt9 z%V>yR@(f@}iOO|X{cxdW#H%NGN_eeZZOe9$!hc`PP0*L5xMp+|qmOE~@jmLP=oCyV zh$FOb?64&FSbi}0ez8rV5I@R!6)K2fTGpD^yhl=^t-VNTnMF`>zLGvUyj90yuK?_t zNyFGLU*sswSmTVPdSfEr(+dQM-K_4;g#Aq+7L4|mLsw*lea;nR7+VC)<|Ut~C309` zWyD+V1sRdn=_u&@k&;B`*3>Iqc)_1J$o2q1Y@Ctgcc`*AUKW}7PIg7sXMI!U*-OMi zjKSo9trZYDQ#P4{xTMzM?ol>DB_ieBZ$znduAECgj7O7||^t>ueOJK>E_Ie8bdP16WEbd2NBUCKh zo<#EYjpQ&vKj5(xipPK&DPeK#2*Xb$?GR^_%)2YvqQ65DgSdaXJ#+~^{QLb)a^Fjj z3SppEdM~ITi6(C=1oW-(%$HVt$XL#B$G9jBcG6z;Xsg~P66|=^M0!U;$$Rw6W2|M1(KUNA7wAz#e^9I z%Mp-m?GM~ebm0Qw4+%GjOb#>+EEZR}2()B?fF>#g`q9^styZsDS84Z&2 z)O0=v@L=h6>);n-2I^5?$8AY%5fgagZ_>_d9IP^i)3a;s1AWeaaVstcr?Gb^Hc04d zBQ}z?OXO=t6+IR9T5rfgJ(RFDy>}FjYZAD+CQOJ<`th&#Q$oD#08%AEzD2(C1UhM+ z2jyutaEPsMdwfLTBvm4(d$2(rX={E_4{3lhA3h`MkVtD2LGfThXE~WOH+Y^w#UICz zm5Cs?qIkMIXKYl6)@yX!qo}Bnuirbr7!4~7gcP~_IMr7GTJYwD# zDpK$HBa_Mz-~=Uyj}eb6MgK0-K6cSdNH{4s3{RS1xcH)^yggB2>vF9-a0K9+9r_6u z#00)P(Cx$690PL`KDd1>=#h>>g}btCsWr=I=hC*9yI>tZnBNXwXG}QDC2>JQI(vYR zJO~=YA(_xiYB5O$E8DG9r^SxQdN-joWN-q1^pJYh5Ldzi4d@rnbDAM-O!Y*}ydH)n z*7N@n%v|c=zgDFhIzcJaunf@Xs^NK`TAv|)5@#u7YK9tCg@DFH#5U>KqKgX;ma$;- zsAuouePK-TwJWZutr$&L^O(LYiec)%*2b(#Kgtt zO$bhnU=L8!!XtitI_w36-=*>W&19UnF7&cS`xMzG<3m1#=^#Jv0+Ibn1g-tZ;`-%@ z$uTu7Do)*&HN-oFy8vl=s^XDs$F#HDJ>a5ioF${tQ=pwBhQVnAhng zZ;BnWSU$mY|MtjyIUZTk^bJ8vJuEBIa3}Kl!3wj}Al9ccp&fwT7qf1~#ka+!f~Tg* zC_g$Yr?EleDnF8N9J@Z>!Q(iGdj#iJ4v&cXM+Dp^XUYIk859As^eH|RO1m|@)yC92 z_(wMI*xJcy*=v(4l_w2}Cv#xB^iJm_Za+TO#5ZBblD+Vlhd?Ardsquq4V||0px$hB zkq&=xT;S^%Suu76(3<9&3Vt1&GNp~0vP~QF@Y@WdPt0~$!VNNbjp(H{`zHMd zHXE-mkQnKE878OcoizpcC-C@XAEpw=aQ4ynNPA`yd^XHS=08kTD0i>{#5 z#CH6EipOujlX>BJq$QyydvF8sC~f`#dn`S!?~YZVY!#`N%El-GY*;)MvKE+EHaFN)l*pngwVQhJvp?7!Vhh|wi%c0Bg2La@9TrD>LqUO zkBx?mWe9_&~%`bzNXRZz^hOV%ZUrY$Jq7oq_F?s!a}QNv^H(pO(>c@ zPpcA8sZWfwfI0wbj;`7G>0ZN#&Uh);43-zBC^A&f$omm{0AMR^yPdrqv7;Qq@a6FL z))~1>;Y~N#MpV#5<)nW-0m3M^k23q08Mm&vQy00L&G5s{mj^JKK*!@?l|T2@JS8DR zZk@@cEqs4ud|K1eWB$IhfB)yhi?cG@{ju4}+{8SFT~X1@yu? zNxn!fy=M52q}shc6Qagvq|}qH5{{gAq`$x`JkUov0Ek`ddH(Z|%kV+y6~ck)2OzNNfh$=yPn#e zuirxpvXk{aoL5An8j~fm`-nW;vui!?{#Z8s`8+>~YQNOiiz`E-!aB4yQeimlif%N` zdXQHg>eO5#dyjiT!Q#CtG1oLF2*j>L1|))wrB9e0lp8{B51;63S7Lj;CS!r4un}xy zS73>6s+JY>nW;PXOEkbDaE7?g6MaQE*o96}6i0eX19nFSaG5YubMPCPZ~PDSp~45{UiofHXD!Hr;G7i0U&Ng z8~AgW1D8)KEukM&CHh1AT`jR$X5N4+jXsg7;8=v#4L~)o;XX>rvxlbRy9Ti}&eaBj zSip+-rl=sAsYr`lpc4 z!PjVs@$Z-|Q80nfUn+p1GbYI2049A!hUv*KiHKiKn=pTZpEJ`&WQwuP0hK{IwR)0;sPUlCtd3DkVI z6fsh(k>%8sgOnfo5G^?*UF@lZV{%{+45wr`k>^3d9pOHqLxtCc;EcW%0XZ&$Am3aHTBaliDtJQv(uu4a(G z8ZU7^@H&-n;^erVF6)FI{NP8OZ_+HfWOz6iCc-!3F(I8RrpnE>fYL+mB^UFy{r!)y zzix={zR}1*tfuQ+)SU-lRx7^$E9~)+_$3$#eCJ*uTw9A{pku@O$jF@(91nrQ9?TD= zW}3Iwf%$4A?iYx~Akpk8k^ZCPBf+s-mBiuGQsVAuvw8^^GjXH%FX$LU=HqERPM@0W z=Q}e2VYF3aG!gW8(OaOf&yJ&=@C=tV3lYp$nnpacf06(Y8V8)frYo&R-S$iC^qU}h zV8bkjvpOg<4FZeHc~N2fL=9zGY7Q)%8W&>ms*i^{uU%J^$$XRsC*W ztguQI>ljL~^Pmvh0}rny_`kZIjx#cjWug%&McRRU%wd__gyY2@DC=`+;dZ{wmX(P zQd_AJKk)7Sn`X^m?Lsca+ju+w2bi=1u(}+W#S0sD!cH|eT;a{Wg=@018<52_$jI{W zh#UQ_;TwM^E8lrJRT5pF#Id@w`H{E@Dh#q#)BzcYwSD zMXrQ7VP9KBp8UZiNw^Ge{VW}N48wzDqxz!ayQwNKCP zl-yC5_vg{pi`+knv3YVK=vZins-G{UHp%ne>zyg2^H1P3A7T ztI&S$GhXR7D)bUug=AA@Xx?cKaOJq1skTBLAC(fpJCdF|lQ2%&xQ^VN_}Tvq>?Ti# zld4_6%N(D|8b!TQf_erh(7DyY*w&0p)Nz<1nhBNjTp!_|Z-4RLz)I82J&g zI3NLEYSacZ5x>7E{hrF0mYY(vuD&%V-0PDPtWz{8n(=E)CHFNRN5CE8CB#g970#?9 zo&Yn;Va3Q$bMyp&=xg4{8pDrKh6dpVTJjajU^`A|7O@i|Ep@oxf+D48C#7k+Y=%jq zTc^o(Wmi4Bij&6D_qL!$3ZuM!1)=6k(5C?GV!8|zVbe%lU*&J0#1EVW5r)tX)b*Ul zYM$r>%lvR0G2IUyo3Q=GdR}3iBheEV7VFKIY0OQkL+cFarNok9)sBH7P{VOtk-YAU zCq;d}BHP)8N!AqeeDuVh91uix(u;weHfWedP~p^F`vrUY2|@}& zA5>b-cas8GrZNQHrfOc+6&|Z=8rwsCzjx5%V3{jX)aeFbz$E!l3KJ9Lb%Ft4USTWO z032d(tkkE0#elEjQMLVdJ!BNd-VHI-zZl}Gv*4$6DZ+hf}g_jO0L`F+?JAX%FG8X zzX8>fj8iX{ZN+d0kG`1A*hwk4`WWYYwSOk$mDpQew#UR4)rt!9lST4^&9PU>%?bN$ z4CC3r_UT>7gyVK|@VD6ozlW_GsFhse8|iX?wo@6)UVs_{ys+(2#I9#%vkc0el`pUS z#WxgnArXn3irUfn(iSdg#N7n3hUY;vcLA#oJnmu-V>+3=7(6ZZR$UD+GmylgQk5^- zo*O7=C3p}yDIHUu&8n`K=8%|7c<)YeO6U+ADO0!R_~3Lpgca3*nym-a9ttD|A{7Uu zbE@oAY921Cvi&ssb*#h0+F>OqHUtY&A38V-1*CT~@-m4w%8e$D^CoST(R>iV)24 zLfF=OrdJMyPlQ zjdjG^R7E3Gk%x%|D>W$fngDRRzyaWX%;qDQd*WHJ0Ii<4U_GI?wth4b_MmXJUFY#2 zGh~4oij0jt!Mj}$loWkQW8gefB&|7Hm-PY*w@8Q@HxWxL8w5CDBP2l0u|MxXsZv}F8%5JTsK)*cvG*T$6Sh}NULwD=n`E!pNc7Mi8UsLXVubsmC0w~L8}7MBrR`bIN~%p?@;z!jLbU}7Wn)*P z4Wb@z#98;xm488Vc;PVcMA-7&&_qis%WE}&!M{D;`5P_ihH}5#4Qx$$ooFKzEcTq% zAFDJzf2U$0bg)T@dKuEE6NO=d#SCV=S{;V;N;_R#6J9N=6qG-M(o=vXMYetA3v=tl z*vL0K7s;$pJLLVJdj(~_0$MkL(*s0tMO{SSj~`zDjJ?UrVfhMhLkB?*7FMm7RK9k& z6ng+`N8BP#Z`<6aE;kB|b2dAqFS0i~ynG)op8vERx?KW4ygqh$r9c{fPA*-te;j_h z%HHhuI{J2%yiaAyrNW#kl(a9xO;daK8A0|*l(!i9@A4P7C_14luz5sP@;_&oTu5M4 z$A5zp|6mDO7aL&whv8pX@h_p!`Ik`S$miWo-1WlO_)n*RCE!8V??XZ(NnWO9{L?m4 zUS@n~6a2I7=1-2Uq;GTmitnEO^lp|ogs$Ixv$kligv&Nnkh9)%DVa`e zBYPi0uwO=;Q_Onzs@OA2r}h|wfK{nV7%YZ_@IF*F@R_sMbbbbGlO-oug*o)jenkH+ zgxg=%isu0D$LnpGdIpeDOl8GwmdLy6#{|)RCF5A`6qEd6g2g>TY zsNRY!>%sJy_2<2sjLnd>zkfyO>4c@Z2C31-6_a7-zuQ>c%#{g%i)~olAV&rE!1!Nd zp~*XB?68$Yg95PU6}wx}ZtyIuQoRlsxmvl`cb-hmyuqV!?fZ9@7Jp==}o_Nm^sfpv+X8TluvPmq+4 z1P={tzu$X*aWfl|{8mv8LVFkkPy)vqA9FV07=B~i-t@Fwm_!ucX{MLl4i-ezMK`?T zF5;Z?MGfr1ADgxsm?yIc2ry^)c$_Gf2>^sn+p|j>dmL}^&y9sHAg;I&K!sjS`K90C zz2e^TIfJ}5nC!Ucu_xrn%4d6Sbj!$|^BkYsIl=muS0KFz*q+CQ%K&n+{XFyk0T$TT z=E5$)J?zI3{CMFSgr_rnt^+wPSPc;LDokv|o1lHHp4(6(;-Q=MzM)AMw12ix9NmLN z5Yta=nPDV}`olCV2(>t|pG<~l_A;)Kjvrzwy$WuV@3__XZjNGie*xzj9FBkInmZ7gGT**HbZy&c#R9WA5bR~a*?%p} zOi0n^jwi;JyhD6x5pXWl`oWGf6Jxn-mfiGY!r*>&8NeG_2aPjl<8@Ud6tnjgp93*1 zdRYI_0D^sAa<(;0FJCIlGrNel?@&~P@pjOq8$ zRD#1F&l^9fu+^K{5ylOR6ej8Ai2DhYp%U<2(E|y`FJsGh_uk7Ft4)MQUGh zocB!QI}(9~gVFRXm4gdY-rdby+r}a?8Il2!g&lyKSYLMkoXIc;K%(@eizH@+7+RBI zl~iAFxh)N1_>9j59|w^*#E7^>l9tPK@OD zxzxt7iKX@gw6{s>u3qnhU7eZ*!?NIx_Z;TA>_SyJAmgski|&?ARUizHx{tEho&|k< zc4h%a87(lNL05neP_(EBVs=)zM-HvqJveV8GXj}u!ycmX-E}qBy!rTWi@9el=U805y?_GClxWiq z3u7D8X6;Zq_bMb{4nGL+Qb*(-YBHCr5OTNl@y?xST?uN$wz(~rO><2{-jDh287Z+0 zW&bF8fMHRGN_-&>gc#CCDy{Ldov3}2wn4QQQRyzK;7wJ@tP7#ikZl*g7wrcon=(CA zeJnNLS7`eI44yNRT$hNB)_(X*R*iy&RkSWE~Q z(dV{FCy3x}cYvxzf%9N=wFDwDxHZk2AGbn#0!&7IDC|lxfms2=rs+B&IJ!Zg*0JMX zglMXngVe&2$2}Q%=(!JS2YT}p7mhy%Z1#J6>5_?I84+fWGCu_o`FKWo@Spxs4PUeGzS|{&gj&w`Cf*1H zKBSqeB;mO9*Z70J%H2&DYUC{zw|4dzyNnFq6JYF4_qt4K1~~Oskg<-cfRVWQ`AW)> zH&N4w42w$oAitMV4i?L9z&6E z<`&f;R0eo#U^}tIG<=45h6Fe4v)!E@oAz{aCerHLp_C(*NC~ilD+!C9-#S5JvVmrMbJT*O}>NS-AluJVvv zE`sq{k1^IHe`|B%&0HmLZE1q)vI2*lHn9-mA%4X}_V+)r>jqkDfIqz5o^BubG{!%X zP>k(8ST=I82gu5x!dbAKHg^Q22%VWgLysup}`2H!c<;ledd>D(3iRG&zF3KR7^%;DDp6xxq@S{ojx`diL}htVCP5n zc4&(-h}dZh13--2-6Vj_putfER6?`(X$du^9)yc#C^06ZzzqSA;=c%nPN~vgFoD(8 zSV;a>cI5o_NiUE^B_7KIH%tVXnfVYiIjQc0iA?0p#0#qsdbjF7lzE}6lKtqiEFyv- zq{bNCrmmY2(s`Dq^A?>rJ9Bz--+tq=;J;>7x>Q)~2r$N-jpqw*>z#tP__eajiSZ57 zbTLHgLhz=kwp4Vbmj%A9h_OkRHNU9HfaHSFd_Xb$;m(x0ul; zdDT=j!kLLK)84;OQ?2B_qJqA$HsNd8L`}Vy$*)2)bXFD^A6xOIo4o!oDI9fL-yK#$ zHBBx5UI0d|4$W`JXHwqdI&! zdP+k?T3_kkTSH>fjI!uLM8_7-rS9=BdxO>u|FG1N5QTO1lH@eED{Jg?cRr#fVW<@n zTWvPy*zME0-Z*a7&uCNmZ#fcb0s5FvlXsa2HUMy@$vi_^1cUwJhL3^RUtcscli!h_ zYS%0IU|P{*pmT6qd0(Df5g6d|Outh7rW-Xo#P8og3NWJqT0_r~K$Od7;uiXr+J(=| zAx$>-tzoUJGxUq7OXMfpekwVQm^>&+c~b2+1F;d~&60*0W8obbNr2)pgzv(AGtXQ4 zkWEC@HC^Rt#vAZDUcQ(8*t7IW1pFV@r+DW`PKZALfvGRU=L_H8tMu|#-IUUFMLCl< z$yAt|p!N<>M)e8RyZB#Sk1G_&k!ZlUjabG1n79%J&;DcJlCcDiS$6+x(87C{Uz2!n z`-nI$pGQD#6c)0?l8__G(|#a!kZmniRm}_k9^S#}y6B3U&+z%$@r~`n6*O;Mmky<& z-<{-;-ONHFk%gJR$)9=-!7FJ{5~Q ze%EXKYg8Q{#e7WuO1vR`inPzl{JVh>JU^~0y9*Nh(xY&tcD(2s4^P;AmiTo~LB1<&V)rV1##zpHb^G;7N7{5P@QpU?h{}K=fz-B`DrN8)Z5NDm<{y`Ha zrGez-*k`cnF=Le`P1N$yx5nQgt=#>S;Mc~0D@K40}#{9ai%<(=Rq#(2cCgbbJWZPD|=5nJ?$bF8aQijI`?i)oer7Np-)2eVQ32%9k!=c33@ zMQn)is9BbVFF$@&UcP|P3+GD<3YUOMW#Qy zZxhAGH0uF@y95%V4njs;B&3=av2*~!IFxFX8v%Y62iED4++Vs)J4iV2JVc@YwS?t+ z_&7H?S{^f=k7S>#MwzJI zbNi|gbFx?&v)uVktKO%uJAt8l{MS^f2b^A$pEE-qS0=o5G5wL#(x1=a?Yma!4FN7# zPIZ&etLBhc6Fkfuh;@<2$`%Ju*t!$}qFw+Nqlj^38S~WjI|+G48yiAqSnuIJ3V*Kx{(giU`Tp4twa+ z^0P!EN#u(vY$`#)RqytC-*roKvH(hc<>$v19w+>4_sybuh8?t=f!Y;E8DW5gH;D&C zT5le1To!gw969(nw><7AzBB{^z4fQ=Xkp1}&l07L!XrynCVhluu7TNCA#H$nxJKeG zf8ZY000A=B@2P`4-B+1y91|`FQeV57??Olq852$SO5(A}UX=S-48Hxj7RlizG(#8)2yCN=LL)5M@0(kQlYJo$ z`x!rV4-7h#OUdg%atf*cvLog^I^^4Jy-nBxW_BqJ6&KG}S6&BUFa*=hsL2LU_|;J+ zo%EvH9q#y3$J5WtWPCkN9U904n~cy|<}mB$29z|SUkFjh6|0E7y0qy8;9TRtH_`L+ zOWsBYo1P_tno65%CsFdhh*p|J!^cG7(I%m`HD|WP8?$<+WV0g52XMd8cQ0XdGG39i zhOiCy?^+jdfIdgqr&968`rXJk`s7}LeRFkkB<&b9+*sQ+Bt*plLj;bKN z;P2T<9xd%`d4;x}4t7HbskNFhPsEz8{32U(bC%`~BYi?5eJ=x>BjiuT=M1$8nxZMJ*N#oYJKWEfX^}qiP~a z4e>{Nk&Y5<%Z~@i-y~y30tW%;jaY=BbOmEgDxQ@qXlXuWZ*jZ<>G^_R>;v%t4#WQa z7BT+VcVkY`dWWfuZEKd)Kj5iz(HWWDh#3g1=iOq`7BFP-Gj!Lc1o;6c@pmV3UgT2- z$&qF2s{l5PS`z=wtN1_SdDSCK**OG8maqV!<<*>N$r@7&2xWqrpJAQFU(~v`g-N_M zqNMB;uj+4|d)>al=dYZ%;XG4f;yv(joZX51yVyD8KV>VC}@x578k~10H zREJ>-3TQmKDcxM_ZN4Pt+@6F%e*<3Y6a+cmEO2!!-gLE8Qs7!Ew4ZPXa4D#E4YujD zi{C|#9c|>G(0G9@OZ{l*YupvwbC09(kS-lH8_1-!HX+1ZM&~pDwv$U=$N^X|9cK*I zeor-8@gfz;K(e9_(;{XFkIgH}QBRM>h-?_H;C7B;tKQnlm9HyW6t?r@L61q)o4%5B zL_OaN)6C(ByWv7_J*|xbz*#Z{O3Fa|lLlL}>cK4{8isbrvasXzhdPZY*vpB-mSn-p z2EHCn1aKiyk-fETL>6iQ>-%9jq}Jhg0x+cbz$hxYG_MOvj$*_se03oCNjPAjUlN@) z^jDGFi<3zMx2I#^bIXKd5+N_9Pyx-t*i5Uk?by+8=oGDKRjFg>$Jt=%=g2bHx2H51<9Fs#*L*hnh@s znput$mhGOaxivEYt`9RI*>~`_S=^d>0S+?lW_Uv8dMuyl$rg)O^Mo$!kHXSdAmld4 z?BwNOFEl&h0yT6vgw-+0%L7r6wiUF&Ham^C8p$G^1X@)U%&8jR_3N7OE<@ zf0S~e3-(J!Y{d(kH`C_m<6jl6AjL#k^DBmL|K)AI`Pvb1Jjvyo`hwy*i&9 z{#uacc>=!OKK}DCK3SZYDoe$bs^FI-OJ!a0V7kq#{NAg_@7eC9qVOsE(^EYjeU(dH zJhDQE8sR|`XCGN}o%dfnQ0S66s|O4+jIjOJm(^5%#s5*9{QhA7M{oM0c+iISC%bnb zHSzLGIAyVUFaBJPjIjeZ=&$)p{%noPX_bZ1Hw;m3fral1;uxjFF z{(~Ej_jD%v$Lr7oKZobhU$CBne1c@DL@_f8-a}=&D*zq-NghJN${7B}df5j~%Kp^e5a;;^(6n9<+11fNQ^iSR9LMXOOu zXLJ6hVUizbE&V?Dd#tCw1A1BiVF6M0W4YfIvim5T_3x^GKEJ;{aKQSoez!d2JWV{Z zS$OvBeeeQYF>vD`NH^BMNysxB2clur&U|Lvcy0iGL-rW;lp#BmOcA%dE^$D-(H0Fs z|7$pXG6RpxM6$v%@~xbBHcHi9M-4ilRGrPy_>ebC?;1k8Ce;FOo+HUKxXjunT>d(F z%rCZT#uv!0YuW3|U}Y<;dKj_qe!)Gy{TBq_#kbx32Lxy_6#feW>;ZT{5&-y@1Z<3e z{7V98|8EjtY4#oI0eaWy#1{v0W?CPCx6NA@!cWXY^fN{Ad2qDo2$Dm5lEn$~9}*x~ z^ARcOYBV5HSJnb!d2YB-v_<)_b@4Z{U=72=){kO=?lT9!Wo8o<^yBVA1MrGB)VPHU zKj?9~!7wQzo3R+zN7)g89?$Wzv5RO5XstKB*8gY?2RI-f3JFU(FP&-D>eN08;uaX6 zW9!e79Y+M+SeJ%R%UcONkO}){n!j$F>=51u)UT7Erwj0dK8P`02cl52?EeD+NKYbi zqs8cB5l>(`_bs=??LYx=xE4@{x<*~~2=mtE-q~2U03c$ivZDS?Ei}j-rG>_W z$S1*a-kJRL2btzV-6c&I%NM0}aW(;GKIgWK^kUDHv+^({jl#+9vDYvGHP7*pxnKer zge;I<&L|uYa}ygRyzAPcgIYf`zJr?~HIr*37%&aSA7{nqKunMJFnkgM&$#8X?v6AF zl>UnV0DQxd*J)Siqg%(@5(CtObD;y#WVA|iX_%1Q0=0> z%LKjOtLFSdo^!yM#|E(fPiDdH@~#>Xs27-qM|`@?Xmh&C2t@!?n+$_?zNe`Fqc+_k z|D!e$qxo5E8~zEQDC_+nwW+jmtlF1-7w6Hr50ck4iU7y}T67$69sK;veb#$2)oKvP z3U>DDfCylOZ6^iuKL{ZDKM0^5`(7lx6+#mX0DUrK`dn^dHMuE393L)0*Dca-Td&w4 zUI;cCl}lpKm!C3BwHlo={(eNah(w9mYV@`HrkQ(BU<4UjC9qZ-wk93uHc4`ddijFl z#lzj!-<keJNzcf46X1jA1cL%rYw=V;e;G?5}SMt`4 zIm`o_oMswydUUXja!Ci2cZuEIo-qut*z%ztZ>X;UvuHfY+GdMYhxErBA_Tvq;t|#6 zT58qOGX^1pF5K151cztb|JnVMBY4vMC};b-`ZpDYdHB2f&%URXl#y0HY8aSE!E{F` zXMIXpY3X^6F>4CHXE6^3Tn7{P0vp&MpIL+jesZ^SF)F(5n^E!d$wzxxZuR@)yNBv8 z)J#M(>ssd5A7X}tMM+q~qL_kiQA(?PgP3(zV?ou`lrRwuHK+%Hk>RPsbNy!l_ zj`P?DkCi1pd|sMRewZnCsIu5_p-sEErYb#|iUdj3Bj07658#!A5mz)BX zDr7=jW$s91%%gFmnaLHOZ<-RZMD%4GqPrJmo8>Q)u4ztuPn>LgHs2Tm>!~s^&LJ=C z&p?D`w(Mv=dvqQ!Kv8~+QU}#9V<-X^2kVP)&@o3-c=5+ z{K1@v{P9fS?O-+|xnRd{=yI^{GCKR#CJ8W%i7Ha$OVo_1KwWAq@D;@#B17y^6)X%# zIDs$Z%#0rD4evPQ;iQ^P33L2_5A#z=;7hO;+9iSOL!LhGaTj zksJ$DIzDQpJ3kp#7ynBpv}&b}%|r-pr5$>^@N>N1np3l3*qx z_YjZ!Fs~4OhlR&!v!IpF0<2OD8_oVyw_D&xIuIk2FPWl2(DW;p94tlR>kNpS(=r;X zoJX8Ztes+bxFgl0Bx0$Sb50j=^o7}O-ikm0Z^<+#S-7}^bk z3*+IZ*AL&#o_hdYW>d(G$0k;K-zI1eeN5pcy(eYvuQ$j~cA_ZT17t><;9Wec- zpi9qxIDmi6t2s4HUn1GW{xt4_8P|5NQL|j;QKPdIf`|Fue7PWUk5F8%BMDc&v=yl+ z)?w=Ql(`Y>_Rf|WAaP^p${N6SwBbSm$kT6Loiv4i>)|sJ#Vbp*w(~CAy>r|cBTs)0 zhS|lhZb~?MiU#Y5(6ht+$?EbAxx-bIY_00MzQ{YZ63FhArjRfi3qSFBxSal%0PYbI zdRdjU;ev^YG8pxOf7kqUia7kGN!p_h6EV3`jCFf`mMEAzx&qSIc_x!vB7pi{i>1iZ z;SYULnc=coOyaKQBw{h^055>*18DNc{-}_v|#HZQal0aEs^cysxO9i8J^{a{@X(F5ro$KDE zx<*SLo%cM-PJSxl$a*SmlBS(u&suUyCmb#y%4Ai>^^8`uyo3{B>Z%#BvNaETBejC? z4(lO_=u>Y0Peo*c9%C@~HdmIBy3`I0zGY*N(Zm54Z-30Qh5*rA4Zst+$$CNEi=s%F zt_PB4f1$%#@nl)n$B8YC6%XIp2b4_E>BVp0mVfGxq`0}KbqNv@X0q)s)APeY`@8#< z@yUvUiBk3=^y=TTJ{CfR>gC#iaAASOjxNK<-c=<(bPb{OhY0`JP!=bG8$Xmn3BgE} z1NQ)?vy0QjJlXu7SHRTVum0vMEUR{O9m3Mjcd7Yb5v-3N#8&CI+M3yM9Jr33B>MwiIJ5Exhht>YCP&Fz6FjsDS~{*%u3c3E%xTYW9!YT02%xkg@O%?W#slF;%~nwWF0yK(Wv z><5ETb$vO5NZW?blXnccAPdB;RVSOVo38Ex_p9{r@2)Ds9xi*}>0ZOEIOMH6Hs_n0 z-{(!zQ4QuFt?PiMs)Nh=)3vX38%20ZOoxGQgsu!{Mdm1`)c;3)s?P9ZuIor$QHt8s zpM3a;OOJ7kdL7w|bWU$tyAMRdrb*2Q9Ysm?3d-o`!)G!3t3I*CLjF~sEDqtjOJW=n z7g}Ccs`M@{?9g_|w)TF!OY=80O49aTX+Avy+;uP4qoei*Js zm0ZCdg*&@*SU}Y;>rSJbOGp8y9l`}-vx3L^x0-iM7Fb3-4Tp|IrMf(R3&JNTs#PHg z8L}O`XLATmH!#0xFqNq&iJtl^0~mv5%OtNiSNvpmEx8fE zei~+Y%6u=5#TW%t>Z=eh0wODdRa`A);v z=umT`0WhV~3>eDuR(X}m_}fQ|2z&sLzxCy$=Rqc-3j7YPVZb^dw(#zZe}`Q=Hx7ps zX1}@!G0#WRU-b8f2<<^nzZEyZ zJ5;B)Qp|rIk@Ht~vX$ffO1uF!sKT@Ra#J{1dj=SoaZ4h+j^pAJBZZDVoXUkLf@T)M zObf+Cf)b!{=38(6Ey=SrVxHQx6L0?(*n|rp_{vyl;OZanS5*tiv-xZjuN59H7(ARm zBSe(5ij9I-7Q>uY2{H7P160J!%G$E3BJ8_>U-W%uAQ#o3@g+Lq!vXuSt-|lprUZ~h zKzWrR?Dr*reb`ZAaRLYbj{rE(xL>R9bjn>>*Q4;KF=~it~Ub>ugT0-d*M5=Fe z*xUH?!QZCmit-5N^Tzeu-xB&Szt(%gTB0(S{B+xM0*&#&LBfNc0!Y9cx*0>W|8m;& z!s>1!Hb3pixW(AHBE@BO*Mq_ z$3`GzMZ*zcE!vB7ROFa|-GR&#Q;}a7(pIhTLybiqE09pyL3@Lz)-hcW3XEKOrKpo!1)8 z_iOXq>8dp02l@O_NU5r~`f3GRoA!1gSO@U{)Sd3Rd%+5LrfvgB75KQQGXPO2~_(WDj zfud*bKTpBJ1fCfcVIP(Kn}t47!Bh#2AMBD9q($CL_mE0Wm#x0A`xmOP)tE7pU8uJi zd25(2+%69sr7`HB?ICgTttL;?cd6u0B_q|sX=X+-dixPkE%<#A*;#7Al&k&jQLG0> zIj^S#uozzXW#x97gz29;8uj$>QoWqV&`_bhQZiL62V*(Pn4Ld<7NGk^iw?z?wSZP7 z@%x1^@AsUm`L<2>S1YQMYMt=?ZQQp(P;aiB}{X%w6w;)G#4oSrf>=084L-KP+szxoOxT! zGz_wq)QHuAfY24k(m9$FQs@r734Ta6W#~&p?LKqDtX9U342V)bcHgk%U9)_eox>vA%voVs!L$?1$%hwf6=n5AN6Y zZVvb-+G_n_oY29f^f_1~*3u^N@fR9fLMW}$enH~!idZWC)QzH9W4a|rm2)`j*u57T zF#3-@DEqQwkQc>NWgXTw;GtX^7kz+3U#A}2&9Y8df>c$J^Q1TjBg~6cRB&v-b~F<7 z-sLE00GTY2Liaa~z2SJ=+*A`~qmt=^j=-t49~Pa(6jmJ^*@k&%l4XtQOJ3$rnW>{~Fr088adZENnLAEjUJ z^hhEU$M#>uN z4{%N)AQO+_Aw{4l8mu8AW9> z*L0cNPM(^I^)1e~*#OKg6(v;z#FrR4EmGtg^-}w@l9l0ygvv&e5Ouqu5&;pDOeD;E zbj;LMzuTph=5Oe4>5(0g^UGaOkJ3Is)bv!+UeqkgpZX5+|D7WI(It8{&Y3vSOuj0uUm5HmA%G$v)e5#)8${2P#( z!j8i8_gb4Mf8X=Wk!DbZ9K8fSS)PHYVhBQD4n>{;yRoUDIE(eFg5XF0z(^UDK=snn zgE%2uIbqc0^|W-!6i)Q*4OX!KWSzc|Zgui{TvN{|Gw`*HmsnnDPL1N)V*6$2=1Bon zWl}xtI=%(ip8#ztl}(1_N#T5fcB|HyKRC7Y~46%+iLp%|>8GW1I(ZMp=m`O4Bt2Uo*7yoEvb z98R6i$OO$pr~rGF&!pcP23{QH^1m83WvL<*Bj5d`3y|P6>Ovtw2O47AA&D%H1&=6q zoMYFw?BDp_UfeHD?PswDh`ww)s_P?n9#(kr-STS=KfF|&-Knpdode&VFaCWvuB=g+ z)zr_e?f9gt>7aC4>Ah>I9Qot3_wX`sW@_l6pA?8uEUlcPmh||$YjojHn%ZaP#_Pzx z;Npfzjl>_A%?{xEFL044DEdEN>mBUujP3t-+tPos48XRf|`eJ}$3g z@5pW~JiJ6^b_jFu-NVg0F9EHcH5+)3_kbXR(suEXKnd7Xz8I_D9g>!q^H-m6AH2xM8vhwAM72ry7U8tpoKjr z&+w6Hc?mCO-{l1s=uSrot!=q$vyMWsm^h^H=6aaTB>ZqU@3;9wB>80&RJD6(aGoh#by4GX|mv=V5Jh1*VFa31zG} zThCYE@ktKnsYtcfTF^WR8pw_0bO2(3VG^uN()4IB9QL{~2d4l}O-X)@pq6S-4zk4| zbRXKtzgA3~fn7^4XV6jnV37Qy}H1*B}Lby??qnS z9-lsMFPFTs9M$q?#0cZ%M@HQ{w#F{-8L@?83uC6imbKSEk@&y|?;#R{EiFKBC+zV@ zz@X|EY-9z|Zuq>D40O}A03>(|r~)#z(`2X8N^^B{`I}%{a1toPKZ|E;d3pmwpx046 zM0|3H<6~z$2xcL00k!G|6c3trU%etw>W-Xc86q$d*6v_&K;C0Z{1&f9sa^Qzx`w zc_^Mm?bu=x6`YhQEvLjuh0$FHrU%qGh`IK{ry#f{q2|-#CbM3w5kh>2e{L#R7`^YW z3y(GM`2N$j#QKutl?&obCwAP?ET)Qb5f{M-KUfV91Q#YiaG}C%v4*tg9FG5!-G}4L zl&Ed1=$wE4Il#QSb)F8U-WnTs!nCV5n%Zb@2?~XU-C?&yXn$s);n$opUm_Jsh6S^* zRvanm7Fh7F9xD)VsBCZv6>@S=d9VSpw-tR3uT@!Cy@o)MxZiXB)Ge=vy*dlFV2HFeGXNz|N{`^Jro zGUN3Z2s*+QdMqP}&TAxXd1j3G=VxYBn(3A;3ant=_3WQMjC+UOn@e9;C^5nBC5_}( zU5&fAE6#lsypPrLCKtAL4!yQL?;z8<4fs_l&QWyCQ+`& zKaoV0#{xc<%$VWKSNwE&~?>-1$&VSGO zL7gF3gAO5jj*ZkCMVlr1Kp8t=Vkl|(o}R76Vgn+|_o1|J^Nb%}ODV5-L8Dpp+Vui5 z&Ey7u0FTH79W8{Zs4yvY-SywLgnW@4s~hSLxtNwHT+q1*qJKVOpv*Wm9De4&E5Fvj z(o6v*Va$_BeUG11a%{z$5mGM@G)H~T&WMs2XJ@CG3DXoh!`6|U7crABi3==^$Bly5 zd<8%hkpIB$ukj0$82>&CfpWgyj#y@MNLS=l+Nk6lThN6}dVtf`FN5Q1*4F8z?x<4m z(d9*1{;cL-+fo4tz1vz4v4UpAUJ|0R?$k+cN6lhk_B3q$ z)c1YPXmtG9$afcfioURrPG!26riY@!yBucYO4nTz?yRC;URBo+JpPbJe6%;PxdOo2 z(TwU5drfiaM~Z$jE}V zAwfVug{+YyBMolD5(ZXT>Mj6TfxRs}l2fT?16{0x-46WOP@WG|+RvcCD zhyP>)>s83Yz9qe;_#qn%IpteU*arAMp&l9OEoKk6kN3oV_N%ccR2u+U8p4M_H-%f~ z7=kd{Cq}PK)aS`C#Iezo?ak9Kttu)YSx)^Tuoz}k(dEMo$=hDJ#PJr9etyq|A(QZq zIeZs}U_l1%-&rS6q42aCUQydmkk)H4XILcu)jr|t2!YV=1VbLjc#n^G%N)RH+Mi+5 z)Gvd9=(h;9*GYDq-7Z2OQxb(MK7c z?R=3V9+vp|I0q|z?@pz>Vx1CqF=H548yS^)`#S~z0|KI680MWigzA8~Qq4AMzZ8#D zzMz;G(w);H;VpX42?&dDd&(d_>|o!qeyROo)#6cl(K%q8p&Q@-NgpSV^($8V#d}d^ z)!M11hx?s`-V z@_`=PR(9umA#N{uWxG9wq$4x0CS4*d6_zT71me3!W%ld-B8HKkJR%ZF^}P4aW5S6R*F z%;b(hpTL%pdT8%YR`OVwXEVeXSuWKDr(=iQ(3}{Zn1slXMg>E_yAdyn@P5>}fWCE!P9j z(H&z&GfftWIqYw`dInQM^NCtdyk%&}O6+B}XJ%XR^3_Zh*elh<{mYr4zV46UUyAXo zl@{~z6i~&alQK`wt*_O+SU%gC@OJS%rIp89axmy1F?9Px4*AG_>-SP<7^Qz{7NO6R z?K0<6L;3G0=W@89>e<;YlJL*zDv4uGFyCMbQUQwaUos{`nKYAg-7XGzp2-4s10 zBY*t%bMVC`M1J27J$k*r99`@r^4uwP7i{PRzU6Fxcz8V>oNUDcA9`-w1#c0~c3xgX z#+7mk5xyeEnGZ|q2PCaXxjNo7i0FTf zE2;lGhW)?hmH#J(jc@I+(RSA+~h04 zF`%~^e3bi~pdyCB+c)Um1ea3pnz|_906$xM=r$PJfp_LRPje{)Z$zlV)xga#^_p`a zwM^Ot?CfdPd5;yxI8LTtk*Gw5Jg_I0Ja4bgt{z45Im*jxmx|LrvU-X->0`QozMZ=0&ypVHvO}_6*Nq8G?+GTKG2Od=|FX zRu@{CT8lcP`;4VAtTJak#Yj^`rAt&VcLWywLb3a4+FdGfm((ab$cnun-~Bu6fg&(s z!YB_BDQ$`oJXjVE!O@*&D55&K-M~4%J$kULF9~WRBEn;0HyI@Ut3<*C`1hu#0i0ag zeS;3<7Q!1cL#};jxh%%0piAFKx5(?mh#G}A8tf!LCPUVNIAXn}V=YPwo%6^vel+l~ zLL-vAK68{p_d*b@vayl~B&ZN)F}CY$1H~=QmkvUJw1*NfZuq>pue|Yc- z6Cmi^pd5Qgz?O9@<{DessexR$}0xpm63% zgWY09&;F(e%T}(7Gk648+lqFw@Q8tOH^HR)9MF`hl&7wl9itR=KwS8LCLkBTqb;cd z`+qI6M(LeWD82g*#QGG}P&r`{>_8j`(Bsh@QxpoO#3WoQI#6MrDJ&N)SV4WmYVFvq zG>-K+=^8*9U<67oIhn^O@?tBRK@!RAaz~))VK^AE&$mH2X8Qs3CL`?Ygzr`PWcnea zBP=fSx18W>popGnE!$8`)iQ}t0U>-N#~c1Wm{FNVn(R~19#a8aiFwrAO+@lTuv|5; z^eET~oGPtaqx)JI{)|EW0%RjxXt|UEd-;C_tXSc&qO`++$Rl-Mgc#(o0(qrv)=YRi z-r^gpBp{WT2P{bli#OVstLgx;1nC6UoI~<7s~>y9fSHgGVH@9*{N9U1xL8x$*O!-@zU*h0WPXp*~qZwgX7y{^v^PKrQ|A-Crz$$Rz-vsr4^Y@aB_#AF+h@ z183^gt23R|AzN9IsC;nyxKOOEW~yurnn*Ub1>ECN+fay^GQ;ZAkVMlKEE;6!gqt1w?oKMF~P@Z<<_QnbruF9m zk949eJy2ZQHdIv`i<6Mj8`TPVH?C9vbELCJJMyvQlLWYFXc+uq)>X(4jdZbT zk#7U*t;h|56Dzrm6ZWZho5b1nmLd~MF8${Dd3j`_*@%W4RMAvj%bFJdNL&81OdKU! z{96DU%vp*=8?*uwj2WA3Ple-AB~m@DW_GlF$UF$uLeH0hoy|uLxmv*CvjR7iTtPkY zRRzP;=R^H!8Hqs!E|C?1eQW--)(Yu2-6JiIA591T28BP*f^6O>6JgYptPwAvuq8-j z_tfm;XPZf2B zAUqpTJzeR#CK6bck{bb2@eS$21R^a{LFvs53O!V)TcKXy+M+%*T}-8jZ28@w)Fs@K zmZ8hiG14x#gN;SMcg<=yC_=rv`4?&?BbbdX>%ShLcv<09&qPVHL%e2=_{fk@ezh2u zu`3p%WvzU|bQ-2CqkY{Q zFwl73N2}AoQUu5#pq-9tc@F#`hU^N)#|?>(!;##_kCi~z-l9%OM5I|v1aIN_qtI{u zO(5qU{4xO)I$haYrot3v-7-L3lX0nk2u{ZEH)sSvFOQAIU{3K&^Es0BFfpw?l*umyVB3*9NK_g{GlG?@~_zl zzQQQT*V#i=@At+vaR;FrgoMjqj!FXM0&!{86)SwlI()hypqLeLK z7`I?i8f=>jL9FG=z(p=D!Lvt30fPG(CaI^zlauY?D~i&3nA@d2^%0oH2m0P({aSqK z?{i?EdBK2SS2aeq@v!Ju`W0~cg;*0uLpvJ+d_?#_mLfa+SXiA?9FCRb*}2-%)aH*{ zxr&8$%JkX@s1uYi()hbRF*nG3?X;B@J=$U^CoV<53^Pr zjaK`bGt>qv-zQ8u`BC}mlua^R=t;hHZB~!)R};_dXQiR-b=wjb)bWIgj)VlPy-?Bb zROYWK-yUG{CaTAgADSnt%N0YJr)3TX(Lig9dUGB!=VJIY`HvWtXfRjf!Z0N>Nq&ICiNa}C*_pT@G^HS=-zf#D5doWB^nx(QG8dW_!?h$I1q}X~XKBAZS zMmVb%A@Rh1`|QtV?sUVYmAMYK37ZY73g!%mOdq+}<=$RRw-Ha}SW88HYU;6RrjJT) z^1<4;Jc75GUT>n%^st$TVzsGix>Qt~$PAvo_2D+lLH(N2f})NDvP^El(^1us6f%rQ z6S;`KLKHEqFKo&ZJL)AAKHl+=qc?M)mp1LW8+yyF+$M*~5<8zM*v9BiRWq5!nYs+H zkV^kq^3ik7xT~MF2YDUZfZs!+I+-RAdt42f?2R)r&^0T36e^cACYwP#`(@fQK8H%S zmpQ)d;Mo~p-}>u<&@1S?qsbW@>D{?70zw>$TRR9hr0vF6au;A)r9EHD>Gzsa9 zs6erG;b8%>ATB^`GhG1I|FD{0d-xJS@#Z2DRHS`$1*S%epeR>D?|=J;p~)BOC|p|f zLqY|UWV(-!#rm0J3UutAvI}`RBT<72xi3ySD7> zg5qc6WJs`X18vW|)h@?(rN5R03~{g6NB625+Jy+X`jsKw0zWF33sWIaJRwgyR69n? zC4p6T(bjU3ueKLtpCJg03Kqy~YMWXm+H|zmGCTv+wjqhcWmM*fqhl_E<+J*Rxj?8` zA=pz{oo4y9n}{-_w^^ z&)N))XnLU7!z4ZY@?SD|ll{v_H;X>Y{WDfiBe)*}odG*w&cD2g06a0Q&RR&xm&yax z7=SJ!beCAy(Wzke{;tZuac)bkW96PFM)l;M6eJO@d{b>N*i$}hy1W_Q3z&RUPG?xC zciZb-nI4>?F0rIfWVo4C3VxCwu=)YWJw!S zWg2)X-j2JsU#xF%C#H%M{K&=FE4u7zI|$wO3=TXFd7t3UZr49<*L^u2hi})rJ#`E^ z4gc5ck8#bGW&KL5=bgb~Zh>WqCMu0n0xOh&ytcE%U~1N!Q42kN}){hzBJ zliQ@{I>0zL&HoeU-W&ce&?I4OZTo*6_xS(ofEWGsp~J|J=l@R~F!@aM@_*`pt&=HY z3l5I#UoM~U6TBv4vLzkhht_n$54qpt`5dJApZD5!Tt3_QNUpMg_SnlO&>oXSSZw*z zxY&3BFg@0CJ=eKl*muOG2!PoS3u*CnHbxo5GU>3~xO>^mxYA-F+L%ech?H)#33bY1 zo~=Kouy=A$+Eb#4Zi=Gy|qaidL5*^%vF~ zwzYuY6%Fj-xJY9J$$IC*YE>Rr~1bJ zdbAQ3HghPaW&Kf<^T@ccr|>h?9Oik?tFEs*#FVIEajxDsW+G%)42U8}*?Qn#tmXHu z@H4}v?>!u+xqjBWRogjxcy>4$(eXr+6riuL@M$R;YYbVpv`$@Uaw%eq<-%GTk4gcC zfK$i1{rfU;lTv^9maNU;Q;+%O#^Gi)L$`c`rt@oeNSR_{=lK3r!gZf zETQ_0d^QX75SZB8VT|2y7UKgRr@%h~@bn87pJoV(E>Zu=8qb^B@ zS~W!mSQFWVH$6gY4feSKa%QR{W){ozO28x}SA)5S?L>Oy;}!zoA9rj8=#H@yQzDAW zdqzCDqrT8*Wf+ODPxH1h#H}^f(Q|*to*lwzE5)HlK`OF}y<`SvEU1CBDacnsg;&Za z8PI{Es{~!3UJbl!_AL_Vg#` z658t((cptMyn-XvOmfX4MIdK@xJjZfzlA_<X#YP0|*_WkrT#91Fx-cf)_+1fZ(; z;?tCm&1fG7Nx*Q>2B4PDjdL#V9uP7X%i zo%0n<8u!F5J)VE3wAundCStL-%`IId0tsOrLSk3`G)h}FI8A%Roi;UC>cEPVIgRQQ zd3)hBn3wFLZUSMK4QsFxAK+ny*vMnua+jum+R^Ppm0hmnZ9RNtvW zOHZHxMY}rs3T(-UM&K8Y#*V>B7I~K;W=#P~LkWC7K6?qUYLg|JU3WZCUMGH3yedWg zpxH{8{JQTVIN#P{oa)P*&w{YVfzI8$1xBnR>4iQC2&3({!F!nmO@Iuw5!y7QV%5(P z{H-jnYRKK<21v5%;cTR);+E#A^#s^tNZ||iB2KI4kljsz$tF;Bwe_H7m_jZS9N?xk z!dks#v^Ypf3F}I!_Dm|AeLg7sI*c`SkQl| z6hA<+1$54{obW(*=;MmPnK2>=AF>gS>9u{+{mu{jov+>`EEOPBI~OI>*>}F$Fj%rE z)Uu`}*zh(em|hvR%e0&zGVCi{qj&pdY)FJsg0r&;qqpHfAN3g9gH@n~Xu?cAk`evc^b$+fi67`x33qi?)?ujr@EB1z(e z!6+mD6FlGN7&zdRiZ}5Ub{9+ruMl7IiJ3GZ#Bs_Fy=|ZiDzOI@B-cq|A2t6F|AmMM zH5QHsf@M_NDWocDf7}=A7Z)Wgr7Hbe)I$ma7}t3>z5k8b_{iC%magN0G($Ckji^vL z;%i5#c7sXx=Wt)U*N)38Fv#-x{(gNL8}UUq)YBpWFB_oIJ+yyiWk?KE&BXiFE{w#n z;5APECRtc(ps~%cUFu2+3K5TDgZD64!$Hm#c~1#}gVfXCK}!7Bsa(Z#i*#K}{_UDA z3^|8m&9$JhA+bhSgLABGF=jbB&R*WlN78mdVGUFJ7deiTz2YQsmt8F?hOpT3bVVN z+O6F3Ifued?5#&TYBEc4!+Ykq5_+;9asXVJAbpV)t6CoNbF`djL{cRKoR=W5k(Ck6 zNU|xXTmoU+BB&Jzy*<-?_`V0@6#B%I+O31|OUQq_rAnVEfP}qY{L!_>*d=FUXB|X) z)Ps@cHue&JR|C*vn?r7#UmnVv=d1L83ukcgOsG&^L3Yz<7-eO{yr8G9;bWSY=mcEP zSt4fYV^drHq_)I@M;=VQ5AH4%^MFm#+CTCONR!#+&-Bv?ypp4asOt;`iR3slU ziE5Jce|nxn7W&f&hA6r>gVW7t&*P?}#qnkl*-I*My@@L*?Jd}&*d?r(R;Lu#qfM%M z%V`sgBNRBhu%Z6={dE&3HCCIKn`4FR@gTKr~K}g`^o2Ju}B>j>KCA+=vDx_D}G&;=r4W_FM-cxw|&m zabw8bgn?uQ_Pc_i;zqF&&0t%b@;o8lPt`7YZI3Is1orZDsg2wn+Yl!q6*QlfD4iX{0{PeU{B9>v7n>u}|2~ctJ zFiC4L!+LkGzL2%f!N#TK7tsbl>&V;<&0SxF6OI9eITfHVhdE4&y;TJ+r|k1ZE6%(+ z79lJLJ1fjp+8WW8W*S{IQ#I^r)gM?x3`MT(^Cn?zZ0+Q0CI9KS=URPVlOsWiOxK-i zb2Umevv=~-GYW_M zLZG4(G?10~AVJ)b+#Z*R&OmLYEHFEjCOHmWDH$#&rtrC@GmYdPuuMbJs-@ei)Tk!- z(=>^xH*w7-d@il$=gM`W-bYFAdrogr@4@}-R2|5&-tVuY!ox|US2?OHLjs-)d;~95 zl)zx#P}vDm-fhDyp@6A7@WT&yzJK3aybDtR9(*MT1&-#IpI$DKM*qCOEZ&_c#C^Oh z7K#>AYf3wpl+qnamx&JRCEkL6~}PGdXYcLH3EJ{^6fx3ki)4qu0W4tkh^OvCpsUn6W^KocXc+ru#; zv&gZ8-8rPd9sGgIHyGD_4=)4ks1afP<_Dr~*6FW95tQ4tdqB{zD{rgi)6%@P94T0D zyP12o1uokz_CE8US`nZN5pTwZ{aPL9LLAwoC?bDJ`jLUJQQT0}x0u!T_NGmC9dSB6 zZa+;~y z&hBbRMNp|hd^q;-t%i)8R0`v@oF%L;4#;xP02IVeJZzC^1aWwP8DnXqcx4!KF%)w7 z@iF|$v(Wd6(BFmHvg-vRHsYlT7@dn;vk)UGHOZm{DJSGw4}zrY{K|~|1B$RX5RbRa zp}MLYw4ixhI*ENFXnvc_mL35kb0#i20hg~FeSNr`er}`)>DS1z6=-3spLdw2F5#_B zDWt$~UP!$;k48VhCJ@Q0;Ol8HK`9-fo@t*D!<6MUlkBmNhbguNuQMjVBMwxN$EU}2Zzw{`&Ek#b6VF5C#6^V-dK){TyAHyU={ApA zd#ty0NtVd{cumLUG71AdAJl&)#KVlqS|*KR-3eB?5x{Nxg!pO-Ull_-xZBt?0#$2& zeKyLo(5pq)-KBkfkBB9-ov00`Fv-^sN1SP47Eopqg5MI5z@`ni)BTzJEwM_$a0a$RWxp3KdR-Icv0TED^{+Bh_|Z5c<#c#( zz&Kjki62$Bpky~WbUTRfrHE^p--ThUp|9HqZ+NPktIY3Ik%=@$lOMQeYC)17Q$2m3 z5Hj)qR4KQx;pabrJON9e;%oR$yiR7pwo{IRF5ZjBjpGgd$6sYNV^SlNOdzlL*)6Gs z%(*YA_3`34bC!%zslBde5YwZMM$7>0kOgeZ5Inrop9jy&`I9Vdh*HHx^O5C>EZXO2 zHuL2~cn7>DFkC;GHYaqOYMlF8%CrZD9S}5rOgziywF{Ubgb4?}b%VR}sVz#3$s}zd zd_&0~BFxG|oakW?dHZtzHXabEjt8S1r|BfFXDFuDasOHn1H2J7!fM1TS`MKsuYYK% zvZd(108@Dpe^YsCAjC9^htiMZyHxE3$`!1~!gN^H2}Bv96a(0Mu#&D~m2k??)${0y z*JO%8wgrWZM3Tb6FfZ?b7{SQWFd9GLh-A#wquec;m&VHIMi0rj$BE+nCAMBo7Uyej z?*IuO%>3ugFQY_^dStv(5qmLdQbk&=1|zFD*%e4Qy1(>2od zR_Yls%kKu!XcgnI6ZUqz)}?7`@5N4_6iPaZ>JQIO-F$6dX@juGQ zEew;?_^9g@W2w+yq|i2bVq5-~)b+cT!G61U$?~aaFNHJ@dx0dyq$kr>R7ovh9Vr?3 z@La#PQfu@lbIci@)E+=Ug_S!CS!Lo(mx`)%65LF=8%Kj_5}yiwyY@ux?#Od!%hoG5 zE9>daJkfG{3M*Cv6y%{kUVoESC;-=3R>y~hoOp?Tv*!sjl}?aTRs;*MiCNIb&DuhB zqTk9=h_<-Fn;fR|6X^;-|ym=SG~HwCVn zX?p;op@lwAq2The6-pN(n0Hk4T)!wsI4y3I@r2huRL|7|0zooIIbQTf%9i+&Bi4nr z+XLjo%~_t|ewSRjaNO#^wNpga#<|!G_e|1RmWzl(u*+PZJ%*>@)qT?obt2_PVUeh~ zp{l{8h}HQ?cj#+%TyUoSPL#u>fJMgwD#s zP`h{yU@r9n1g7|3D5&+O&eKR%saxaA1#ea}mvxK+y1XhE_RkkMhU4j5GF*T8D24qn zHeiSIgefYaiLBg``ks}G{|C7eU$_RXZm|YeQMuO2x76*9k5kP)_u2a4tCXH}-zyJ9 zo1fwi{tR7|vv*Bo60s>c<;CoG=YXr@NQQU-pr&%~t5dn`nrkPAXflntymb?mrhu4! z7O=Ff`se3)j()s-h8Q{db|;ziat2M9^sl@Kl(SFyyW|>2H(DkzITjI#wnQ^UyxW}q z*~(1-+IKk+aQO=)Up}f}j zfL!?3SY%7mi#pKat8X7!N8Sp`-O=s}ihhY4waeXjH@YTCU#YtVGTs5@Zwc3}m(X>` zlC@sJX*s+2`WeSdrZ;nSPQje8`&{Wi^`zr<_1zhTfO>6pG_sYn4H(8Yw8jSDXQAys z2R%E=?oD}*j-2bDP5E(_8p1oFz`(>mN3nxb_#sx8`cgAzR@ueF6;+z5^G4+xZ~KIJ zopqmJe*;tEpDfUiFkil0GXK{tGK~@+?7!aK|K}R{|I1A2_}Xu9paJXKf!_mWK#Zsx z7Mo>^>}Ot^HsZ1hT+b0t#=N%jAcRo5uE7WD&-V^z#kMk{T65aU{-TS%@ zsCj%`om@9xK3R{Mm>*iXHk&(5|sDW5o(Y?PNJz`dkxoXwwh z{hf^+Uj_LMeC3U8PfAK`MLQs|O8O68!$zpvxp%f#_j(7Ra*W2Uw#dPKEL;Rq_))r$ zr00RkiO2*0rA<=rYFyzH!iIkCh5gE)hEDvUm;GS0K!PF-R2cV2_GIn@>S2V6_t zJX-?XM7@dq46yY%8x3_UfLn4~XOBwF#hwqtU2lSaCj$N969WRibcZ+>boF8LpdzXK zH*W;F6@(W?oXRLWW=j!kV^$V~8h-@OOt?r|ZFW>hwahe&r9aRu#|5vTc<`UH!uK=I8~h;7A0@s^>T(UYg_k$MzFpfR@UMRKx=7tApEml3Kv0n zYfU!cV0I4PVAe$u7^@I04`J})TNj%CFeH5;6m8CiMF_Nb4MQ0E7SqWN1`2ih>?VnO zXdh#1{nph&A9GQ@!~W0}+ee594#L@Gbicg;#A&|evG>;4TGFqOV(%`Q06S^{om}*F6>5jdp>)Akl);wWtU2b?^*itK`@&)|Z!YHs@yT@= zDPZ03li?y=_dHUdieYiTJ}&2{zYQF`jAiV}7@@7(#ybXLA$?0&$gmkP>YByu(? zE;4CxfS<)KP`*tfp<^K`SiEJqflI#<9iOhFO>&nkoCXUtr|*157;T!uZo3<+#^r#^&)qBWZ^6%GRB+gkg@ zvR-iz#9=v9sCI|qjUXUaK6L%2d=cP@qQ|T4zH@)H#mAN$z%kJ_&%(X5?xfje8vI#g z1lVfq{nxnxh1P4C1yT`iCXi!4UES@d&bOI46!xaUq%k%SedrQM^+NHjy_Z7p6_X-NP*`KGmC^VDX>Mt2!j8Gt^$kQUs458;^F|~g+jn)w`yo>(56T51@n2j;Ifhu zN_vZlbWFErlIaWVYYU&lL7Y)y20XYV+R2IExDOzHToyUg7yKk_BImUvggNpd#?#lK z;qfpPonC_U&$~$J-(q)ouztnc3BUm67Fg_lC+`C#;eFVna-qp%e}*?-Gt16hTgRMt z1GxWwaNoG{^QrP(%a)^23kCUUZvbp|r)-Zm1&69e2FH5;xZZB+?d-KY;A+5jQEo7X zPyh>c`K|n}HlO_0W1%Qff}uxT2J~300zDQ;V^_#pyNW{wL7#5AWqKDib}wK-IQ5wa zdisP+NFp&{!~?oofdWTXuh+kNjUO2Sdqk*00`>rIBKOW{D2Bak;?ysF1929!NEYOq zB<@7#L&K28@;l8Ji`x0Ig`slF3rh3ywG67iJP>)sZw?a?Hc9vw5iAD`6)k3_$2%;! z1Kn9P7u4o`kZ{b}vFd$Ss}HrD-H>^Aip4xtUT80N#C7+!Bj2TQkoQ3%%O@`Zxabg^ zPB&?y=K8F=T9oNOP12Tb8FuyLo)_p}pN(LJ! z_@VhtmqtG;3&aDeVNDZfBLmDJv8)0&j_pEl&5vRE@0ae&S%oM&m=C&k59DZ&5E9NvJC3 z;8McK$2WCml3<@glvyi^9@z?1<%|K@`NoKmoNsPFHX~YoF!s`8)06m$YLfUctj;uhGb%)?RDV^ZCIcfG-zQ!uf^*ANd}v;I->6SXA$?nXrY0yaJYdN8B);uH8a}`WKcr;*U8Cr_zAd7lI2XnvBQ0% zAUfj`ATw-188EXAAhCg$&`s044VQAHqFOS`REqrA{uaT0M%2GKVuPS!79I`d^z3)Tx$f2Mn~yQ|w2PS^Wd}1$2$q1(c8jg|+`ErErnrOD zK}Gx9#D$6~Xz6G&nn&<3y|F~tbsx3~f5c8UMKHF72e5Eq+;t9cxSy_J@lmXF$V*2+ zrMQewm>+u&p#1ltdE&~7_Wt#eoFX6DCMqRTnB*1F;Nw1=$`ra5nF1HRU-pV=_0D;& zSL<^0zOd^d3YrG_KDB#d`bbY8Q*LmoAo?3NREDxc@+sNPbQq+&11otNQLk$BHkmQdOLN!z%hj`ws_7T$j1Inc)uIwJ;88RM0tJPVWu^#jH{=>w(?af$ z*vL1H@Lf>xS}u=JQmnBtXRq{jqYBO#7FpsZY6&GKNGzqC8H`+<=z=v~UjtpZ3Y9Hj zg)4j4t-3vwX$WuMlqD0ggX_YlnwY=@q9?UmA8y~GqHv|@J+ zW!HhP+#kFQJB=TCS9r?OhzfLOaRU;7#}%Cota%_pD;$ezlCKb0pr^wXKyioX;g7RG z0W!IcU$P%APf%o)`Jy!FS91P#R*Zl-mSd2+*Sm4dzkf7Ny73$yyqN{IRxJLMM2>WO z8gQV}$L31Y+$}~4-Bu(zbQmeN;<`AkTju1{bz-CQf3h@Tk`XQ`A@c15*c7A;*GX?0 zl3AGOxA4u~txQ2XP3d*i085MJCE#bTBh9a3ngLIysf@5^-6E_^P}23*@9=A8$nuz8 zrr$Dmz(T$h(;Qy=)cuapY12uj$0Pl{VjQL!TPcY~M#D&&hN+Q=Dl>Dfu4Is5_3&Gu zV{TW*sY7Dz(WQ$)777jl;APvAu!MQ8d4xm%gktGjpb42A2dW_FP1=i&P0m8#38sXG zGSU;DD*Ua%k^IxHfOi*z%JmbsLox4Wk~L`1>KU%X%8$Wz@&>L(kEx$TW15M@l^=kdck@{h;4}t(m_VfO#k}&nmb76%7!f zdwi4YofcV1BaH0nGA$$Tj1ktc31;{E9=w$fOQZaxc5z+-OU=bTKI5%HkwT&`JWT8}1)3wT zv>LZ7GB4iKaJ=OnaHnY9pXo=h;xNy9VgC;MX=Z8G3L z3{ZTgL0@ax+)zZ1!{|d6bJFcYGyRZHHaV|);8iNLKXWgv-ic`Rqnv!rp#mO!%C1C# z>iVm@7Aon_hb*OKdvQ(R&tzg^;V|`NRwOEM3JlKg3-XeE-MSw!|3LvvjE35c0TWs; zYX3DV{=bB;|12C-TnwFD{#Qf`&)R;Y^$}RBDFev@8&=lyrHkM{Tw)h7IvKrW01k*2 z5v^;Ji4yaUK5g$$-iT5?N9su~^zr$UWQix&@h84ikH5m29xb0{&zx^ty4E;BAy+uGbE)#r%z6T?6r@K3r;QLL$sp8FkvW<&n1CJ|DQ+mnt z%#pX?zqRyy+#F5Gp+Xk(X23jDilEE- z$y)HP98og;i=&k!v!S4UqIl3xcMjIwXVy{x=;Jgbb$aym0G*3%uSOWm`diFB=iD)( zwQRV@_8Y>O5Kd=F;1{T{0;~kcmyP|6<$;;U)DidVtB(R)B1?sbUY{GItC0b389Qz5 z<%X*yS_Dhq)%B5MU5j355-G4W(^oy?9fA7*kIuje*}M$@*ITxG5s)N}o2HU3Q7$<^ z=e{{D@szpl`cUojnv0V9;HV2L*eyL19VwVlI-l2j>kIF>jl>j4T=*C%_^l$j`JQMz z(7nNINXX5FeQnaO)bbUmGjxfw?=1cZb=g=cc6}e4xRKke!oWsGUMW)oZ^Vq%zQ+`$ zQ!Dk~ek`vq;OAfv1>mVQWgjAa3$qsC^n=(^?#i#5R^_zHJi7y_t!s|SO; zrL)w9tfQ06dF>78?te1$Vr8R5h?y+q53~c1C@Ng=Bl?!QIX4aLI7kmzUQBsg zbXB$nHJ%bNzgOzGTc}@cfJh2#0DR&mut|g2&h_Mb`JtDk71+ulYVEDRU9l6(JnbNO zXYgfaf!1DX$%*cER?uVsw@NK2^_ukV&npt0&>slAD?xPiZ!Ts0xuQes-f+1AY4{9l zA?CIy)&O(+tEI;(eLW3AjG-UdI23|P%$ zc7PdO$$X6m>9`A4gYm>}-MX56QM>1Acb}x4* zODeHtr-es0MD&JOfBT_T(31a;WE{=8^p|A3pmJF=SvSoZJpK)X!jnIYcrP}hcpsrF z^Et5#T`!m;wINIyEq@IZy;aDN7Jb*ChT3Lb=7dI7}>0UQb&r`K3bIzdS7bjtC|qQqBo!I ztA!y&`xB0qIIE3pkpJ4Rw=PrjUTKV-P_FuW$GVFPKlB?{f@32xlzD55kr(|OEjcED zDPkayuZn}6vI(w^Bg~`3x!XRuW8S}Yb@*6mgQlU8xE24+CG@clO5n0-l0Z=w*FHtx~uuWi5P& z?Vw2bqbljG6?M0KoU&q0H(h+=!aiVzNbK0p()KLrids}(*cYBV>{&Qlf0|I5*$+N` z)_q3Xd}&QS`^qG&Y;FGZ$gxahCbny=n3<7(kS+(N>JX>X0WTKw`$BZ9ya>66#fd5=_pF29Xb&W#GHAPBTMkGq@JP8Zo$hz9zszI>ppr zhIR=EVN<6^Oij#oyFznr!Fg}d(4lIFmdxZvrg%kPaJgW%&!AzrCjNM#3Z?4 z-h%hx!(;1tkL6VpQ!J9#?K6;!NCa?=C(I053x@)xprr2iD+*&)Hk;gcM^t`m8kvhp zTH3sH>P+L*FS=DN_ISFl+wR2AbX8RyWC_AS+Tb5X+|=BwACXKs0A|}k*b}j#U^%Ri zsya0qf$H`Kr8pSYev%$Ve`;He4TIEjCOw>XHmWu4>%syFM0<8M3!Hw%6A7ZJd+dcw zwlIT!TmdI(g0rtmel=uhbAVF5&5^!Uua~8U9ob`vWn*&!RCQvhd_d@F+MkK^G>#@N zTq-Goq@$Uh@e;3TJRPBzJ?JqzD5B?7Q_UmETkqs<@*BMAV1l@-0;JNCx%}c5NGlchzd9S?rgC`zf)RdQ3Y;p6WV_tex&ves? zH=+e@jCqt4U^0^od=SbAuu9dX1&bfblhn`jCKMfV(AwDI8%Fj1{6%B@(i|pVm%N*E2{`X&oW~r|%Tcx)|m;Ck3f5pxlV$v{+KrbY%ZxN2*njTTIvX ztq)}7mcIU+?jQWHF zg+Q(;KtBD=|HW>fYI{1N`y{!xar8yQNR3X^x51z!{PW|tR%@vmu~VGvN?a`=Brtci zSoQ_B@orT#fJ#ZQ66>W4G6i=CEvbUW;T>RYs}FxSTwJg~N_`fOIrO&>qd80s%v}|a zFe%7tAxm%P)rh2rKGT>8`85grE5uC90g^+O^XWr9jTTCir(DMeZ}fx6>hpu_Q|PL( zY8A9n`tsg%D$CFAMt&J$Jord`oOgTsIKHf6JUkP*SPJP9uH!-x7{8`XHAM-u$YR#2 z6uv+yy)Av$vzX15%dp3tBvq#e1?-IM+P4jMHdDP{B=%Nwy|+XS-_0;%t%TFY0fi^3 za|zsq-J|A^+NdeB)UGr{3!*YTNu86Qa;$r~+*7h&XdpO|vJr{(+++z7(yBB~_L2fc z^E)H&%$+vht2-fqk5IV&;=w>rZC6Ti-ErQ|Oif=I#&ckkNA&BPu!13MUW$BSp;mL^ zo}Nv!3`Ci9(8mR}Z@}d`XpgrCz_D7H6Cw!>1^cL5i4h}{TLEhFHhs^zH2zJpms=Z2 zZ+efCIrj9Pmbp?jkV1D;{4R9Ge6T++A)-?l%qB_1nHb2o;Zue=o*dJbomS!Rq>&sK z%X4^f76pC4r#lTAH*}dA#%#8ap9hCGMMCNt{L*R9?b|u$bpaaH3V-y$aL`;JoJ93-a&yc>$l~?rsw* zv#I4XDxHXuz`2hp`f!x~e3fxN`15zGR`8gVH4n^YW&L+HE6uWVXwX_?4Kg|MXe#9sl-OlFYPw-}u9dw-b%aq}o7X zT181b5dmbg+R9J8ynI(kfG#c)`!FDcV1H|1!ZA;y_3YEW3UJjKHYBpua8Yd^Uy!df zNFGOu+j%*kAy)lu@-+5rdvlYEQ(K;{c5|=f>$p_=MJTY)GM3i6q`mew(>j6E)se3r zy~+U$XrV6rs}_HQSw~GYXVGPMW8G$?}b-mkq4`lJ*SrsG~89xMe3g6Wmwgz46fp*9^)@Xs6upErD_1{->h0VP5X4&URHgHs z?Xmi>ur}dciAe3+w9Y{wLoEl$P=k#PqW#BEJ2{w%<7)_jK_gPsr8YYs`@V32>TTQt z_!cXuLSrzC7az0+&NwYh=)kgUH~MTx{s-Y#cm7bYqu~qN9yX~;E#q1)Cn0qOCIjlv_W;^)!fGUCQR-@pG z{n1v0Fua^Ho$fvZ#)9h25gRUjSh|iLutmO~RZZK|%A)ZXpypPxQX1uj%3-Df+-n9H zLQsbTm-8npJ^BXbP+F+}2cTx<`4tFI1BniXF`pe7=r8*g`+G|cFmBKe;3hkJRS(E`v?7Ou9EJmSTAD`|S-lX1Q!7m*dU=5led3nO%Zofd$=O|&ZQ+|%kI zI<`sXKOnL`wIz9ZN|< z>}E{K8t>OhY;=!C=&x#ojiCo^-JN{sX)I2|v*j{V72960B6wdQpf(rDY?BO^qu7$^`Za zVrlu^N0^xFZnOvU;5+@XBb|1)ksxONx*pt@1FK=r^TEvijSN) z2k@U#3+a_HwhH0Dd1*5H-@H@=?6iyl=cP^=RH(o6(%(*t5pZ7m1a?|v`wM^wHT5%X z#3&AZE)q z4@mP=8JD#%j*s%nuyN`*BA#v}TOU+ziv6d+LjyT-17{6V3@ihSO zR?GtRQ`r<1lQeoi+|-4qfQmvrgC-48_{>>o7?Q_qV_rK$1_&THI6hnMtIDzGg4=k# z{f6DB6s~NZ8y#XSEE0aNN}9XWbI-#*DdoD)A~9(d#R~`q&j@R2p+^GJ(+C0uN^C&% zBW|iXMCf}JU?w|e=GP3JOOuXyM)o|-ehRJ;!jJELI^?-*D3ealXVhEi8HT&f|6ZCl zgk@Tll`BIvTCh;9p0={Ga}K@i7%(deV_`?S?@N}zwPHa1OHZSruGPX;(F2uJ$i@bx zoMT|C08H{QJ*E71I8Cm?#F~=2eEH?>fVTdwHU)>F4kE=0Wnd&rj1ScpAd6>W^w20H zaYviA2Qj~MWt(tuJ^ehg$0%xrzndoF z1iaRJ&6BUP)C$FrjaCHySRa&TOs!v#qOf5x8icPOr@}PQ>ssbX7sd=#8K>u3u4%jH zx2Z0>EZC8)i~O;a;lgbfW6&aE-nxb?>AI@}1SboK{6aQ`Ac~{WU7*wn&I_p^PsuMT z8gKKe7-E&kWdV`_oF<4kr}nsqDamg30Tt_G)81CQ;ipV1zxdT5+cPqw#v{or`BAk$ zV6V0bD6UP@y}a+f_+*?H6I}W2teOTHwncgUHa!hWGDi&=S?d@flmt039^0S9A!qvh z;)kE9v4|Luw`FCgc(YXNZs6w&ANau>#C5T%Uqv3kQ;@OuZ_(n19@U|IfFvwQ-uh{Ie#dOS zF0qHEdyp;dLfI@{3UNp<7P>J2XTEd1%f@i9uhxo&!$4e07#992*ah#*(Xn&KsSXn7BgVZNqiKe=o~70?&O%;>tZKS# zHKS1B{mm2xmAj}}Kd6ZPxg}deg^i6#V*^bl6Tp4_w5>wI{LKs@$PI);k+k4(>Ur)GNP_Wo** z{tv!-7IPho0nKHCR88w`xd9Iz8JXr+h&$cVJr9bScWWk9pd`E7u_gn`e zmDc;2Q(wQ?#@9>%*zwY(jRXe8CekoQroP_{743cAOc-O0ES_XNEe}65X&eBnEq^3^ zUAFx#cj@)M=?; zS~f+}L@byhvb#<8`_?s!E4Uh!(X-owE1(A!ea{1uHZa;6elP<323=5O;An!&muG4{ zFS9ju>u%6{q*qXU&9~N(^I=B3tJkE&fjEk92Uk5RCdQ0QJ@59~zJ+M5^aiO$LLiVn z9%sAItNdjt`O7}VuAaXUz;s&+*lby<1r`3wcN21~u)`&4W~w?<5t5I>7?p?wz)Ocr ziVOK@nJcIFHH9btj4Cq0K6HO3md6WeGbt4qCFazD6i;o=@t2_)kPUn0N4MiA2&#-m zapI%U`Am1q-}BgMR}L_Gf67e7nFZL?O#_o?x-pXZ-I5 z!D6c^vCP{NHeIVpfGp@?CZJ9fcn9f8`SUO7xEcCt!3kVn9g8FV*ZwN)S_0z#4rO+B zrp7Lo_I5%h|9d9W_Ey;dI%@J13cj0n8iua!DXl{!dW+=K^Ts$IPK8ynkOfDKQH*e?FY?;Ac<6xdD!(1TUC_QvkYWi|a+ zn^;TRHpA2nKecmU{Yc67eT}&3qT9;>zkBL>MPvst2<*QU%+l+)Ew*;}@`3Ou<3N6X zR}^#k&g(+SN47B<+aQ*CLU{&NTKJR7hvU%IYABNBj%2~gwyCoviq*3gASZme1h6DC z0~TjyAjm=Ut%B9imG*;u6w5*lD}no~P#|Mq*%IrojWgs@(&R5=Kw1i2OB2W#c*dO{ z4e$d&EEP!cGnlFYN4fOl0Vv}Xrvn7@vwnjg6#?2fbw3P#`3*j~(SM-zYs!a&8S>p+WLg%Y z%V|jNLg)0yO6I(aZQ*WhRNE@Lqy6dKN&^Ewo7&#uv~S%x_bn|H=d@V78_y^#*5_!g z_k_z-c$Z|_+0W>8Uu^^Pt;eH1Bv~w@G|07p&_f<1WAiJmq=he)QU|=tqG=FZH3+zk z%yvc%l*(Q6l09!LS zPO6t)@1$FLcZCu>S5kG(^6NhY5woxy>y!N?T9I0aP#Q=W@Br#*q65B)gSr*MZ>~l) zfDBZ8jR60~n<2UujP6`m1_FIQe6(oAMu4cv#X9FQFD~&8ntR2@`?~#$L?e7woUmO%Oq~~?9%$mE`fK9MjHkKdlk*I` za!29b{Q7+$+#)mXI+K`rOi#~ALl8Sk#X-qfg9uM@nPkfl_Rd)8OD7&AZ}xC%JQtl) z_}P>=_udE`G&e(pBNr8-hMKZz~ao) zmB|F|)Zgt@qW8`x*gwL+tbXKQ!T@#*Y1wVYAZxbi3dZ|z>DS;(8$0{Hnx2mfgpWo) z&I%nIaUpLy`V`ddOQf2=)5CAqV2 zo+#vB3>*Xy12+N0z-M zE}B&l`cX z6jUHcA@s823NaD9Spkq4`OZ|XlXgvn1w1dFispOWh`E{_(<&H5u%W!^!?ag61#a>X zO}?@jQcE7;UG@zv2ufM}(P~X*vx`X^5LV3M=}8WVY1W+&?CIo8bIVWV7_*%(47Uz? z`m5qBlEGNf`K?jq(sTN&k`Nw<7ce14oUyT)xR=hqO3~~m17yPGYIRg_XXmV@0PzAd z9bh%n4?N8y6dbeb@fj%~4Hx6atjz%5YsVE9?{9J`W_x~r`!m7vHF^w%%5>Dux!$Ob)G9AA09LS5Edy`nd2S!mtUyS5bv5eqF~KO~S=^sJSmx-BXc& zpO`|W&eGllpd60Za<;WD?QJB^i_DEB!}VkBzZ-orVI7QtzxbTA`>N(%48O>`d1T_Z z$Y*Uaa9cfQ7WY!|53=Qixy-QM&(SQ5W-~{F@Mt&eB@4?=+Q7=mmKwEs90r`)q`Xq; z-hV@y*3k!%gBX0kC+K9MXIRJ5)dS^^i~b@^IY-Y1C|lrgxT`s5S{qNHr$|kjmj6S$ zt6bWqp-~NPgJ|aNYg4B}@y{{WVFV@elE#~&eB&>!fq>-~JwTp1N zJk1ZKO5u_p^5G$0-@y_qd3EUSKE91(3$P#wVcp8JU(kCk!{gh&f2B5!F&`+b9^`8X zEkQKt{k>;n-9-oF2+a4J*ccaJSWDiJi3ptE0Thw)iwT1bHhwolhK74@OWIoJ*j2eB zqsjFC^Rk7TIw+XNYO2$iHxAdj;XJ%;>&=>zGzpv1tAlG;*9Fvj#lB|a|Be2DYS z;xMu=G9FI{uBuX$xGKKi^C08JkHd;P5u&Y>_>-0v{RG8J9~}6hsxw$Dje-T=u z;#Ea@ls-ZR0NY|+Q8=-8@$X2}l{@ai8-v7FmR+x!64&e$tE$`q^G=FY4VPw|S9HYuQqs%k7 zD;z%Or^5zzFws@wAk{H&&&(64Q$*) z+aIhc=c~VOqL16`M_A|hRpifREsc_k~`yZ8!dh8_e^ zdpSM#{;fS|jiw)cWCs*(e{2ajnXm?Bv8Y!E0xdQ8@%^&8AJz3=hQad54f_Lmwr&$+ zDybymXx9#{IV8q!MLzXz<1q=PrZwqpWTxZE*SQSwEW z_`g#t0|IGqUhhXty^%f>9v%x05p<~397*(lEC`ZswL|&3dOqDn=G|*u56H;13_@t2E zw(_mfVzkFcIsUSa=!yq0lJBdHHtCe^H%%T3DVQ)UxLCcwe1LnF3!{V0;AyU*?Dq7} zwRpM@(?g5iYr43c2_FGCuClm0y&3uQew(rAtjw0i%|^W&Rumy(TpE(f42GKON6GYl z&H(7;1u+TTyn1FdKi_UQSN8pgM49M%6skH2+)LE%JodF)BF`+QM%L4!T25DipNWnC z92l{z^%<6Xb*ev3bgSipY5~VvS}}i)ye_65*2{YJx~K@Lr!w}FE9jsWq~a_75LdlJ z^~JRO=eqx!T!bS9D6aYZZ*fhUf!P1Eg884@zKDgXv9+m*l->WbQvSQ~11&cHedGVu zPPWC%n}b-i3hU;0{!W^b_SA#*3_=-|!%J(*m1)D^`D^Re92QbDQ%*7#s{imhezH;~_ zKlpYm_DcDsIU5&g$m2E(t2APP&6GI6*aeiAMDCW;^{b0_O@s6n`}>=j1R}Bxk$2m6 z_nJr3M@A&1Zi($I=~!fsn(+65gP(#9BqWP#<+c3);oVRf+!Y^oBPDB8 z;x->3BLnkCxtUvK2ZF^W;)@bF4+u{mHq3n&d=*}|RGbz*o$GutpJ=`VmoT>)=mGr@ z2WT7++)?b4=8GV32o`Za;FUxvrT{A9X?DVuF2681aBv_aZh;n?yiP1-0~i{LU!s<* zGiZ#C1WC*;Lz4aS$pKj&%s`8c6KTR1E-4D7|Bte_>Z(IsmvwP>cbDMq5G=Sua0w2< z-J#>|?gY2s4#C|$xVyU(IGv0!*I9e+i_=andQ0aAz*F_rTjfI9pLu8j0w&=6q$&WM zC!x>8HSaMmFVDcF|1p*jljaOd)hy&xrsc?vYwk&ZYB#CPw^Qv&XjQpMFEYWg@|mBp zD~=w}yT22wZGLh>bn08Qs-R_?pJG}t!LOh~wEbcYyp|tuW~NBrC;w$CITn_ZLcj?_ zwGE>)4}k>(9p50`l-m0WtbZm7=|-Zi;h;c@AlQDcRg!=F3;}Ewi>I7eQMrq7_xge* z2W%F@(==b9iIkx8g5<-}!3AQ!*lyW|KdSbs#Dn_-EMZ;NjW0El+}T$QI)51yXN`SG(5qhYHr#U~0dHzGvc zPM`kty9JvW|8K9D^y}X@81R@K?I??3oh8yZKM}fi5n-zug<7#(u$0IP6q-%NStkkX zD8zu56I%p2oU}^V@*@PM$hZ@u-D+}F9WzuNyWHZKdsA;0dobuYu&32WVEZ%T-nznO zCMi1*`|lr_VcZ$CC>H=A_on}FzxMM-u^4Y9uvmEQ;=t(%)Ye>Vo8^i%dp~FV%h%-SF-ViouUa~{Q zReyxp*QbdfLK>^dC_u%4F^|o7?v_bi;dOTkTJ`gxgLykEynvJ2|Z(2Xn`{G@>AzaW)%! zP%gTTu<8Ro+Qh0>cTdNW&X&P0l^<4f)s9Wkmkm`i%&dp#M}2WzPit_OyFnjYWzxic z3`pPDaft|Cx{DOYM_5%Rl{lZ1B-)rkR1|MFSvMq=3T4_cJN<9m#}IXZLp|yHzvLBC;y$Hw^m04VlI_DvLCYt(p2QE_7rmY4o%x-q1jPN58qg#WS*#_@^i+lZ zYLDB>qn|0y^tv#@F(0@u583+{_vILuadln5ygzWCW{L&CUNs~B5AH91;C|ZJ`6ivd zN>Q_h11FVaTHG5T@8r)98U46^7L{lW%3`m z4@vk6j#i=l%J_l%&7WBxgqW_QIf1yp0>u44K-^#E%SPZ|0B)aielq}&?;)ijHqWd< zYE$Um!1GINKoJS*ve$z7wWaeh>@jIs=L`Xtt5(q9u>+S7FAX#>=HP?A$eRZ2kX+7O z5C3`^E^TaV9EB5^=yPhNZhu=Umhbcw_sEHkSuq1(%8s#)q2Fj6EA5YxP6Tt#IZ#Y9 zB3TVWsTtNZV<@n0=Ys-}??9xXgkc6MrSSEWnh&B#k6mjjf90+V%hNw0{qgX?WyUm9 z4ysl4cZNxF1SZp94LT6t(R~o3R~4k$uoB=(L`LXeDV)Z_IPnP{Ij#H8C7@GSfR{fO z1$N3eht8y0BypILd!MN~WI-ilUrKQoIf4Q*N}B_vp2#XO49fw!n`_JcbG*nZ*0y*U z8+7!OP(P}$?ta(Zld1Yf>hjm0sB(fh%bgom;2Dpsj9qt#PQ)sk+7m2)XE!j>Qr~2^ z7aVmG^`A-~(gi!H(J_MYePkuk@#c053O*$@t3(M9JxJkg^ zP*LB$C`e>=MU4Vb=+j^{H|(31-O7BjG5wKgl4T0x@QQvUTbFt^1Y2owLdU03KL$V; z8oKk=w_-%zA?*3&d|$-S6NeVHGV4JH&v6($qVi z`G-uV#IC>bl3D}JnzJ5v$RNS;oy8Qdc0Y3ua#q`XL~9j5tNq{?A*otFTQblv8ma3g zZ8=OsnNxM{BK;8h;6Vl)n4WS|uzzxvSAc*+CDMM?anY+;PIk|PZjKt7!bNV1GJtVl zqKP!@`FfAh+0z8|DS)@WKj31qsR-4pH?=s)*c(?%)w z+s}^`ssyT|e|f*lL1NZaZmJY6zf7&PQ=I|l?c^&F7A7GbJaQvF zU4)k%uPG`15!flsXHhjA@fE3Pvr#_%#%Rk50`8?R$3ch0o>sVa%c`_-RSpHt(f$~M z;z{|+fzBS9wC$9dGg%b1T6hO&70RTq?zL)N>gBOb$GcTuH$@n!a;qrM0kR#5q1w2U z4r$?&v>E6E@k^2_<;UpHkk`sVpP({%YHP{6;Dd54Z`M<_Q4$a94v&8ajl3IYb2~b@ z>Un%V8#ivN%#owa!Fu{LBT2})+AW?Oh@zU4BJ&x05}+sF$#~)X^5@+CE#P+bU{4r` z`?T$$K-_o1RtFBypEQR9PHv)B5Aa)#7J(nbEB}0%*pbrqiHT-3YkRJg9(!gOi2EErUsHN3u-~CS5?7FsCU5aT+?NpeFLPf8 zT0A6!c^#B{72r$ps7k(G|ZxLV+f_4nUvd%ePUQV}T(F@Z9Uk5PdHQcpM|JU}{ zW^(!V`=p?^N`48F`i}RXvaCF*f6B51F2Nt%haj4U^~F1CY3jfu=6*-Iitl(?S_VOU zKH@{ahQ1ko#`+F;?EnTv+Ml8c?w^g@Ywp$Ln792=1Jw^UsLt!9R{WTnnU4P~rK%W~ zHc?@|YDxC-^*LzZ*iXOC0loo3QUmGu*TF<`w3|;Gdn;sYT&cJ1;Q9(U;a($tM5COz z9Ll>(az@G-Wu0abRh*`W>xf=0g>sc5j*iGi+nq!;JU;`lB;W;?zR85(eT=~r2>er-WfZpu+@`0aR5CYlA6DD3{G#3V49T7P zY!2lo&=zF?k9-N~mjh$AYx@)^=qhQUr_Zt~2ClB(+%aC&*1K$L^A(zkA0pQx+^z?p zO*#&sDy^z82KEb^lAfl4)-vO61?U|LD1@9-jM?fH0Kh~>ORtzC%{tu;(myGvV4-nK zP*;=BPyke#gqs%d%I9=@J8fNdLAs%8T~Ed{qPSLaO3kNKTY-&PUzBE;%1;)5A&pD; zP^8*k$!_qSt^|J8NWgT6JDNpjR;UMOf-wM~;R&kDV?wD*ssH2s*Ma`y{ZGhU{p5smO8P%or#`HJNQ0A?$sGJw6)%hl>BAZD{uiJjOXe)z89+d z3qe3#dKcK1P_5|^mS-w)1lZIL^Wqi-XGotxoT$#Xk7@c4k}t}#wSDdZWk8&Y8OoDV zTvw(8j=%(6nFm+t5Bk%ALt-K_$Q2g=cJEI3M^mO0B7$)M=~6bVAhDE;6W$4)ok|~3 zEX1kh^|6b&5CH_9pE3)bASvG`ZKakRK0UoWad_ zB8P^*SMy${JI1P2`fz`FU|?lnWn*KCiLU9RU6}ut`jaJ%m^JrRA;5^dfptoXDZ;eF z`TV0c%Yo%E2u%XE5(49BYUfccUyD`UMbh}klysFMiuP%Ol~PF;^$uSk9QPdi+O(Ka z@8;VxelMJOk!6p?axc8m?lTVWsU*aLCIq(5;Zgn{%^Y2)O%i329QJ^>QxU^*Mp-BDbcHqcyke}1o)wtH zVwJ6hrjpp)*Wq{G9mS+k!F{0~CW^vhW@ZN$Wd(V_14NOs#;kEj;t)NsG)rHyk>+&V zLr=R&c%l+4w~lM6``?m`RudxwtEY3(avhLdHw=z)DCz-g26a1|9D4BZ!mjDJI^tY2 zzGCn$mON@%LJSVkdwF}P3s8cG?zL$W2edsr3rgxoBeT=af;ih>me)kSWG-#TA0?S@ z&`kSE0obwmJ00@t1o>($;k#tc97D7!GUUu7qO7wUfT#T6d8;*prslBFn`ewBM1H(< zh<$4?f4UA}v!t17kJR!OTLKi9vrrqd!#5k})r!!jxAc##=AYXapVs%*^E%k+gI_TW ze}_@}Pfhue^|RyPUH!BvR1Z^@E}Kb(`|J3F7L0v3{(B#ezxO|mKiQih6$|zm(D5HT zsCHD$e&|d4kO0&TF%KRB4%G`A@5RBBqVHXTWX zRQPSR{e6ZBON3sKb|VDX@W_x0pr!TjT|J}$6ojuZtSqsx)|4^9+bLYb^M?obYbA>{ zKYt|^Q*o*Xi<*TWjm_{D;;Am525S5U&eE^6_Fu7XAO|9xlRFZBCBLwqUC$dGpPK&N z8K=D8u`}G|$iV7k@PNq)P(Dvu@};}et(TY)?(9mqwbs9$4I-yQYp!V7QU09YaDeW9 z4?(75xE0Pk*qsO4yZu9t7B{$CvMA_71@Mmi!W{YD%-K2$Cps}x-XOP*^54BOfXNkPrH=3gD~)s(_3S74Yg> z)AykQzW%EMxPdAFvrg3?5;n;Tr~>f+RRM3S3Kr~G3DPBoqd*l9JQl`0eX@W zX@6Bfp`9}Rku$0Jzbb%H4yXd4OKJW`1rU-m;sOlI|Ed52zP~DfaD&co2r{n<%VnWX zja=0~(w)EdBq-<##LiRGF^g<49pQI}*A*t~g zPj_!+X(AvSCLvMf92^$k7X?yP=0c7vSVHMkRWJzzYJ&HvX=sZpM>eFGOt1jtcv8E{ zpIj{W#=oAXOs$Ox@r?40qwGFX&!p|Mt;C`0%>Pz*srF5KXO4|K0Z!BF5DoAJD!oG4 zGvOpboe8K7+)$lSRIlZZCJFQ+J1@uX9Y!w^0NZ`FBS~yRGI(CZ1{Al#$F~%!DVD9w z*78TK>W@F3d}#N|2?+u-92;sIU%BKagA$OiEn#hU8f zT#({OpNiOT9$nC*#+a4r$=Hts(RUM%6rerY-nFlXnD3khdS98cFVFy=Fhi(=Y0%{# z05aC!KG1)vnJm%d$6q}lc+ntSl=ATcz``zwa&Fg%z$|tpsxM5@!vAq&Z>K(nIl9?% zB?yL=S{m^U6U(<5x}E|{Lvgsga<2r<>9$%+z9ZGqZgGQ;*XLAAUWcx;Au<2>d0A#4 zlSm7#q*Wt<1fZU~u&sP(s%ir2p&IoyiQ#Sm*ai;By6(+;HZr;EPNp=CLslH5HzwDO z6zDgTMC>)^le)EXry2WQQ;`HtogvvC3#uQ(U?krrO?O=wUB9S=vOD<6`Kxrz1d9x0 zGlfcPf~?x;j!vyAZIGbCZ@5Pb%xkqQkYqTWp?-?n20&lda0;3|-Hs-s%9Wq3%MLs7kU{F zEQn&f1TECx@l$&uqTi{(E*|=8GWmAp&&%TLk={XBYp&`&PD& z|Hs*dwx{h1H`;q=j=zatC3s)_jrp>i;RdDrvT596%i>yZ-X}1vJaUfOUFmwl4bF`} zrjp0smuhaz+k_(5)W~>xiHF@I)&TBvHZJeHf>gw9X2rX&vs*_}2~%a?-&_IZ-_s@5 z$meUU=Qt&~jD2?DxGvMo(gzu&OUV1|7TBp1!dRAA{VzvO^-`m8+*XRPAyB!j3}y!+ z{-n&)e!m*#Y1=N)3W6dK<=_7{PxD|O*qc@X?X&qAIc<~kNN!l2)6_*jZY20>qD1%n z^k-ZbwXWHhH~r5`tE3GZu1zigm!^%l9r+Zi-<<1ZuuwY8{+DI1D?@|}-`Or9AH*8? z2py#9@6?L@H((r1vOW=FiV5C>OiYh@RJkMaB|fw@#n`0Ge;c%SfV)qs^rO8?%a0m z7(b!W#^r-QU8*(v04Hr>jnd+ zioF&3-Y96EH^8;+04}<#O8DC6faB17R2&yRMpWJr+lkxe@RpXBS zzcW6F-ql3^lktK2e=|N*fd6oQEzv)mUm5iu&Zqgy`GZkF&gYXx`w!>uvEu|4K!0%l z%fFm|0nGShop+0+)Ndr%ykyoRz47xmhk7QV{mc2w{ss|I!b676*GtWVADj;kgvAkcayN z^KpQf5Ad4*;CuH$(h1QyM3YdsvVn22j~(y#+Jf;cmgX6$wj#PzMWlI<@yIS7b=D^rT=_G%r;D z6v}Wf)%fY_X3P~~4+Mcl`uS#Aqlq2hCdvR3e3rw2WBe_N#m*Z6|DM7>gWjKx@%DCl ztA4an%MOJmcCvxVb9X?oqaE^}gA4ni7vUkgY2Fsl>Lxb)SRR14DP2wsCq}>k2WxS@ zNX)VsFBpFi;f|Zb5maTu=NmFT2ONTQM>e=_dWma!YMB+PuP`}2I>D?sMm9; z0!;p_lu)l}r+rH^gSi4RNi}|ujqVzkrQfqVNnbgOi8-UWH% zz!Q-q0=!tFu<&1~TqbRri+uJud&t|$b|L@B__XK+DjV|QyZ1EUWZFM|V%GkF3~xY- zUGw@`hKVxwkL6Z!@s{N;BrN~?xue2J+XC2#eXE6QD=j~*RfIP8QL;)zy{Q{xwirfL zFUL}&${Eb!{BobE!La(eAUE#12Fh8wZavz5fUgvg_?sLO9JvK*=p4Ib)*N57N>7~4 zBji4aUxgmra5Z{xSVmd1)s-wtrFc@sG!+7ei+u@$eoJ#XkRHhrMwon!!b$7HgBl zXWM6nI$(l`UCFG;^+;@feE|d>UKB+(PD1kR0_*3 zzzPPFCj@AlDv&crvr_%sh)KL?XWlFwqC`j{>uyzy~f zopOi5!EC;tmn6oR6X@3{FhRB2aeRRlMjIPXPtIJnkZC>selR9cw|4Br^qHgW41VUx z$;HL)O1;|)nCW5hE?hTkoZGVcPX3YU>FDCMGVsQPm$;$;|9p7$5$VAW)E@#ydc;FK z0qZDa9@ypm+Q)>u-SHP6;~;U0_Ef46+SD3GiciL@5NHVdE0=;>T$=@d3Qi4KN=;}L z$9fdNdNN;Y*K2HN#ZR@IhH%(`*A&aJ)EvHg_++4Hn%#=$M%%?0c70BX$Il%!1go0IxXa>Ke~lPg z(HOCfx`jcI6ps0G*UW-+kJMLolWub+m%2FUqk;x)qNhrwI0tmlA7b3e zKDGIQ`BZ-~|2n;hwk-}_mNvuEQzLCm{go}=hZtw2yw@#+Ih+{#9MULP(=&$h;+Fv* zyj9bMgUS5mXa=VlPpb;2Xc5FNl1k{xmg$5~w$#^V!~92ds|ZetWrW@8;f8k*Pegb7 z3Ag}UMs^d#OS0Jqzkq2`0Q$jlmu{8~@oTc(>L>Ke#O031Db9FNna`RGuI517pO*}x z{2$w23`qq74k_CZX#0EBz@@n7KsUz@O@$#fMft$+k^pW0?E0zRA8+QsVyzNQ%+18< zD$E0!Z;$%!I)Nvc#;~75jCApGD1_Wj6p}I8w>QMcBFg%20J@-s+n0UJCc#Hy-MboYr|9uzV7EoD|pkW!!^ z6Lw%YojKek9dvyV_6_u#i62a5I%e_+K!2$J(`^Ha-cSk}td8Eu_U!1sOpLMWOugk* z+8;33^1neJLtxP7tOsSHnr#;gg8rF)xz)K+z>SqDi>I|PC0ikkEv@>*Y<8?z%%>AW zB?Lo8V?6%SaJp$f-gdBVBYjq3Jmk!#$vgR-SKy|i1setxLE3h&tTIG*Y#sny!mz2_ ze)bZ0c=E8}y$60=-~at`esi~aaMCil;P~FM;5fT^lH)F_z60nec=3{Ys9`#q7?l}u zDCTyi9Sw3~H9iJl)4hY*@AUsuOGPsK6Cnc#{qp|}{r`va53Dy%;UWY_{J%{9zgGYM z-Dv#oxZI5PE&vFc$U2HkTa+jH?kTm|9$2ujN@$kc~b0a?C;u^>HC@o zvTCRJZJq@?DqNeS4?4%G`%ewx^};yONOCvl=M&B4xY-+Ad`%a^x`N0`d>G^qk5+Q=7By4zbo#3FC@*F?0k2}Qs1G@+Ot2C7b z|I2lQZr>V3a?+1RV}BuX@SMBjbc59E&Vo|XGO=Rkim3h}_G+)saI-p!I+|s1T}?B; zzLZ{ZOyLb4gL0>iaOzHW6QyTyDZn9M5?2ba*dTQJ?wZXcQC zpYnsf=?0V^=L(t%+9r5p9eS?NIK1L35j&asvPFhGiXq`zA zYVE-`JdJXkgd=^Q25Q2h{1n0o{C*JqiE}yFZ4}kIkScZ-tyJ(46ljUE*mHu0>T@th z@de0u3QiXgq7D# zo)$^;5P-t2M6tRUW(@8xLljs8vS3e*#)Fo&vvlg$tH9kh8*pVO`NtF7 zK;E+cYYhhcr@CEo3vck$3DmWr83Z}$dKJJiSK7|$8tarEdV~yj$Y-N)Yv_)NSaPD^ zaq-V}b^=p`Q@(lp5i$qU@IR(YcRr24du2rY5Rmng9lZ?cFPMrZvzn5yJLVlv>t z?*-{5`M#PCp1Ra{2x1Kt1s(atO$v$~2jx6mWO~b!I8(A&DxEu``I>3_3KVz-@T?60 z>s53~w2a~QhQ_-&M{xT3#gO4hnY`+ondTeBofc8)l>*DK6BJlM*p0WKaW*jp26~?% z^7NyDmP%)~zM`S`jt%keubx_zV!hKJbMWyjSW!@Mm++2nugD0(K438lIXC1awKF(T z0m6F;P#fLJ)V;q)0NC^$Gc{BKJhI`~mWVt(9 zc&lx{u?O=x8_@&0RX^!T8PNEJIh`|mm6?yQHN{Bk|CkL|B|T`=0G1i6bmv7)qR8m0 z%y>&^Lo2(qDs7(44%{q+BH35MB(Sfh_o`V67bp9h!@yXOn=7iFx+ZxzMm*W(r4i zloD>0RNxrmXBQ4aIGaE)X#x`zd+B84*zh%aiyV8y~Bzj&6XbtHjF}Kg0=iz%5 z=DKN+f#yP};!C;-xtqX0f_5B)Fjs}o6!PK`37b)&kaNL#oDdv8E4pF89?UDC9z?Xi z_3*+*L{3swt=Ta1D$BrdT8{-Bv%->>oA&SM>vl?z)@y0?S*Ai4l8qD^*#8NimkNET zs`cA7S}_-z3n^7u=m^~u-&AK7{U&qWdcVtD>^6Z%vc>r`AeuZJpm`}K&i(D{oGSNy zLBqL+z^Nod6AEf^qRv#i(^(KJ>fslAVR)>7iK9P3x@n}pQoVl_7df{hnV>G3YT}cj zvyqGt^4t=|Rl}FBamAT!W@3WW;N+gP&=(~fN$?U!P`eDEIJgvNRxpq^ih zH4Gnh#scEcp$@^9Eun%rQnF$%sKT5#Je{BECOq@TsMq+16Vg+t&p3JbjxuAPe|~|T z_1L#mvHSw9q--e*YDBU50}r&+&X5)VpFU&vvzT$=27uk3GCox^qsqB-F8aadx$lz> z#i;vFCH$|<2jIN{zHs}vJwLl(O*=3#sR-?r47Y<5myUfPk0>Y(9;h7X2q*`{zyFt%$# z3CCHN3FApwKO1b>7&B>ZpCc)67VlkLx+aSm&y~<7jwpmhN;_d&F~lV;Kgr6gtlA77 zb9cGhNVRj|C|S0afr#h3bS3e5^dOZM7aP0@`xJniw091Rl7hJz|0g#}H=879Ur|Z| z!q@V7$0eF9P1f{^6PJT~qq^Bv%Ci`Cb?PR-ZgQka>forZK_GK`H%Ccnka|4@t+Ai; zkKmV!W?dX-R^wjA8&&WqCjnxts@6t$O9aPE)LnZ51$2vR+}ByONyVyGY*M=p>Xy3} zQ9Ix;#yMG^97#n%B`{BPPYA}wwQf~c;;WoSRnQ+Z>o-=Ax8}I;8&8Ql7cDpxHWICd zgn&XOYu5iT1|pdY%_GtXorZhFDH-Is1{X;&Ek1(SR#MEfQ^VrGjVs!|j)Jb}t8M%t zJ(n|_O1OI6iE}%Fo*fvhm};Z2>L;s$jwwL2geBa{UXc`)M_EGo%|yuWr9`8u{gtP~ zhN%jZuaA91S!Wa%W5>;gq=HyS+RgY9RxP?dd#9!O;gnti^NP31^U4soZ#4^)VXFqr zm*=$eXXL9bG__$Lmil(x96HM6kxBnE~VR|qO{uL!{I zku0(VBvxp4MM8d)7tKx5J>^T5tL6%-;`HRSMv-LVAa-W;+u9Nyt#nYAAK&r5y|thS zw+3;jVw36_T$tLSR4ix?qv?m^mM<4&@f};_|HiI0W=-lfM6Qt2yxOy%USHm+ufUB*d|h z$y|bxHiLm9@66Xrcis7-%)bi*iCo$rIPJLH^py|7fs8*+r;6m*F|Cq`F^5FsJHWd` z@pO{K8BD--gR&rzAX`JW#(Dzq-jw)EmQIaTF)3nS-x&F~ML77OBYksrH1uy_a3%Kj z`X5$*sc>Sl-(frSOt>flHFmiRNZ#l7DRB&W?uOInpO8~f;aA>a;y{F7CRORr8Nut~ z%CMtuJ?rBMDtGHUqw|xL=gS4oL@JnSP=Ce3 zj?6RN$HU)6YR0@mS!bKAGvD|=A3dbz^HHV++J5oo{i=>^bIBI~y0eGotdF+Ag1X5j zKoKPUCFNnaxPL+i&@0L3vdceO7-D&u^Qkv;N2GRX^g53?$?LOM2y>1>_1Mv@+Th{d}+ZH*E+)-8oX}CGGWZ zFNlU)BES|!cTULDs_7YO9f_-=M}mUR>!Zu>z^9OURWFJJKr3O-THi0r+Vhcxu0$G0 zou5!D$4EAKX?d0{5r)$<)ITiy^A1s*4d~+`CJ#&QAPuHxihRK6X$35Ol2hx8=)mx0 z(?g`_2nQ=blWM6w98qZ29@Da)1U!wkhBp;L8uTlM~+L`9JC%){Ui5&l~rdAXV=cFcCo{=$`HWd_%^)%s9E{o1cMYM)e?pxm!0z+3474MzZsEOF!W&AH|lg zr_!x6tu8+QT{V2e?!3?jUTIrv{#TAG;eXG-|K|ngKZ`Vs=1$gDXZV&1JCfIYoq0{_ z>4<2JqCL!YLJrtOb-hGYUL_Y>4O7j!&@WTX6Y%21I4p*1Me~(W&i>L zTo&~|LD~Z~Y|iAtyTT^A4DDYf?bW`9&S0Ugmol35vgNF5Y+8`QiS^^7?5y>zZ(ySL6?P=eaW_^gw}PK{hn9)dJv~F*693?;eUmP%c_Wvs|DL)e|$2&@WTd}QgK%p}$Le|O)j*F6`CB$cY zCz-c+^~Wpmf~^qF-ZM6P$Rcd+*L|2yq!!YlcI+_UN0xdE?5aQlhM9lc}b;FdG)C;tzaYf2W~ubCxq%XNbqv zWmU<~7QG8=m0zNl6b)@Uy;pqNZqf$iT7^A36y!0npH1?EHnDtTz)|bE_FHNg2rS8m z75h-@cC2I-x?UeiZhK*EU}fp!nO04izE#Xp05HNVzbe^_e^n z1|COlb>~&pquwTH*(A}_u|wUx?)dWLtPm^^F=GPoaefNX1jz2xPqA-5TzNw=u5sJ*4&tz^jTlrfyEZL zeZl&xY%!CFEQB$dPL_G_`D>1dYKEXDab7*ARh#}YU$Eh{ehh~-PUeB1zhtBkxLkmA z%Ww~(9;BavFk%nIG4^gHgsvQ(AQHO(gj9%%rd|#U*;rC9EJuufb;b{wy|X&})a6BUF;!113!BzTp(3Lcg5{ddox7mPzqBu35IZ51v9%{*e@nJl-^( zn$ZJjg1G@tH3|c>FT%^1?-b#>mZ2dvTH4)h6Fh6I{va$v`#x|`;uy2&q|v(hBZi`%}xt5 z=7#(PmZz1>)nU^pM^wL_?!w*353lCP+{!tq=lj%KnYc;C)XfodcWe0W(p5S6F>RQW z@y%s8s?`4#_YfBiA{77XGjR~AZ78Axc+a}($F$)-w*(vDhy1m#bFKalVdO~#XCgN+ zz5yl2B`BL%)Eh|Pv>~*e!2q{uBb~chf=M+LBDk@}re5#8O}mnR@`Ny+7h7m_(J>wI zMv*A)`tkM%nM5dDB25BYJvW?mB4;oFPS8&uHjZk$j;mWy*2S4Xc<$W$%_A)}%)%2XgFhwF%#J8ox>Tg^_=P?{ z5#x-w{3oR*M8xKy(_xaVO~E@Fe4~XJky);mTF^osB4_t0e}HF48Y8Rkg`ob+m-N7Jn2lK1%YndcPIqoA&&vD+d;qJH}~^x>F!({?W! z=$hL0MKo!x7&(-Q$vo-Q+yafus9o;0?K~9jT4xu^$gdw{KYNn|PI@TWpxn(_wM!uR zW}y2HsU-otTX89ppIn46G+lUs2fhceNFB_gfT5zz>Rj8T34iU2UEhAH>_Cm##hVHd z#viNpEznAEgo=vA%K8MtdQ{hWYhY~FOwp_Co%N{z$Sr=7!JV*cnbb)O38kjWcY8a% zG4O?I;Wve8SJH?P`BqeyAD75;fe%*b@czunl%du4-S`-L!{VbNdxz!^Ig&JVx5G|{ z08f_*uwzFk&Rw6iaHsX^U??nZ|6j(l{p}0{CYbxJ0^8K%9Fl`IfKu%5Ush8Xv`Q7@ z8r;i>nl{Is9^FbDKXGp%@d)5~@e5M?Q7A5MAKh>yUoQU~=#GavLRz_8W52@Nj6xXP zt<+ef5LrgBF6LHjP0WbO( zhjoTr@L6xrR#5)wXDE)^AVQUByz4^&vq7zW)aagSr^!e1z`aCV7&Jmt7WG*zi+xF( zkd#^P8P)-%Vls7C%|qdH3MRhwC4-P?N6S8At7Cq|aOXHl zFor~liUkU6%rdk+j#^gyvIPVifWf{70-li{KgA3yPR=TBny_&k0%bHN=6n3G!H6@L z;tQ{v(|VJ5X^*|w=G~v^H~D6so*;gVI#()|@v2`Ap70Mou<%aC3926C8aMb?YHw^k z{f6=$wnmyZZz)rVXbzi@p(m=k=6#Eq_9o0Z;C+lUZT07=@9fR5N}+i!0W4!$36muw z2=`=LLE;`zrwR@1rrk1yf*ezh0E>fECOT3~x63riveU!NS{}Eif4F*yWV4|w;PH;4 z+0U!axVwqG2Wr%wvYgSb?AXi)l7p08V=82@hO*AU!+njg=$_yCI`ij~TO@46q6YRT zw%d3vZ$DP(MCPn~C_i~?FMzTtj5H^jO0McBS1i|6**S40-{hbbIcidX<6ce zmqPcWjql(JaGxgiA^TIm8iBe8V&jz(8NoLA9Yf;usGyA}jR_Y@(WQP#u3~Hqhd2=ij5PD~bfDRoa)@xD(GcwQ1DMwn2DP>7(N^a(Z~2m$OYtFO#W&92+b z@@GFma`oTc5jHKjuClHIKW5s1A9@@1p5B9J|NOXP&~>%8{^Z4LTyFIJxoG7i!)9LO zM||l5Ccjj>ih9=}+`!B`9@V>FW!wF?k0S-|hty(-P48aj&h|AovGv#JV=XpIUm_L2Bca~mvWt#k5`g+c+nV5m9Q%vqTTjqJpH@4=S#_6A$mGiE&QEX%_iRQvXk&t0i@1S{;Vy$c-jtsZxeN~Sh2l@5Ct~KUY7yIZfB|XICCt0 z?EJ)9sAfU&#&NRoMnT@A?=3$bEY%4y??sty9My2)BpwJ(H4)=WCVW^uVT%)m<`>#t zW}HA(ikf5bSEzKCGXc*K0^KZYB3``JShOk9a&1O>IyRno?FwskfUDk)(`V$4_|PY3 znIXO$*cg`YsIa$qtezqoeGwX+HcO59?}eh)^A%JT+SXR$1$o$4abt$U4$kFbU*<-) zl`HPC4LFd-;q~nz&0BLlxsVOOA%RdC1cKyvpp#ZpL02fmzzW$423*CRgbVow_TvkBv|3EE{c)-hdw<6lZ1ARo~i|y&K-A<2fux zd9S@4a#=KU8eOX0q0=Y9NWV`RrFAqdHbHw=59sw77fs3nguIs!{xJJX{d`=S(N%KG zaO$5_6G@%~zFFvA)g9$^4dZ($K<#SlYlyS?GrK!I$?b4$I%!)%WB2WW`RS}yx^8ik z>5_<64}EsBW8NJ0-D#{EB%V1Z&~=qOAv~(D9NL?{7?fDBuUcRA^}Y3?g)rCWZY|*Y z;dX@ue<+s%5a+BP3=T0T3E3y@SI_o6mb(MXI7RR`<`U-n(YXa)*bU)IYZX5O++Nh% zrT{K)NQi(@kA&jCuvmlm9%rK1rOD>B!F16B$OjOXk@)3v$u)yV#Zgak@2Z}= zK*8PP>n8%#T?(bWH-xgcUie93p7Lomu)uGK^w>xy7AGx{&Vr5HktQq=;352s$L9!M zfT@U0E5Zi+>3iCn z8g7<={Jgxah8Y@$>uVFDJ%uS-Ohh)H{~F%V^Kaz(a^fjCT>34B8RE!$uNy?Cgl{;$ zc28sXqH{QsBe?>KVasg){fSA#{|$r@4x`e$Ef04I)*^^L1m6dW@R9oF{WmqFLaseSswPf07; zJ8f)DtU+!Ku8HjUg~(Xsp5-&#dNXtX%K5!A*;n#E=%Fe1mz7fbIV>MGU@+{$qAD z;rf*0 zm}7va7n#tuc+NYG43^gnIKSZlD8u8w)aX+k(5YuHqJrepTO|FWT0J_|M@!e8$yL^y zOJ1o(@Kczl;vAbqK4ZsFAa9eGB!8lX|BE3xT6rA*GTyg!ipe4$|BHKsXp_4Neo^~0 zP68?eSu?fYG;2zQ?1?hxJsC|r#IfBq$5j{TG1Op3uqndoqe@n+O5t0XJjoikRP&p3ovX9?HA|tcFcD z1?-DvLAbO*f(j+A@4g6ny^?Q^FDb@=5hcxb>^CDwGDeRcgm5|(@dC_WQiCauv;&h& zmH>x|iltU7*GfTlz6#5kH#>WKr#}+iEerwt_G5)LW5!|=D;%W$cmOF`JIK$L*fG%6 z9k>b~j~@|ZAQ4WzFsoK;Wqy3d9fJOS2|EUZl|CUAb1D~8wngeS9`;na@SLnKP^8AOU!gs}E_r877!NDVB(L5Vug!Kf;Ms2)p=Ermd?2RWDmR@rk;qf# zVMk*SCw!7d2abFI3f2#%;)qyPjKbpKv~+$Bs5SYv*@w<&@u#J?e;2v0*3BOG){{M} zR5ME#UOfz#Ns`+{SH`=MZyi=9q-^dX8isUtcCcS|-{4J~I-bX9!!b@du1C@%*39}i zkzQI%0v^Dbq}3*WNe*Iz%|A*DNTS3LU{f5gH8KHlcti&z$=r;4Zv{0aWsQUXWILF& zW%am5VZBeL-eHJW;-~dM!DVxO=i~1hx_FP6+Vh^c-5 zOL+^TRAN;t#Ej1f>mi|^!8^(hMT0Cr<1SvC+q_e&geDW+G#l`~d=t8|8?I7A%!xA7 zH6>w{#GVRYBVIsBoe$@fb^}dP1c!hAv8<*RjBx`8NRK7cOu&O71Mvt(qS(5HW2vc@ zTZ(FN5%f2qg=y1h$iQVKk3c~3=f3@!4o;I-{1uO-yIt)@BJTu}`^Hyzxt`e@PQQ?B z-79Y~$LKi1La9SWv6O|MHO(6-=2cLphAG(Hcm_(g?D!8WaBw3=7VoXA0G78M;XBJ1 zc>-1-ApYSZnN(KP3%iy?N-vug#KU;ocrh6j8ESM2IM%`Xy(w|j1h~Jk@ppftSQ-mC znWc{9yHqvjo|mOdize|{`25KDlgG{Q_k+VzueH7XM+kSD2F)B7eBc5{x@JS>UBXNt zJ>jFgNk|h{`6F!mGmcCSeHyWqEPf28vNwQ=RWAA|-dqcVq1uO#ayre6tD!_Wxhi&m zi6VBXC-o;p;s{6`;h(P%ZX$R7-w%vhUg0MzU;ZDu?lP+Ce_QxA9U|S*jdXW60@B?L z(%me&ySqVBQjqR$kZz<)X^?t;=-&T*_PNjVhB21Iw>s8je&_X>MmY}KlVwpR2pX2; zL+U^eM0+76C)#BIfqnbXZ?>GCS8G{P$79%-!jRVY`I0-QU()py_1M3c!+X|FN4IE6 zUOG(v>?L)T22^cl`cc_EF2YT2M)%%*Axw$j6q|yn0F~ffhyE68Aa@_zm(1MxQgbC$ z*sAkto0$znlhd6ddaag>HZ^Sw>>}(&@pqf>$yFd??S_U@qHe75$`wKB%!ZO5Ddw4M zlay5|YdV3dBiK^=8bv3YR9YfF7b%t${(?C+G*zU6B%s-bJ!L=h-iACwtz9NtIo#{M z^mQXO8p4+%_z3_>6?uccHEhm#V(zS_RN$~CQyf6Zj2A`qmBR1hZpaS=lhPQ zOCQ;Xm%xV`ON<+1y=KlU!HpJBhfC*~_U$ZMQXM(XME*zuX(A@~UiD^~AnxMg9pmd< zwaA;Gb`In?gcSeRT$O5g{eM_ca;8pBhUTV9rpBh0uK#r)qT}VX!hr^a?jcOgJTIce zM-nbeZ4N*B7C8(ydSlIIexywFml`q=ji&)$n*REH)`Z|Eub8wWnYpf!C`Rt5ONSM? zAwa#i+4`e9{%Ld<-oq|8Hy$*K9BTeqvd=gP=;$lry5u;oGRrDk+WEI;NW2UR_ zBg0!GcM;iJy5pOh`L@$EMQ@uW^%N?~?k|{PsOBZKI)%5}o2_PvIyEaYp5s#W@Q7R? zP;6~y@96qa2@Agv-jN|_%0fF0TYU5_=KLOwKeNcZkx?~St#21kP2LFNBomyDYtT=e zNA}8I@M^Ui9-g8+ou9yC?+$|hpwLG7V6(U399>9_L5CsdC148U@LhKS<)k7G?I-$R zA+veGLpSj2(?}M0eW*&%`~X!+HN=cMA^@9z$JFZ}8V$a-sChs%*0d_6gj(Eo`*X zrRrO+Z;^~}-eP=Ioujmmcg8btq@e{gaytHpp$rc^IGoR0my{qTLuL&%^*+{{So)dM zguMy17<@tHcYzbKOkqHu16VlJi4XYl^sYso=%dV@zoUymM?KTiz|xvWjE1)^!EVlS z9{w4!!E)oOwGz@<*tzn%HE_f2Awg&=9{=h0T*X91du)gW?uvvU+)(qjiTARtu@hc~ zyeNakL5gy=Xx{*>c}1CBX8grU!*N6RnQq( z7NKkcMj+uDr+y(X$wi%B&AuqhMh+c@crx9P(Gq5-DP%UtDZdiFkJ{?fGWM1;#8XM1 z-8&Tb zseYh*ju_3?tlRD-grd}L^ZZ=d16s@_V;1-J9TDQUkaqmv0og4B9L%n6JlUL8oPupE zAOV{y%4FJJsY7$F%4Ce_bGoGU7`F1Dk6!O{Lnro$3m9S&BZV20Jmu{v?BhN{gt#G! zYVXYpY*D@gSXhesR~9z<4L~|dZZ+h10sfn8& zzN<2W8BvEMYnw<*_Hq$s9pjw8WgD>HXMwg&WJctwSbPgJ9*i5D7en>Bb+ADsdlPTy z?*+ZmS|w5T)fq`?Kl7`FU3tgFvkgbWYt)bqQe;&Km!p|1GJjJI%Y=gGxE195MmV!) zq)%A-IZUgo`#ZkuF!&>FuEQC0!gApUwOCPT7S)Wr0dkZ^EodxMKQDK1~ zv$Efk@s|)tVpUlql9kmKhb2W8FFMBT!Cf4hDA8N^F42=LGw}uksnlnLj|`+=SD`yb zu|9ZX;~S$4nGFb5#O>E3^@35WBqJi2W%WJD5{%?%=rkR#xJm&Png zb~g9HGg;cSh^D%%wl27zK-B0I7Qt#o$6KAHCH4w_7i~-Cy%6_T4Y(Iz4?*MX=%AAg zM^UEW>z=|zkbNC0>bTnUP}EB2)U%q?KM*imgZe&t9YTl_!t)eLwiq?h)0tUGNY#2F zpSz~bwOD3$4&8b2J2EKwS9<(i{-BY**|h1{G$t+A!)g@qOu%JG4efb=rkzQs_~#Dm z+8Pm4M2XITpf?4h!4V0({&Xv_-P_E;j|AQbEX?uY(=v>5{ncSp*E5VKe$5|jJT5Cf z>gtr(ijC^lKpWfQa$5w^A)}Bt&3dR(XOFm7GDnns!Ur`v+0$opDNg z1G7uizX(`v3=xv7iTX`8W=gMfDKrK1EBh8LAcr?V^gJC; z5lu29q7h;SC4_5{m&BO#X-FBh>(F&5(D8h-G3iegFQUowgV~d#FY=R+42;b8x!xKg z)QR5;y}W#$W26AFEeCl-6eUlX*QRZ|u$7F)i+PFqr6A3_*RmzcvKS_!MqYyjMit=L z*IG4zwP>Kol9>OhHCj`=HQKP>zSGg?hNvQ&Lt`d zCI}r#EF+z6yR+=mtnuLCf!8feb*CXnq?9#Cc2@~b%{K=z`E>=@Q)PVMFR_(}k6|G& zzq2=hM@}yL)@ON6R>lfcE4J5oyZYLwOO))eWHxAX^rJNN=VLARgely>Sjv@~;0G0- zbrEsgnTmb!uD8uuHSg2sr9@ap+SoqZVkK}j&z}Z=uT6Rz%A+5So7+Rk%Bz(b^zdS; zZ6NtAQB??(wEPy<8h(jh;b_@~Ek%`fw^FGT)%KG_3Lgf=<9jhaT}NM|P9l6p;(=bF zLVO3c?cj)=92}a6#3V%#L1PUBVv`XHEz2NPnmH?sVSc+sFfm8ST{;^wNrlbaoKU*^ zGUZAwohg?JU2@rh>l*fxm#?$;f#WRrhug z;pPz;W&eb5`#Ns?E5GN`!?Z0KvfJd=b!JV5Xlm{(CpP9FQ)y52NT-3OKEwsnG7yQC zC|Uh8$d!_(v1-o5tJmq*sih;Ffch~CBPWOG)l&Gt%qECn&V_@mCv@k7C~9D=m&KQ& zZ{Ai@q@)zswnmP+Un9fK%icr~qAb}fFCeE`#TfgUNgJk&B7gNq?rHhU(86ai|87h$ z#Vz1pWIEpQJcLpVGk3DNCkKycdNN54P6eGb;Uc=%w{_x4m2vUarq$^c=GoYEqXCb! z5D5e$>cTDHfzo@3{A6rb2`4IjKJWso2d?eX8@(H&KbI7%h$mA9MogY=mHxV)(sAof zP?X%S?AT6~PBVE)qk)ZBLkX_B+Or&%=h0Ag(rD@OuJ0^2hu?LM)#IX}?w~9u0c6RT zZtwZMMRP57amKXN!1~@ecrAIC6Q_WXr*t3e_n|%g^hS}wtzW=eUC&w_EF9kasm}d@ z6h`m<`{+Y4L6hb_D;TPTpT!ht>d!de=i-}`6=JPP<*s`h8(?Qph@CD?9DrXEp!cKH zGcovy@ZZG^yI!31rs5^Xp`j)>JA!bPckbsX<9rw*jbn6+zPsw9 zk<~f2-V$;f5^N(s7vnRf^%e+QuTUz?Lh0T!>d12uk0oP}tdqR(n?NVklTceZR?+@WCeCwCsZ_PqK-!>S6pu zEZtMC=FrPCFdTqhry!@I74Ljt3VJL4-%}7cWNPda`2QQg_}3WZqzouo{{zJO&kQ8~ zKW3nbYPPe*lu0Ge*vE|ObXjjKa@_coJ6~&)dnNBY2&{`pp2DDe67_JHHX7v_-{+IP zr}Ap#&m6DR9DP%W*9x+U-C5lD`ox5>>R2qp%ZSubu`o=Lt6Pir@yNxZi@DFdTQ2hg zOfrhgX}pWbql=8PSq8@Gg0|Jv_8@LK=6e22Rpwt2Vw*E&e!tn(x~eXq-}Km8<2Mr@Ho_Q}<;_;@wzik_J{<&6b53=seU;~qp@4WUEK9*(svFZC0J`_wx3%ZqDJyh zZM!wXT*>>JT_rU_i*a-cRYF6L8f>pXF4;#TKXNiki9Uqath+9hM9~S~*z;S_s-jA;@iWV|&dA}W4Re3+Ev{o<3e>juzRQ&B{{$BjT)#Y;AH+$MF)I3 zd)|ab;%h9%7ehv`oE>w9HA-i<&vTx$?w7r^zb&oU%d~Jo15$#$hV;dyh@br(U5eBw zoo7b-`0NE9NSqw9wBCB=_qhbn`Ug56Iki3?VLe~~udaU0xFdH% zB7L>7^PaWPgJx5@O!*AL^wY{K97& zaM)J@1|X74XvU>KG*+?6gw*-#&HN{}w{d@N=3A?Ps=GbXzm`j{H}lSUtH8~?CQQ&b ze;R8?SPseV(_pyc3|@Rvh$>0MG*E4-QX;W4INoSYEe4)_oe>1H*GWV7g#GMfw_!k2 z_}%Gkw~*{jG-G#uwrZL##V0q2%!e>Ey&jL!B!$+n>+8z4B(&39t5QD1Pe0~r;3gC@ zebp3WAXsX}^fOsn-(HJgr!i=gp6mPy1A6Ywca_H3la$Xix;{KDgh8TNLm)1_uxQp# z4C#7!_gd0$vPR!F2~&C}rys|v=u!2uMeQt*+*=WCm{0aJwQ1n%iPy95tYgx+z&dZm zO>x{kF;yxhae~0*51hB-<@yuIa#rAcCRq38XKPn;)J#92r{W7u&Q*ahcsD#&_2*Mz zhT>X9u6SHba5O1RiqgnM$w05ePqs*L5l?O^7=oH_aaE}U8sPzb;R(La{`nZD^UVyxh&zn zzIp%cNy25(dbXTxTVH0p0CQkDEDbnjTCmb!C^(Gk+8J~~=j`g$0A zN%0lFRV$vTQ&Z0=|EAL$I*dQtj44sPU*6z>VYmeg61w@?16@xHSN!HC*ar%h{HGhB zV_gC|)LPHDF%@v!R_pXEyEMTNm(?B0ngwxss!+Ta8xcNNDv+UJN6>g6mgT0Y){C(%nS)6 zpP1Iv_UG%+AHKI4R{}aZ_suF%EFXxd!XU|6V`90hlOE2Z(Dl6 zn{P87S7?|x3Ji9o0oNy|RzkQ_P$QaeT=Jwql*g?l@Iw6O(xJsWbY>(c1cb&29-`%I*W`|mm9ieSqMuMFrPD`-Q8JQQ!>XQrV?GO+d4Vw>9EuqJ>Elgm_H8a>m z<9_7g2eCCTqZit%S=pW%>$1PJkvawaGx|itN&uq|MM6h!fDfSzqsRgt$WsUMy?`FrnN6BNzw`N1a_v+;*NRmhy zCj#3;s?c?;aQgi$ZfLZi`sOX}yMd%7$WW`RuvEMX6av>uKFnP_M75*Jule8t0)CNqR5x z8bg-}RrvrD0kxc(u;_8tMB27Jdx(BLB{+vUH*Q^YGhXiYQc9(T4H+3v;(ag{P8qD? z_r@udA%}EirJsI@LHS20F&_u&e0my_$K3e^~35d{=6*gI6#a z{8HR2C&P@avezSB{oO=|+ykHDh-dV}(^kz_m8LqVOCepGDCgR}I?M>ki&e|~!grh< z{vz=y)L0;{`b5)KfBooKFiB7JGoc8B#$qe2)Rs=F$VgW0rkj~d@lx5-VT8Ki?9a)M zzTyPvebrmdG7!JZ86}gwmn_dm6%XACV_KekZ%JQV%7Ymt5k=njIvmncv>Y4SCF2mr zJ{pDZ{eH9^zHFrc++R1DgjV23&IY}QZ`02GnnD8b=~-}{UK+BtbN`q^;(4D_HfMv$ zm%L2dht=$E{`sqKI5 zbpC~Y0j>4_iGFeaFZAo{f1_XF|BZg}yE}ZhyncQ~zdT>juO9&V75NwaYBkM}YzNRU zHuY+lhXi%GW6vt`U{9Ixn?E`WY{^8SNWAtAi1 zK1zDv>e(8bhum<=4VAUeyfWWG$YkQJkusfixBAZD=C&ZcnV7>0Y&3GMPZO4ZdabmA zym;+~9hxK?KV{l|hZ1GL5q4L7wmJED)PQ*x@KCUv8O=qJ;#r~GT^%geCQla{jEa37 z+wL~k6ej(x=LaJ3Rdev@Srk}0(Df7fSJ%(||LOXX&N2P%`X#WSlYRf&^;7ov@{%01 z3aXfu8sj76&O-PAWiW?QMP1Mbf1mdeu~!9nB!{>}PgOO`z(F=U^kyx7$Wi!Pd2#}E zLtUFm#W_VmG~^QmzN`=3Q&-N~K#hNBlf))f5AMCTz}6%|Tm-hpTeqn$Oq?%vm&X%% z7nyjf{_x1cc}Jx9mmBla?H|iCk8vFzqd^*QUS@vyz!z13U<;hKw znFEE7^~Ih&dJBQ`e-%EAHju8mJ^v|uVE!q5{0V%dQG#^OS>+5o+6I3wVhSEJz_fC7 z-ZfNZXScwW6Xem8R4i;3o)lg}Gbcr*YxjnG7kmAD_oM zdyPjD9=4ISPjFjuzVKP=^|gNp_Xn@#!xAU9=`J0oBsQt#xwoD%&j&xP^#`s-Ogu&o zDgg5f8Uze5ueR^2`9<}=%rC(9UHxnO4*X+&E&mVmi;5vvt?=A_s3-l^{NnkS`4y(A z-+c!>%Kc;ep2h{!pLt|r1GaDQxC~choYQzCY%GF3`Do2O^$wQSJ*XU(H}8FH!u-lX zF=83Z=n2y~CXiQEi*BaeCgGO@Do;j)L~-KTd2Pi&XZ;2N=&Z{d4hEF@2SiAu zlqf4*9I58)A{=}c2LYM&abSP}8$!e0?-*|1pjMWdnuoElvD)%?fyo#t|+$)yHtUsv63dFvM8gNePHo6P0R4gJ~4<3F}9 z{$JbIlCKZZC|ZGTH}M?I2?VWN*sge8LsT_&8N+~4pHobSvat`bA;iMQ=Aak1^2VFYN#>|}pT zX;ih?BKFh@S&$Og-87PF? zVLcM5*GZ~Nsf|ov&0B*Y4B0c3BHT1AM1|S~)egdt^r8zw+rfXK+(}gT6?}JUB^e-! z*Mxgw$~76-W#tiPvKSj$hxn!zqxb^VZ39^10Lm}DwhX0j^a9ZJ%LTfA;4uw`(*bKO zyqT_fSe%2l({(`C5AW)4*KbqjD6hh~|KD9d8xrCPYa5{JSNAi?xC=xMbp5oO$N$~+ zy8ya=bFW>$#@DVNcM7=h8PN4(3-Ymd)i-_TPeXg!`!D5pgrP27tzZFAen+xVYrnkN zy!ozHGBdSjaQIjGo%o~t(u91+5Sg!iRel{v`%kd{D!(3p@>`cip~TSy`bIXCqHAYs zQ_ zyvT=Hkq7y@MbX?&IFQbbMzimO(~{m{W@yOu+YC=Z&MwiosJDOxOr$k;1Y|@69rN-z zn}+B#FtyA>Wf0C>~HvB65l>}ux~>@nknTfyk? znTE!@?TFDK)2AdZEU0}wSljTQR(hTA&-zc$@BB6Br{10Pihl(b=NNaK0YSgOSNvvaPf_`v4Uf42&D@Oz-y?^m9MMVJrLR}%&uvZv1Wr3Sx?rpy-DJ6#eM_6#c|j z2UytUk>2(X&RwsGRRm{erM=&+&O2%z`djqlk#rilXL_QOFe@%EBh8_j9|4Mf!QYc_ zcn=F?<;3XWrQbkXSJi;hX&&GF{;#4R`9DR!$b@?%py>A#^0nw^hbnR2+S6`8$8Pkq zW;vVF_;1nA8pqdpcHp0)pV8glq92PNQ1pWU1^lPzM`VyqLN>9a!_*R7QrWC)cChY* zTIL9H5qV3cXm+?wwk#V%eb3?2MAjmyvw%sm7#BL=5;4l?=uE0$|7&b}zpgg|vvF*J zugg#@7UipUN)D=R1&@bO|D}UK)h}WUQ z!k2ip+Zxj#Vmq`e0M60HMCht-vt$gj;@`G!#lLM|Bn^cEZM`PN>zxBbmrU=iy@PKH zeB3@KEpj?{9bc^rBd-3~zDf`puELbURU%*dug9~+lR;1iisJIBq2F`!Mh2dFibKSq z`-_udwC5wm1&9f1;}Bg;ukmw95Z@NIlb6-+7BgrM)~O+7S(DC*^u_WwMzNlnX2daC z6$M8J{1TARG%njY@~%^{kYOq09o}~2&XW1^f#TQxuol34g}2em-+h2)*fGNYt+mat zBNP5D`5Z)-T6R}iS2jh48^uMPG4W0tW;mR39vYzql{>zi{8ybaDXq z#r=c(-jo&wzv8|_hD-a~36q_dxskKg{h`@<)lMldU3|CA--rO{OU7>g75e%z2RL88 zRe-a+U#m1PnD)k}FR$y13Ux8j7{K{L|KHA6qQ(9HySz}av$Gcc|Mz`I zA#`EGDE6ltGW$AYvKsz5i-BqoTlr)f$%|4|f|EeIfzQWs)jx|1;m(g9 zeq=CN&1Rckg!bL!Zqm0Q-iGLVAxLG`8g^C7a}yKq;2~#lqlSOd5ohuifo@jL<|oc> zv>jK^;>MQ;@c6sqWPqSwG6>Hrk;f*)f5*Sl)m9=4O|o;YY-d47^1_%ezrZ_N9H4!KkUw%>Q#L-)=ER(}xQ&~MUQgSLl z02%M2o;sF9vei#Eg)PmXz}b7fU&(N13zp<|-h_x;sYy~@Rt7wZV#7ke^s=>5s$OJ5 zwaT^Sv_1njF(vV2ZSiBk*Zr2{1Su{}z4E!=Xww579^gog+!?k9>vYD8U69_wn^gUX z_cHujlgIH9L_BZZrh70o^foV!)v7Nluz|1p*u*L>?*|?i*p;e5iAMukK+unj(qNJ< z?(a>^PY)hvMnm5R(kFBjp1?QQq&ZJF!8V0_a%sf&F@aOjuNm+5cWY~;`vKZ|#a!BlQ)ny^oT%mw1}c0`>;Ix|%#C&n!SG ziQ@;~Ihr}MCcnHG+MkSf>}$pwdl;(AgC(5f?fX43O;MDC@WIb>7JT?D4#xSYh0!UN z^EG}f@&ZN^>P$V*1qf>yg~LL;CI!PjpdSgnXY92e;O6hSIIVeqaluN~f!?OZLb**X ztNSd1i+UtAFchl07L9msDCBHDuoQsbN~+e7hwMQDJ-?IM+*JH|#K8-UtT~+5o*%o6 z%!#2d-5a6I-c4|-T5fVkEW|MEQVI4gUT~43K44wJS^69M^3IR$2x^!9Yu!|%I!>$^ z@Ff=OBRz%+TLW8mLV`M|`hpJR@2kbucgOlq&u?Y*p^D?R=NC4A%TMJ-G4LQ5f85!?X_5^NW zR;+$|*l+{;iUHBT8E?-YLfk;h;7`ZCBYWIs}Z2mB41?^1iq zgyD1;TDzEUj3Rv^=-*)8nRtgPfQK$Oa-J+S(h*vBG-lab0Q-uPrDJVT#;z$td6I7v zqz6uxC9z0$Je44%*PfrsL!0Cm`qPa`Amhye^!$)L7%|$=suHb0U|ziS;OVpGUvBO# zM48=n$eeg+u1a0ZNV}C6nPaF@Z8v!inFY5gLc8<1ISZ4hI- z4d2Ziv7Y<<=S`~aVK@N~Oy|Ps90wrbT|1`2C=!O6+vCP@Q@qc_WqeMpFeyxgB{Ijb zef9t>Edp+;O%XIW@%gURO_+%iE)2b>QqFe(NssIWfw5Cb`t@jJP4jT&$|<$2Z;f zJ+8D6(!4=Q}WDaC@uo=q-zqJvPSX- z^etVQ&o}aTt24JC|4ws6x)WK|AEPoedQKzGeZkKqN;VgCcupk9F_Rge4Rp=KCvZlR z^3iJvYUagu9#D3k5||l?(u@K};xI-p4@w(jr(>(l%lMJ7^>AZQ|J^G+1Mauk9`rj$ zns<6kn?1_#PSZ1KXc!hCZNULRcQ!N4R*I&vA%vql z1B72E`tvS2IFT}u#~}fzxgoC=;M>0A-*5XWxW6n`uR;8wSA2^;(ZIKT)A?O3pZ(K# z$0^2N#E{7rj#u4*tszXa`0Bk%sjgT=I_0E_sna@JE1tnw2_Bpk>y4!ntWi^ zAAG3?G($I^u`M0qy|~-+Hm?ZpO^t_(7UW8w4+u)yFEn_M{t2mIyVUJ~bGD+Zj4Sa= zW)(V}%mD@)E(A9`g3ev;FRNes!b)WhX-Xml+Gbl+%qAb(G;g`=Ey->~C`Y2wyJ!?? zcZt8o`yvFupmA?Wof>b?u)UhU838`pNcOBCcIC_}^OO3p2G5KlWCQtq46TGCPbGDMXo*8c$PuIZ?90a@)xLmg0A z!O^dSa2GZ~X+?fHm*iI?c2k&Fw}!>cx?wP%-S-KRg<}sLZMH`Pb6L%pv!wAj zOK?pi7zf_Av874Y(0A(AD4;xkW*AUkDF`W1>k_$cI*x}*4SURXkKM`wJH7Q5|1CiV zyA7V<{wSTcH#y#LJoyGt`6IuDyI5B88+W&e``r8}CP^uZ2tP^d%fMTyAwBvy3YjHl zk}ezCswVGO1S}KMsOhgrN-08Mg$X^?5V=gRoS^SUR`@k2v9~ znrbve@50V_PjYVi{)?ZI6Hxi1X}@}In)zG#iz=r{tNi=L|4zCZo~8Y-{R^ERA2zZ`+gCMjDsfC6xR<=U_W%VGy>8fT#uEW{Md6kayq#B zTHmHsy?;;`e?)!{M%N;hm^W{@@K~^aQ@{gpb@Zu}K_TO(%H_aIdw+<>TtB82;uo6t zquyaWMgfR&=hqOqB&ZnEwh8miM>J_x1uNA4WqQ)=L=S=L_Nr}%3^QTg(q#0XFoN!w zKfFVrSlme{?$I8KIwOybG-XcJ0VRLfh)u11TQUN{ote9n9Fer?NC!ctoO)C&mKX6j zvP&rtYrT9aH9#_+gOxiVALsQ+jCpfRG1*3N{T)VLceoB&ECOT z+m*LjrnE&naVEV0{l$Z61SQM2KmxjOG%O!phI=f&hf}U6XYa)$XD##lYS1|AMoepd z(pJq?W7V1GVz74akNBUfpT0~k*ydKRl^6p*DDD1!5YTV+>2Q7UKE25WopK=dJg0No zAwKVqHch755j|X-wmlZng+?fs)@2Qmi#OgkRUZ+(;naI1dL07#WGIbGfgyn7e+>b^ z8>avBl;d>__`ii;T^m67#d^-s&-XNU9hR-RTxWw{&5U!-%qBNMZvo=o9|sME|@be7Oe%P<&@6|k>z}uoLY*6 zOt`@<^r6@7r5GyeMKpabT8f%{s!vBWbIKmzXl&eqax3l=Xd3;RtHi(dxhHq*o)KR( zGLvLmi+?DTFG413!uWv7n`Anfn%;_(LJpO?Pxw98Nz-5|tuIBX40d*$b)}Vog$W~f z4#iBcijPQ7^^8i~F_tbJrIh}-qiM6Yct>hg$_qtVZ-vKD7T1Z{ScU)7+U~uzr0?0t zB>#OgqagCme*U93tzhiVKJTM9_ZFhNXQGTCAJ-x;*K?8k%18>x(JW&}qM_1zeYt-} zSE{2UyIV_KyK`! zbCixC1QfO)?C<^tBeH9_F0dK~PYo29?tv0##K4>unfzAgVDhGmL{6c%IL5Qw&@c|Y zEG9_t{AEb=$4LiB_~@r}p|7Ov#Y+sy&u>Ni^~G^;_{QW51hsILUA#2W=o++ zi@c_o%FLC!+$|nLc|`IZI%OFucsE**Gm4-I0g_k1D4v?yCzi$^ZVoC`U&rwm0^_BW zZ4G|62nSp3dHO>%36llriev|3+VuwDu>96=g>BC{8r!+p{x_t$jevZv!9R2`XoQ9uMSZ8>q=n_KnZE#BU zM@}p>$0hHr^tN2oiW%4+O!LSz_aSv8$}J#SWANK8k=v{mZ(yc`)8eR`OyfSa(Lrqb zi)=Aa2z*ZX0y=YruXiW4`_&Ffyv-D@7E@n$cWLS^go+v9j!^b)<|Eo}{3wxO--#rq ze}r{akQ~jS5u<2-i0P5xMt!3N#(;8o$FI@WPb@r2ojLjEGrtEa zkxp6%4&sVjBuQQ#MJcbCt2l>(^h@ub+ztZnpm1{qs6bvqVkOH&-_~ZRpgVeX1ejv= za7VBdZ`^Kf)&YIYEzf&>?8}H(NXi^hjfS#S(lTV^&zPd566d&z)=9PFNXuiGlpopM zy3~s{hP3{{&X!7TH1E;UGpYJiQ5(F~rMj>#ziB{WTA#Qh-oRkZvCSV_|1A5y%&(yB zDsTMmssuEDR?2Ud|K!la?jG@JDnG}1ogZX-kgc5-rVuZ`k}E%yND~#Loo3F&WU%pT z!g9scVt9>IKJR372u#dOpYyG)0C8vmZj1DQNm5ee@92j2)rNi46FOXe+C^2F407pj z-wfAc@ypw}G@sPeGF25VV!erymPdW4)BI3GIWG*Vxes~o$cafb{bVz>v!cD+!4d=K z0MVRo%ElfMVdYR*X%@gs9HL-f+$rpEKcq!0oQ$Tz0Dhz1ge=j~sSnv_-%)K?9TYu~ z-;frbR;E&``BS8B8IfDMdCQ{%x|*s22o#h9PZG@A#DODA09eq=+B(jYONZsQ3D z2YHizO&nQZ_Dq}KZoxr0`~*r6{}v#-AAXH zzgby~(Oo<3R)K4pF?i#ah!mUYyc~P=0s$RR&6F`ZiJBLbGjdM>FP127&vr^rB_8Q@ zuF0O4#JGb;e)`*wjEgmaDdxQ8Z1|YYH6*C}H1!?!Z9U~ZRq1|p@e{g!L=$829lPoq zn*nCi>($&6_d&36S9B7UpiYrh^p>`EsoOwrd1@`btISUe=E%r9+m#LyG(YgE+AxJc z1g0jF7R1^#bEpAVm?vkygGPj9DeEKAP|8tw<+7ElT7iH3!`n<#@Mr#$X5NH5@2 zoW`5Zqjmge%FV!|Rt4{xp4A--@uT;1FGg~{qxpgs8I|J8Z-0~TWff%#dnRTKgSrW! zi8&)V?BnQqvt8~GbbPl8Rty9T$UL8{rugRUON?oiH4x@lXChZGph97PGReFzLNXofj zZsvLkQmrr?;rwmQv9~x+5}pkUMW7hEyttCnE+louMnm+1k|o&v*e%8WoNq8Sjd$!j zqkGL&S=Q34jBBLsydPFQ;UfGP%e7%1GJpU(mAmA{|eDle0E7X@_J-zmTk@&=lxc2mzT_8xTxR&qUI+%Xdc*St~D{*Qwv_z z;Sl)FC?O<3G?BPxOVbyO+ic)Gh$ju9of9e>Ylnzr^}~^*v?cv zTqSH683o7FchGjhm+sUyXA@MlaTosqimJY}HdjBIOohzDlQr=j`tT-y&ilT@%>fRL zOvP?!cMTe8Vzr-IL}ip<3Btr&_;f6{Kf=TgD9TJMSVb8=Hq#lKHZxQY^VH}87F}bf zIV803IrZe@14odbG%fpvdAABeFWBtcNi3ckgDTX^o+Q#R^GIX(ZfQs07mLti2h*134AY9F+amkKX)*dC#`gs14x?dC`pN_*&_motz60biYEg? zz6BMaOrt5?Gw-R?EIxn?rG$|zd^Y6*5vVz^aN;;QS-kI^gnF?R**H$XH#ADX2A`38 zakp@_N={L^KSlbJjb%;}rXNzjp^7o>$NUzj- z&7R=csb>+2fiCYp7YxL16}*9x+bwn!q8pIs*K!c>_?~|I;D>ZT@o^JlWi&VZjX)DQ z^f+uCVC1dYDg|RUoZOrP+Q*gzk{gCZeHC+U2@Ru#Uc=w6r$Y47jGA1L5WHD(Jr4aRvR!O~% z2N!8dU%=IGcyE-*l+oGaLE14)x40^dCxI!srmU_{P23J5XTPndVK9IO6fsMIBau;GPsF=@Hw&fw+kX%8mZ!^4x3pYrh77ZpVOyi5g?7LVd zcw<>KR*<4t&~Tq+oa93pYuqKBcllu&ALb($zf0RR5!y!H*u_R44&Kmh#^8ysiS3y1 z$#KkjqJO5_U3L$OLD-ilYIsr?Zt-F_g$wNWk)Kfqok_9A-}QIIRzEh?zwt{0Nzy@@ z7Azh?oL<|d(DN?8;nIE&=6g8EifbTS(GUd7{R32kBMK#8HRbAw<4x&+3jZDw`uAAp z50pyW7yq1ZR)Q-LblYJzN>EK~C*JNi|xSn(+31vdPDd12*u?wCJpjp z(*arr`eu4!Bo{eb)T_`gJeZ7q(?(jWL(&=b#Q6(|&15Nhb|KIbcU6rf!+a12 zeLg0ZtQuHt^gy9$jaFSx1n~PhsA)`?C~;m;NqV=p%z!5X(uR(*zVA^cEpeT~b|Q1K z@+Bc-Cz^jMt%RqOu+elvP-@~2f77c!R^Pao_T z$I#miCY@Jf;puR-$N9X;i1jaLtsmKXl@p-*QDY9`0?SOIi#;iw`tLr4gzGbz%X#vF zTr52*zI~2bI7#l;!(|3y+z*_)P2Q5A2hPXCjZ4o$#m?{-tzScSFB~?L^e6Jq(;FT>)2^k+Z972kb zkZ@x8xMqh9w(-5U?#oxZN@-HGMO`{Sq8oAM2gXD z+r@af6~-GNcfXS*&#=V)n!6`PJWm6y6|73W31!tre;)H8tO;8w0-g_=7@HwPe&>kh z92iK=&Sod|o^g@b;lGqN4z+%4SXo_K^AwG#ZYip*z1Koy+C(KQ)yoFqHUGfk#{l{E zJ(aGvzcw&k779>1!;1#IfZjdIMd@|zL*p}yOT_BX4;usEJ=|;uMh~w`FWfcRSN~tt z;sn)?ZCc2=i0+ZgOrOVwO09g1>(>{%Yxx#lK0us(wZK{P zRTqJT=KInwpNh%fR#wt2 zeR{;5x#{Qthc8)A&8e~5hqwN5)=vB@JV5&*wXG+1g^FEX<8A6x7w+qWxXei3Q%TOs zKoml-0xdIKx7`k@siVDV7qW0oK5h!aL%cV`moO}r2Jl1)8{=pX7^q@l@>-lmVVE> zvNC?UCeOB`Wr{=|w@hA|4lOx!Y;(9dH!|Cbn8 z;M844`4=JCgfDj)l%G7>Mm<4`nEJ;II8azMnIuC^V45%t9a0Q7ZmYh?y!OS!KSKIk zMNR6?!8Rfkg*@{lh9HeM#Ejw+4JAdVA_RBJSMH}Mu10PT#(6{>l#OtR{bAw}&mtZwDlM>IKoj$OFVMsc(1skx zx6wZ^E5@?lTM8Zf{l=`N%ehR;i4S)UNyC1K-|iAJbdI-g4>zIE&xyVfAyxTG>i=Wx zoT4jhxCI;Awox%FsEVCbP_gY)Y@gV+jf!nnY}>YtO429ackj5}fA>Sb>@oI!I&T>> zYppqp^l$aM8SbE+kW~a6h$t(7f20d*O4uf6GpJqpqlbY}Or!&`+jjp|gmCVgn<0H( zmN3~rnUQ*a)uigHUkA+&%uzv92|@^E4bmkEu)g)(8|M>TS%HwmF%PpIR#d+9v2Nss zU4SRrT;?}qc1{E<=d|3!4X-Rr-~*v1zeDS`Q1f9)2% zhC>U(73>uR0`^zTvHO*5tHCyN&8OC-5OU~@ukL)8#deUT2M>@sBcCshZTd}xClGVD z+2I)MvxzCBQ-cd^Vv>uY))CNrC#1J3li$wo&bWiCarxCC^lO`dVuI6ZdPB+UznYkd zx~V2GcHqWb#=s_KSo(9$57`6DJ<-a3JxFk4W3qlrbSR{zc^Lr0?0xo-Fb zbruZ#7EZ$vHtvyxCYG#vt;Y~IwuL*T+bors7XIJd!(kI5Z~52>Y(g*P3GTwm*Su(O z^CtLMI}CHXeNEmq(tr8ENB$DG8~p%{_SBp zwQyD-Z-JwpCQPt9tEk84f=jNbw2UCYB(n4S?JeI+g;mLNY9cW!HwaDXNJB}1dW->L z;xz z=g(fZ@@1;;f+qI%=uxIv{@BxT9bB8v;Vo{4L$!GURt65v%~e5KiDPvJOT>(6Xx?lH zoO6M74N}?Yn?-S3Rhfz&h>);A0wf?9$*O`KZ_Sh8yEKQRaX5FF*5p_}%m@$mFKkFv zuu$hb$QMjt9h`n;0(Q2!W|c&MB#l(2C&^Ta$tsX~AFRpYY~d9f3s<;C;;)bojaHh;a_ zD}b7@{3w2ulDfF0gLK*s0IqgNh1FZ*j2%vNB^V8z<`b6%(~a101my~U;U+9mszra! zInTS*7xy?-C2l?am!uS;g|P{|BBQcd$bN72D)|aOB=m2=hB3=AjiXT%s%d?!YpIa0 z0%`-B@&cFCq+r&4lvjG=Zj9jIHLei1l)nj%{SEq4am}IiQHW#(pr$d{noW01xmrsj z^5AWLN$6{s({AA$^X@$K&z$S9jJZJ%o0>G(RZCcefm~2OI{h{;>?oWINT(mLT5r`zX4!O_Q=$y8Y< zj`Lm*?$F`PhxU5))N(8$!U~5{piTK=aeZyEPrhmEOg(eI;o1#7f647-Pzyr`986Fv z?XSzVCW#B^ys&;5`k{u2Mo+1{(1GnIygQ5!+7W}DZ-&YP0$5fO5ZLrbMI8lzP#B<= z4Fuqbiris?irx;d!km4-6X6=QG5pGN{%#$X^fpv(~fkuZ{IVau()-#Z6? z&_>8L<-@>G|B9is*_#s++eMGTN~Qt_NxDA~(DM-A1V{WN5OKIAFq7cOBp2V}pk;5k zj-kVD(&qM~XLn2^j>)6WV1EY&>bG zhYP_7&62oj$mmK<_uxf3;`ySgL1XLK`W2ls?m%)+f7I7R7Vm+}bDB4Mt8xzdIJleb zExN#sT`oBJhI^I>i604sUOrA62BK7{9tS0EmWubgpHax|T zL*bh)bBnHjt!cSUcuCj5SzEo-f3kz11oZ#T4p_+-3ZO9m0))1g%_;{v(2(Xg?=uc+ zKy!H>w=}uSb(}^TTGzMEj3Fwh={TmGq!sF%X7zkANhsN&;T^d)NJD^7Cw&toe)H7! z{iZyt{oAj(bihVNyvz7!HuL@NCQmk^*7&VPwW+-BAhmRfv<bw%EEG5?IYtTX=2| zjHm>lypfN(ySg$HKS)n@0slv=qI#F%HG19dliFAvc``6uW}m867mV*dDba!exfH}T z*HMKt){mtvX0?8WeZZOxXA-|a{v3`}a^4_mKImy^4fw{hMv?U+Z5{MEvDN4?#`43n z-o>^4BPe6@>+r?H#IJe5=ubf!>nrP4Zx}%SQR|PEyfxoLs^H3rX8%8iG~#&Yj3LF=;2xQwamn;wKj0!xLf^p%=sS2ACcQHT zs>8y8{%N_V=sn`+06@F2RMcV-S3Ffz_g>|AC&#zKY}cPqRAbQnr7(bQ?-hzfIGRgK zs-f#DIjfu+lju}5LpEDn13dkYCKuwTpfXFf_p z{7{=5QO=D`2%Y)-F87C7?`wQDsHnCj}?N- zyvb8j&2l9fL(Zer!*9P>zRn@J%V5r7J>+!$IJ;t{Rwe*~6VoW{4^lsOsyj>i#k3hw z`Mht_zcsm(1`|zP!W4g0AAS*(^3h9DWEcL zSc$Uv$xDhwQTa4XSFh}Oj1Dix0>m=6NS#y?<-YL?1S>aCJ7^JWAW$&yaRIe7IBC}5 zaJGXvcFD0QLXyc)+CAFpU%q>u`lCsHl|(BRRC^2L*&q#v6Z8s?#T|)aJ4bCL)*EPt zM#sebvmDaKJ`~Mg1W@nvb0>%2cq&dU_y!Id*SFl6t+1Jm!H(W%f;|0f?pWkql3Oo(CWcs_fd0`M{OS<6xnxGa^oU=&VtCl16U0B!=JEX=Qt8u_`28fr2L z5Hxa!n*C^eBY^?UzbdTtCe}pp-6DmFDx~?qfaY?Zf-m9V<(7_~;^

    p5?HOB=Mw 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ⅅ(pn$(6E{z3 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%0DGSUU31Bn*Lbz7G0j{cC5368hswiX4Us6A{Fv5 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ξvqNHD^m(%s) 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

    upC30$h{ZcKP*l`j+kX12Tb=JTqp#_+70F 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%0A~@wN|(fPgA$-|a=8ipjQ{cUTq?V6FWu@Z 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

    !+1g7wC+1AY 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

    ;y| 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

    dO8YW;A~kYyA!WcMrTf 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%0A#0+H|Ci0@G=`a@Id7wZ; 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

    eJmAHL*IqmQ?eVdhQm@%QX+$ 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

    4hlZiTM=D!R4udETFPaB4_ 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 MYxB6!M)<$~2YaxlJ^%m! diff --git a/storage/connect/mysql-test/connect/std_data/Mongo3.jar b/storage/connect/mysql-test/connect/std_data/Mongo3.jar index 21c6c2d10bdf50c4389f0aeb0dac75c36b0ed9ac..2850177a66899d799fb171f30727ed05b906ebfc 100644 GIT binary patch delta 41268 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 delta 41268 zcmZuabzl|8(_fNjdG5Ij2?PzUMT-Q7APEJELy$soFIL=(1zp_TX$o6B6feaKr8q^3 z6Iv?xH@7=;FVG)pZheiLA2GyhI++U1Di!x zZ`!Kl`4Y*NZZpKBwQ0O2413HAi(x%VE3s)+o1DTf2Udm0uvTRhGyAEuVoj^k@^@sn z)guv(w9ng2ml`ll8m)75TJ|p!jgl$B9Bf}1#gVqE`#c=2_aJl3%+@^*grrNW)Ju(! zpS{O{uxCaX*wV7VZBE~I2p{pruE8VO+p>x+t>Az-5>r!7gV!mixYEW9DTt$IZ5JMs zc4mYrGBk?TE$#ipiP+-+C@m-}eyaG>4o{npBWaYP>x7w8QDPlbX?6g638QArH?kt- z6<^xqxz*4*nsR9w^V_0$nz7P)FUg9Znj_P;tXP$a3EN&lai@)0Qvn%_yb%$j!GdZ3 ztXr2~N}mYIr=|bwMsboGgQqhtw9523Gvk6SZQw60KL)+O)LMel+Ft$}N2plA8Iv~P zT6X-LngYJtTS>8`rQawUD+iqZLs-_dEN{QX_&XaBc0eMuz+q1!!mMnMA&g6y<{EaQ zvSQ~;jA4B;`AY&TM20CilqR?YjUxXc&pITI~ z9#xdAylTg=#>hp#MUcXEVY!NZB;LZ0W2pGdopHF|p$_!?sI= z)|oG!6;>xRaqH?zkY$?}wpjGx5QNJ!3%!(wS=gk7VS6PDE$|q?9K8Rcuq5m#CZGU5 zUlKMgO7_$uivw^Yh1NWfDxs#5g-_fa_9oM$(AZhnrUPL&r34^;KV+=ME^Bit%*gW} z4jY3~gD0}`GsnYv;sR)mQLWB|1A+vmc*rdbE% zqC3lWIn2zbT?*@jG{Uxm5nx)78ra><*Ix_kn5id+p0BWzmT7q6?XUxwjkLhv1s;cO zKoNy){(c&^4C#ddU)E84{Kt&2k;p`NtLqEh7-wfk#_;!lhuzJDXYlRj{?}p2c4>7H zXm#r;PS&cpQic6&4j(2FBGPBoQ@nhPC44hZBN#UaZ|VwfB<14pO+MA;5YOfhUx%X! z$HTXYKaC3Sl38v69HxdB!=9Ql{B%rsnq)e&?d2FI`mD_sej5peGy=FSdpJ!-ZH?g% za)!UgDW}atZYUU@j?!xRk-bhB5JAspZ3SqtQWwZ2VHi z@TZyLhVA<-Jd!`F8lE3JX)*{P1E7T`)(BsZ7!eIxcMW5n(@-(-{I$dTVLBHc1#C-~ z3}P7U7zWtx2F4h6ra^>}+rA9Xi`;Y|E80l0@RTm$Z9c~EJKe(fhwPP|?Q5hs_=O(f zr_s>8E?XsIW^JrwHW3)0lr?uJ)JgNl40XaMNs z4ep08$|ncYoF)gW&`b&PeBOxr6dPI?2)#;0MSO`)0H4OPo87_<>`61l&Ce?l4Q(Gw zoh?4X#2e&_ScijGu5Cd^fEn{2i7K>!Me65#5iJlS0$0ci7%%TwFe0A}C>GLuY7521 z4}Kc45NSeTaJ2=5!HS9z%~0TwBg(Z@0=!g0#Mg+~RwfcPpW0H%&i}0(!4WfZ1UX<@ zbqLvCt42&m3{1!D9Dt+nTg$uBdW%{?=BiyYq8A1x$!cO5trRDJk{EFiXR9VF2mQ7q z53!8Gx0x+!4J+osh7l7bhC_z1dZcxA2lC+^Bc`C%AvtHX0m@pPBmP95y4F0UYs5PQ zil|HJ4bGX^Jz~hmJ(<81=^0^1?j)Cy17;z1*MXutTiRAJu)1x*8Rhy$tj9hLcAC&A z8cVHDG|$&RVzfkau;DK3sRtjQHjq5VA$^ymb%{cdJ!_}L@OHx^>L3%)GR>ON zx&bsG-!(R(GYW?V?xAMWG{w)JT=14Oj9F{U>Iu&7+^iokAgdV`}ouu5!;cQ zaPAEj;b6UHM;t^#Ei-E{o-!w*4JugqhBJl(kd{-C^Wodh`^<}I;EZ;UEij9}r65+~>N!2#Febzj zFJSrmC|2IJk)biN&}8L+DTd!-iy(TQ?gN%dZeqxS7?GC*CU0L@B-S)FsE84Z^37(3 zfHaIyA3kk7uDRhml+Hb6154gF!AJK5gAF@RgA8genhxOjR;!#FaumVQ1UbTZdq zh}`jA40)xYKjh7?_ArztRmUM)p3uusL;^qT%>V&g>fVOiQh~5>5Un&^75=1;;WHE@ zZZzzQ2ouLnPXa$q{R*ro356#JZRBSL>z;sgor}4K8eA;L*M`Hg_W^A#X}vihddLwt zn0h4+CTQx7F}#=EMFJGew+vQ1Z0uOWeSzT6&lu7*4_i9ka8Z)DheBKdiIeS`WC*a6 zL!ex}IKi+34c;IT>H!VS0lh$uN|wpOQl}Yylmmccen6Q-Sqvn1@LQ~JLa4fP$$TZ| z846?)Icc83$lecwgxO{oBuqBXkcz~hYb;Bi2et>ao3~tKD2+?=2bd^+dWE5H<^hSN zYv$CMCjRvr!>#{?jpUOy7>Y{_hq-!1s?8w_48a@-(Cj>6m%)P;5#L|!G2}#thUCZ? z2@zX+B-B9{(hZOQqX3}o{EtHhs)JyR>%W_AKhFTJw{_wq8o z8D?WDKKr|Y_H`k)?(tyc@{bI(xfYwwrP+ z__hqgKCJ5@#$!1EcassJc3{BK&xc!$=?H`ka4b);8;jtHBP6|8zBSrN1#0>ldn|+R zZ0!9+NZ*rUjDKNFX+0UR_py^Xjdq@%-S{i=6f_!!111s6d9l~k^kLPD7;%-Pjt+Kg z66DbNMT|~dHDJ9K%mpSFe^u5Phkg^qjo?$Oyb;&KuniuenUgi2qS)EAibe~cUtU){ zVJpO|Akokq(34S8vYSIA4DvP!#u`|vq(1_$rsp)81xtRTw($nih(%5dYIe7d5jPT{ z@NGR6a#NYQ#^KV}4ECfYWD-e91A8U+H9C0AXGS|Zj(|}trLht7spb-`V-#=oxp6mI z8|2BymX0x6c~T4GG-M8mPxfTVEsQ1})7F>;qgksHS?VgIL(=rA5spHcmP7~!+5gu zafgj#vAdX2g4>q45QvSB8|g$Z#0W4Zrp|+LET@burOqN_iKv)%6|A)AwDCC(6LO)z z9R1nY35}X@0^;;c2EW9JvFgf_Y19i`d6bL|2ZK!D_Y9WAy*FnVeA7h$^Jamt+aqA%C)SqC& zyC@bC^Wi!W^XWv>9TZbnn!lfHqB}K8$Gq1x6K!Wh{&}}vaj;P{O*>`s6MhDmiT9Xg z+JwQO&u3n1o@q4#b<^`Ki%ly~fY2iGXsPKI+9@RO?u{U?bA@T?f8@Qg%Czl2Ja(=% zxezEq?WawU1PmKYbZQVX5nwF5{$|q%46x8Ltzp>I&9LtcerGBz(HyjViE4yqp5QTj zpJ@nULa9LT*t!K~Ox1%XBRVZ)LfckIhog?0YGZC9gR?eUA#*#=nJ%MCLxup1m1nzX zQa?7PMq}kYFYAiyQ-yE1YAS~o6*b?@-%J4(eI0U>b`8$p2n7y&Zj&*r!s)86{Z>>86jFCd6s(UjsHEaoa`7!go{ z`xU#n0Rn{`1&?7n!1O&l=B^~nBU3T%j51e4C!tnuJ~7tZ2>U=NRgosU^$RSTH}jaY zvUeP^$Do|%8fXn!_!ctf;l_CL5M-ta$d?u}A4f)Fod)tOtlmx_-&4X|6v@T%13hCj zjEk2pZQg+xkuwC1yOP<@D|~8ZM1#U);efe-z|ar?G&1{cFj<+ZW-0^aGM8x1$(*}k z0(@7)yax$21$b(rx#Rz2#7oyVpFj+3-l2#GS$W0J%tsL@iW8wgxxFxC!_Un%J_sI7 zX~00XH2vjd8c?MsIwP@=o};KzKkbvHX$ zmIF{RCG{}d(67KeKNFa#2b4Izy|1~{$73;ItMUQ^%vI1Va9&nSGKaJg&rc3A)AcC? zd^}q^0lfF>2PKN_|JwXOb_Br@(c&OXsry6CRpl@oHfhUoL}=FJF=Nfm5H)Cmc_ud9 zll3^LGY@)Ao@QQz<|#D894!}a4k#*Y#Uhrm(`?hkf%gK7%sp@qSuiV{&FUCd_!!LD z_Up{iC`6lvQqpW1#?P;8G*7|QqA4qtn|w@B*|yE*hf=v>8-V2DF-W_=ZZZFayBRQcS<{Z7yupYrbd&J$MP7J6vj^IYq7C{XCZ7S6t~>NFcHR_SIUAR0E=ua zgN}B-wX_AUN5m>6N{NIy7CTFCY%#HfbHMyjP0MF;Y!36*j!iIo4wOjPG36Hs%2jnN zHPH~n-ott|2X=eU1G-p!iyMUrq1``26pm|PxszExkV_KswGAzg|2O7bV@s|7IT&x+ z)N=1*8V+L6#e8URO*Ve1rG+lcMG)(Qv(GQWb@P}umS3cGV7U?|6QbGJ(}gw@Uz}oz z#BIDVux1D5`~}v%d)+J^ltL6Ex>imNLv@VU7A&PRL=ze9(JKY_>~q z`Pr$j0v^)9jEtY{kX&9(wWOwGg3R|632QBpKK!l(e5-=uKf1Sn2 zYag?WluL$~fM8H3J9QOm^}s0$Uhip75#w3WYmg^~pRv5hQ!ThniDx&j!Sb1Q(-MnH zi4g#pg$M6gZsSrUY@6+03%s&=Xvx4Sq}^X;+_nUG!$+3Z*inRr#*)3g4tz5*EX6T2 z#9l<}&i3C>?5tT|ki7RFmQhG35}6#`}!v2%3~3cZ;4x($RhmT$jIAhYLPoLA|owuOc)u-l5auS=JG_ILD@tg3P!z@ zNEa{Zi;N`2wR1KN!vQmr>OKN8(Y<(V9G^mSr|%XDfeL8HT*6l(8Hfc=K4qrfsW%sm*4#3@N8R9ODsfm@RR)7dZ~YK@60<6~bY}14vp$qf`q!9d3=}QOhD9qM^Ya`8ZI&m+t2v z_IuP#OoS;96(>u02&HQ8t&w;P#UXTW;m!%dJ)U>l6FCAOCP5wGKA%qzK6Vz&Q*aV8A$eVw81hXe$}Z(hFL>JT}hy5@(IbQX}$NEewEGmUtaPDJ6&XJDDCtu`MJQ zU8ZC}MroJRN;iPQj=(V|-;m3?UOI>B2O9^HY|@N6i~&sLw+mVq%c=Ph;&5^6E!3d? z?=WX+WR)%aL&?ourK}~@8NhC=pY@y$fDCUH{hV!=9qxPkjwp zzsPoL0R+m0MB6@S7&iC~oL8;mR()d#wF?JE0rewcc=CDc9^?TDBA&r_fW0%SCjQw) zYqV5_!~D#NxgVN&`TiT$D2#WpMA_fN%y8YZ+9WU(g@A}-U;JjpTX12lRe$<`FJfJ`TdcJj(D+YPzNVYKtHGNAVGmicYCI}{l1E^I4|Miu8sA~yC! zs9rv#gpJP1^-028m$f}Z`Guq4+r=guR6C#fsg2GhMVuaoToN*e5KtAJJ)FOme0rIBiY9k-}4 zY->N;T`aR;`D8a!ZLnL`unCdilZ^g0AFi$~4J{;mNf;+@x7#*7bGU%$LAKbTnt9O! zHhN|t0!hR0n?Km-Cmtc-%0o7qRv}=QBmV0XGkC^U`LOjA#TKUm9+wJ06inL_k4r+YYlG zS6|V&l3%s*n>PDBOq60`i_U;?^Kh5_E~-gEW#>M>{SX=qbkEBw22_|VLHn)`(fxyRO<@{B^YbI7XbzmWg&7&&X>3 z4lSouhjR+rI6{m;b40X zIV^`FXA8PdqUkTUq)8aerLAy zp561&lOYZnr3uoAz{~i-9^m!X+wCZ9(Zlw#e9pJ_-!sh?mJtU_!>;e`YmriPTC&?t zM{wf%>3%y^eB#@F(2j3NIDEH6l~a%ERAPe#GD3-Q!hQgwNThcGymH#!FOznf5FS41 zoc%A{l*>IN09kS_n12WF*$ZU0rPf`;IN6Atuy!Uqvi~H*TpVtNu#a;>D0O&jU;mK+ zIa$(UyP37l1>x5^1Bj7YyN%Ec%eLfF^YYPu*{7qBB#%kMczKh5?az=UykIFVso^nA zInff&{Sg% z@_%GcFA8YJpR@c!RLtAsI)E6+(d|$GoABnC#_!P1M#?OitgEDoj%t<*NSV{>sC$G}Z@gt5ZIO=rAOQ=C!{|m=t zjCb&5jvZYc4=8#x4``j)%}+qEY&{*7$jlMr)C zK~b@?B#i$1SB}*lYm$XRue1~UE@Q_$`Vo%DbR<@)J==Aj#2RxOB<1!BJr^F1;VnZF_U2j8!)-e&`f(7)9 zz&K^3eBzBM%0II6)(7(FZp34;|ytx^NVSk^>9a%~S+` zuKL?C8I^^Dn~%^cANI;Y>#2xyVlJpHe8@Y;0Xg>e1Sj1D3nvQ2zzno03E3Ec4(3jP zyzrUPc@e`67IPe%&^|UL0fKqF#YuM_VtNY!sE?Pwv^w)*EI~D%S^Q>|A*wrhoQGu; zYY+c*;dzSJ`8{eKa@z2q)5hus=^<;#_kcj(XR=_>>EdUC&WDnX_*tjmADhK#W)Gu@ zi^v?>63HP;EdhI&wo zy`AEuH}ztb2TUC6Q6Gj(ndbbCe59>D0&`l!w3wmKzYtB)B)|-u?Yx9EaMK^dfreh= zEY9Z1!z#{j26^0K=S|dQ*)Ep=23Tq`Wa8?}owLyh!ZJe48_BAV#cXrRU+akCP=oV? zZ=HDLru~*cn8XS{f(NrbX#=L8p60xZqdT{kF*>Y~nvMT+)rrTL9HhoGCZ2rT`AX^rr-9A~D57R@7Uyz# z*y+YS@I^Kvbb!I6 zwDJcDE_`+R0dW@ow3>^4g(N(k+7eDdZXEQQc}#8BLY$}I?s%5oN{!vo$aMz`1+k2X zQChck`FMPD*DiFMu&It=OIw4&1zNcxGCM;1$FR5Pppi`U5y40heXA%y>dkp4Oibq}zDH@p@;Znt_svxvBvf06o0iDpx#OM66z-`{Xq)+EqWV40E?f2i3*)Bs(p<^?DcGP=qk= z3WFvaHo5#Vz~-!l00NQ#f49|DFO%B6j=Ey__#LjG6orFIO*4rv&?Wb~Dt-*xa?rI* zvKBj6==TMNvXJ5C7m!)pCtQcHVABGazq{z7%MB4_TRW+WjN6FIu1Atw1ZL_>my>0? z2LV;&y6Z5Sf=E=hbP43L3b$O}q4`A0*JwD<48+LPfow@RtJmRi2y+Bh^WWTx5a?yUUkTNfT{i^RV@-F+Rq2+smZ z48Lr2C(5W2aUoQk)(tj|ZS3w-vNwlO*GX+Z?87Q`1My=0?j0zJurZj=z<`C1`=j0Y zC2!&9O5K5N|2TIvT2AZ-MOp`pkN=dzO%Ex=x|7}?_@wlJHBBs2CGx<}vt{KY=CB~7 zK7Quz0VhYTJ3w?z%xoy}UpP_baT<#0(M`cV)MWx2xbD z5sE6UrmzaO9I(Z4EQo`O%vQk_$){9zXO%#zuw-x6tGe6IpVW54Pf^8o3rO&tJ`;Y| z`D#6V{LE+WtGFzN3{tcYm3D;=?umL3eZsv<-1N&O;vL1`FLUGbl^tu{FJ*X1 z;WxNfN{-^wvBkX!2Y}bLA~c-rmmTf^H>bJhA_iV8glyvEfTl;3p@0P=IGAf7%=f~( z+$E!BSn4swr~K@0gtiY=Tmba*Y`?k-V)%!unv;W67aw!QU5fmrt=Yn+fN`^em0^v1 zcf(B=86OY^dD%N|{qRGp0Ep1Vp|b9SN_{}%VyS~+*>gO0CrdPkJeVC*qE>-iMdG!4i{D4sb;PMvb{W-*@1C@0j${jnL9Q|AYF-SBDw#9`O6d91AEa7gl< z;yt)?lvQj(j7Q-!3wRFT<)4@n05mXneUF#Vs^GyAMDLE6sg*tSdx;Ne*pm@3&AzVT z8G{mkh~^229(n>SA|o!*6UTGZ_l(5jdjZ_q!IO=-M}apUeD0y&C4?BA>EVHggri{Q zlxpP}`=4H>#G=vh=!qWsfvMQI31&~nK{-}?l80W)i_IQk zf~@FuFiMkYo^z<$2ZTYkWC>V&&`doO1fNvV}e2+rHhES@sc)q8NJkH{fJLviq zE=J&S;53hg-JA$_&oEUj+_u#dg%bsOCh}h2d1%+GeKWD){quWII?5(Gh3)k$!EY@A zaZn|Ir)RRlxad)|h0wyYo%M8*IaDk!?kf=YQxhQ+&tCLo!*Pj3mHV%<-uH71`z~u(Axk<2i=F>3#`R`JxA&qi7C!gmuM}gJn!t4SfA$5AC);#IUJT z!NP|!Jf)G_hiG2;FOTJaW2U|IQ11MQCf_^Hf&WcYG{QR`F(Ma$O{9RVu*>V_4vY7S zoD3YEB`uT2jT3t7wKTgDKwCNG|r%VwpOV__z<{0H2fF2T=NMLSG z^~UkrW4(1SXhKUqV6w|uJn|bam619j2Xt+u(Sb~G>pRmMA%lYH7`}9_mtOaZ(?uFQ z8#}WIYKMA@y_f> zqWitwP+T$Zp^wU8|6B-{28fM3Ea9%##5OO5+km~vaIy;9wk-V1AH9Es0wC1K!xxyUAu{pI!X0gt^t9Fdqq0UGXeF*xJ2^YhQW^nxCk$8(^e zy}R};c&vdF4U7&Q#s|LlS|yM~adKdr5YjH5XR-Jye%L3L&$0O?ppc=e@6;+dhi~Wg zC80S(=U;&FvWlxA4*vA}Jjh&}s1%O&-IpaLT(iWmCHZ`jtWp*qg^E_QYcSp?i*Ewb ziKBY~%$ePn>8G_w{csIjYKRfjS;O$?O1>MoJrff_ble3*T{R<6d)o#n{o-J~toJ(g(+w;zuqi1AN6e0MFsKC@%zI zkxft_JZh^CCM+*73pS}Lf78Kt1T_^m6M#|q>yExJGBIWyH$zZt>FlH5Ux@qzJ)?N{ zZob|hkq21$E$~_zUdghAvsK2;gk%xTlk88zMXPh4hqq` z4j@;MNTjNSQNAp!+BWTEb*PViekU&B1ZK-NP`K}KA3ey?Ov93g`%JvWC?Dl{;nkay zeDIe_#`=yUcg?bV?nGZ+)LmG*P8uB5Z=ML`p23>QvAFMGH<~ov zXGDys7d1=si8Fn-krH^)>sDwMXZ5y2?B1KJ+goGDM=bEsau_m`vIE?8bCGUUa#w(j z*a7zLy;L{Y+2y_tII-oU2Q99fuk)Reu_A(3M0C=6-`21^AOG^e0KY=$*{4$x?Js0o z|L^}S|0n)JHp{)yms2umTQ#V%O&5H2HsU)U+zo8>Wkr>zpZ4VzK=#e|u$Z0SOcrBB zPWdy_IJfy~ORLZ6f(Q=G%AqGlc8Ch~Ht`4CcLWcsX>1?Aal(hE!W@P@g%Z#>K0fW7 zFDx_!2YDZ1AL8!iM=$v{;Z5F+cA!+NEdEH=b2pqAto_4xo(|o5`lDIvEPe~yyBn0+ z{LXiU7AeB;EfN0dw4nEhQaLb6zy)zxKL1SIn+f#P8^B)`f2jE*WO<~@;qkpj^-_gbI%fyHSqe7CL1NnNn4TW*@@iHU*({RoU zg(jtgLVu0&(>vuJ)4>3?@&2!neC$MjR^+_25d0bk#et~yVn03!<87AvpGbZj#?OhO05mJBco@pgg=_rTaOnN({Pe_INCm8$ z`ZEP_*~74h7=O@j!2Z(?`}0tWKkZYQz~4RYuOWdPqHC_~%7k0qKl0mo#u@)=bg-tM zMr7yvulaXkIW9t01G1Y(AWc*}0+qy;d;S12g5Z@j5>nrvET?uJ2v6II^?Y5r4S|k#J=Jy5C6-ghBojkWOnv2O?2XLDVa2fS%b3B(;xAaEAlAfoJx!hv^a0}wZsRXPc;Ri_pYm@u7+ zPTR@^9-xk5?w&dcXNX721zOVGgyx~DRRR+-MGC)PEihgZt?65XT(9ZP9-V?}U}>#D z4kU+xq3BHtT*mYx=IO;20s5~1MBq(H3E=BBn4Bsf-Zr4p6oVfG$?i-7N= zmk=y_S|AVqd}{!Y3^;s0MXsPo982CBfIn1w0i0B8M__kmpT_MBc*yEnVynL=K({O) zMRqpjBFwlt`vdg87}(|F-yROEKqlE-!CZXkvA|FATdaiFUIc7x;x9lr=0sp6b_9{& zne!zm9dBru4yOXM5F?U@M#JOI(##0)xp@gL8Dbwoc;@~&uo81Fo)>; z?8iaAUy!em|N5`6z@*&`Z2k!7)Wg`bn@dCMbPeUa?d#Eo7TG9w-}J zkKfw-WvvnZyKce zBIGR8GU#OeR{Py7XN%yIkeqDs9o5V-?m#X{Y#GEKBnaOS!oup_h5D^ptDqy3?R7dc zAKfO{RN9e4(xo5khUB^aMR1)QP^|MX-OYSMM?J(eZQ0=8VTd`MgY-wCL?{bjYS-X3 znc_JpPugk@;^5!CC{k#&xci{Jdq^<#KbW2x=E6`tBE=Xj4xDm&OD);eK3KhymKmcYhPyj&q{l^x!h|3>YPjmz@)&vu0gZ9+(%5 zzz7Th%P$OOPM1vh^ywown$NW)NY7~X0A&Kxds#38*Fj-U00#K{bwT{qiLRCGJ!wO* zFj_~O4gA`sU=vbETUn;01p^SYftsUl30bXYCJuixPCbCA;V1<9`S?Lz9W_1AhqGS=OV$DFTRyy@&gxx?Qr3azZNVagHwc5 z-)liSnjCnYFrxfEbUjFmYU^9UJV>K$=?4D^>%s0@L97M%=l6s31WA+$EuRGGPos%K z=;c%0EZ{7akID!h!zxu2_MKh@bK>{Zh^V|cb$UeQ;8!D}XeTaeQ%BvXNNzJn(aTP; zi*tIS;J+jJ8&XQo$SC?HvQ`bTEnfnr*WZwU7TTg3qsKKG4m2wI17?NFG{#y_GjHUJ z!k+~*5H5!XH1X}hsM+#WvsTaN;JvCvQIQC9RFHdk(^^q<*D8Vscs{2wwCoJuZeAcM zsuW(;iE?OIO4NIFGH~{UW{}E3`q@Yy(lg^F=sB!w6z-Hb$T%)2Ef(sO`U*OwjE$m8 ziUkv+@}X6=jYq55QD&CyHO${v6Qg=zt^v={rIK(zbn1fAK>4ZiJM*IMpfn;0)OrKQ z4DS|3=}$~F73aQz)0QVoqGF#%}wZ09>D(_8-<)gNVqKvG%8l_*?BU@oX^=$oh* zR_1Ed31JIvz7~}tHRLcSzmnm>@7{~Lggitksu9h;6m93>52My#cc@qjpwnRTQ`tk^ zWBH*MQTVr4IYa^_W@uL8E8axam+bjp@1j~Dmqy`A4ulRiD9f>;7b!AJ0RD1DQA0HR zj~i}<{_LHohXM1W^s3MfKAqehR0c|(3?@ug7H0&)?^UIKroduf7^9a(7 z*Ahwz@xP?8plptMp`w(gZyYRguMGQ@AZ-nvpo zsVuQ^Wr<&(vPvTf`?0K&C|gQ7!geXA)RC~AI?VPdjoa>1!fvD1obp8aS$P_al_#O@ zlqYq|R-k^9Dkyd35LYUIafOoED}qTytGnLXske-klo}G7R0#|&`pvAQRFtg?m6YnT zl{JC-eVIT;+nGR0nk!SQab+59S!JcMqO6Ts8x#;no)~Pf2Wp`BttH( zL>p0`TFLdvZHw!ZzE5;)xg_d0K8f@_n?(F#lWE=!OeRO4O(y&0Z9qXXNN@evfW}Zi zBh9;hMqG}3Mj8bhlD=IV62-2DN>!<4SR-oH(p%FSkyKY2Da~cSvW>}G!y1!R7xY%a z&q=pIpVNFl^f}pHX+o`TO~?yJnvl#&Q?gperX=a^rsRERGlI2mM!M~5MtV4!6PGs4 zm8MeC-OY8{7G$+HEoh8QEl49No|ap~5Y zrr@F0WHomilAwJX;`a#I)S2wOvol4LsS8mw>O!1Xb|LKZE+k8Z zu1Y02#)z)Um$LP^tI}Jx+ICa=%GRZBN*CFx(VaZAusfyp-@4P9R;dS#F}VlX>Q)aL ztx!+0Qdj8Q+UqLwb=$CwtM1kLpca+V>`_ZSGAHyy#6@R_jBY=k+1)|IvqJ zo>pCrX6^ba@lu&7eW`O&JRsimRdPr~j($Wjuph<7)AP{faX%%O?BefF!QZbxseiV= zGDKpNzoG!y@D*V#11LmO1`urT0A+-vs60^VAY1DOlHlQkh@$x*a?0sJBwFslgdIAV zg7AzE%R7XyBZeqnNzSi^C~ah`)z>7!uCGbvvO`JcSwqPcQ`dpg;lq^dk}Q504K#Qd ziE&165#;^eBM5d-Zv{pYzpi@gz(}GPS_;G{I7-PW#b`K+blWhB zrds%D60PxQni^@NX}Y+^kQ+OXA=(3DXvnCsBv9wEq{7~@ltyC4DQ)GrBgc`|u8*UB z#m7@Z89biG_<1}@P<#T}bjk!u1&f?fND5_iE#1WTPn z6E-zB7$-PcDJq3boUC+}t(}vVFJvpn6cT8}6s5g{!R(1)bl61^U;&N#v`M1a_l3>~@vh)2_By)|`WQ}F3$*b>HldYPs zQ94RHA6ldIkgZZ{Nw+0yNtS=~R?<3>G;JMmajmB@x~!)$j;<$3vuq$e25%rQ{Ir4O z%fFF)G-f05ySb70eY%OTvp10q9&I8Ck~Y&^*tVI*aBm^o_ufL@`gsedFNIXW zeT1F0kJ9?peWY8N{Uqsz{j?m%r7NF{aV<*|vaVyd_QANb(rM#*F`X!CA0Uc-2gquo z8Y%t*RU@r_An&LDK*r8~kU9@JNcsMEz18rLvPhcq#UW*!Yz;fCd@Wn=4l6@tYxog@ zy+1;#c0Q_fm)Ofkm434I*)ft}`!SkFj^pIK_Qwgf`#3ou?~ml}X+KiGyFb!gNH{^! zzWfBu^VcV6jMhI<>%dQ>Z;q3c8Aj=?-}F|MQ-ocvx57^otleqKO-E1D{K$QV!iSxq zQ2zT2Nm}=wP{ zyh!%zf03rkxr-!KfnO*K4F82>x$+Cyw8ABd4R(n%dUA>S)&7;REA-Y|z18G0`Etu; z8qIQrCfL9$M0@TErGipdN%J{Z$oi)_4a(Ug zZjkqH-5?7k+@v^Nf0OuGZ;=Xf5AWJrVNEX`mknHDpMDuO%BZ`+>kEma{$K<#5k4X>16Pf|-o{$6wo{$7NpOOTl zpOOSuo{|Kmo)PD1&nPAzKchHE&Y%?eeFn*r?Kwrn7`^pCZ`J=p87?h(_77!%Y}Nf! znIv0R{-oVW;}>M{6EDcqh5w?gH~%k+2*ckrr@#7}G{2|An*KwuV|uI1zqHHR^Dixn z`CpPkW3 z1ZcFVpo*2-_#pMW7gX_dt5y`ryfzB?%~2>WS|}vwcM3&eoJy_9dh1`6BBWh34SO(} z2FsB}#j}gCSt#~yWKr>Cqgf2`I~+p_#m182Lt-f$eu-7_S|vwT3YKwM$yB$q5=G@~ zq|mZ#1beTyTE!7;x872-tNo?RXJl8gvWmz-8g5**J#dKAn_GSAJa;!ehzizxc# zQnAebJr_}kEqjODDsI_fLjCd=rG8V3l12}Ul40u=qkbEU zsd#1*C{Af=XmO(WwK&bRq9urSW(mSRD?ySbeL}Kq{e=4YN~(Ap*r_DJek@6n<}O9L z!C6-Y>7#w6RJ;_klveQ$uyJV>52JRKrp)FjL$kSc8RD{|4C#@rEY13jtKpz%T3I!> zWdD6xB8x1i;{DoZRaJ36lw3{4Q>xw7NVi8vTx zlWBD_jT_#8G;h;@Q|{DaaquiQcFfdvR`5&vdgAM#KqNE z9VtU#R$~=wEy(z%~gX0ZK&VS zHl)Y3HY8v96w+f+3c=o_kY}2;CD`|RE2d+FJ*GV+vKxAEp6RtacI|_yl|*H`6zD>f_>A2 z#(mg>IM?n;qpj{qT1NIFEqnAL*x6pBQSsiyZ&q&_<6j-tybq1Bs}ITN>q|2C=u4xW z&|!J{QNQ7O>ry|WDAAv=llv3wcO91S6=CP;tv|j}@fxD-02NQhPYoaook(|J*v0jM-g_S-g-2O`qddt ztqpq1Him4~c??CwPdY6BSkip-SX!f=jwQ_-jU%6L8%JwEmhrR(j2}<1=X$Hf1X>La zP9R?vpGdXsiirgCenYL1dMo1_@_DOCBx(92is#&u2{u7*J(^4#zjjlow)kZV<;03p zskKUP*{2b#uim<>w<@QSw|1tgc#>0OI&oe(o%9IIAgKn=pep0f86-=WnKa){%%r%_ zGmBay_10CrReCmIXXvdbdaKqP!miL;@AOtPM)I9vv>~oLR~;qe@7!F9#H4w&TJ4`l zGMAaJ4wL)si$(MJT+Cpr#U+sxgKVy|sV5_}snTk(r?gLh8RC77S z?#kr^i&#OP>9B%e2lZBtl>{5Pl4!5%unMaPHh&e(sDD>c&S|uovI-Q;m81mER?}=u zT0^sfuOZsNTGD**T7q3#OBO1!j%0z`^iL(flj}%={Oc(TOkPh__=WZ4w>%q&%g_z9 zDgS8$t-3ij(zxR{lD9H8(wuI&i6lL=iTn}2nfj$}rZ{-JnXoBaXht2~LbOG;62;uD zgnhr2qNK|<+8bQmM*XUPtF{(iHBBn=&%ex*23|ezE$zGQX(V&+G|D+w(ui}F?9{g{nYQk ze(L8;Cv5w48h1lF+3!U<&5F7QRD9jJ@Bqnt{{ZzX_5pEvx79> zwjU(gcL&L)NrxzkcON3_dJmIzJ02#@w;v{1j7Ny}^CLvD=?L|EbA+r`^(e_QNpGD$ zN;1bDBRjX(TkDQd{);$H($_yuvMfJNoFC||qCe8ku>X&Q-J`c6PLRHJPY`zI3G&C? z6C{24p9nizZ~gcaN$NjIV>CNSuoWjs`UfY8w&*Fc!SGYG(>!>Ju-4PWCFwLp$)eLl z@%S{wM%gpu>9J=h!`(hZdK5fM{RZi+BWKB0o^y0i(cv6r!h`3CpX)sNqlw;Ha-JlB zM_2d;xaiMhp;14p<>XvQ|Cusj@B+2EU7*qSUmz~dixefTFA|rn7pY&wFXYQ6zt9ZW z_zUq1zeN6Mc8Rc?FH!7TeuaRZw|dKToiu8B zoh03Sog&+EgJ8{XkT2Khu$MQ;(^YN~cG^wiclRcZR`wQQ$K4`Hf4!yF6q1(jd8qet zmVO5$t@xW-N=iELHg7tkwzM9h5=*E@V)@Po9&OQ=ijHERGl5f6(z_**{1H zfmo^|j{iY+fuB!Avl4%*F)|n${z>Ls`6s2S`+rjC6?;KxZpaHV$*C8le)L}y{Gb0t zu;qUd#pAyyKob5Y2Tc8&V88uMNO%l1~SE~Z+o z@ZSc`VD7gt)q1>D3rOoOdP|bte@piJ^c`tF`5lc5mW*c4-l9-#f3-X4c!>Mbw3<=u*8VyW^&Lq5z%-_ z`92~V@1p7(qOm}lZ-~ar#}|fZJRz@WjK;f=$ws2RV~obzwX&vYya-J-MPu=D(-fWj E|0ilnEdT%j diff --git a/storage/connect/mysql-test/connect/t/jdbc_postgresql.test b/storage/connect/mysql-test/connect/t/jdbc_postgresql.test index 1041ef468d7..8036f71020d 100644 --- a/storage/connect/mysql-test/connect/t/jdbc_postgresql.test +++ b/storage/connect/mysql-test/connect/t/jdbc_postgresql.test @@ -3,25 +3,32 @@ # # This test is run against Postgresql driver # +eval SET GLOBAL connect_class_path='$MTR_SUITE_DIR/std_data/JavaWrappers.jar;C:/Jconnectors/postgresql-42.2.1.jar'; CREATE TABLE t2 ( command varchar(128) not null, number int(5) not null flag=1, message varchar(255) flag=2) -ENGINE=CONNECT TABLE_TYPE=JDBC CONNECTION='jdbc:postgresql://localhost/mtr' -OPTION_LIST='User=mtr,Password=mtr,Schema=public,Execsrc=1'; +ENGINE=CONNECT TABLE_TYPE=JDBC +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono' +OPTION_LIST='Execsrc=1'; +#CONNECTION='jdbc:postgresql://localhost/mtr' +#OPTION_LIST='User=mtr,Password=mtr,Schema=public,Execsrc=1'; SELECT * FROM t2 WHERE command='drop table employee'; SELECT * FROM t2 WHERE command = 'create table employee (id int not null, name varchar(32), title char(16), salary decimal(8,2))'; SELECT * FROM t2 WHERE command = "insert into employee values(4567,'Johnson', 'Engineer', 12560.50)"; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CATFUNC=tables -CONNECTION='jdbc:postgresql://localhost/mtr' -OPTION_LIST='User=mtr,Password=mtr,Schema=public,Tabtype=TABLE,Maxres=10'; +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono' +OPTION_LIST='Tabtype=TABLE,Maxres=10'; +#CONNECTION='jdbc:postgresql://localhost/mtr' +#OPTION_LIST='User=mtr,Password=mtr,Schema=public,Tabtype=TABLE,Maxres=10'; SELECT * FROM t1; DROP TABLE t1; -CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CATFUNC=columns -CONNECTION='jdbc:postgresql://localhost/mtr' tabname=employee -OPTION_LIST='User=mtr,Password=mtr,Maxres=10'; +CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC tabname=employee CATFUNC=columns +CONNECTION='jdbc:postgresql://localhost/test?user=postgres&password=tinono'; +#CONNECTION='jdbc:postgresql://localhost/mtr' tabname=employee; +#OPTION_LIST='User=mtr,Password=mtr,Maxres=10'; SELECT * FROM t1; DROP TABLE t1; @@ -30,14 +37,18 @@ DROP TABLE t1; # CREATE SERVER 'postgresql' FOREIGN DATA WRAPPER 'postgresql' OPTIONS ( HOST 'localhost', -DATABASE 'mtr', -USER 'mtr', -PASSWORD 'mtr', +DATABASE 'test', +USER 'postgres', +PASSWORD 'tinono', PORT 0, SOCKET '', OWNER 'root'); +#DATABASE 'mtr', +#USER 'mtr', +#PASSWORD 'mtr', -CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC CONNECTION='postgresql/public.employee'; +CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=JDBC +CONNECTION='postgresql/public.employee'; SELECT * FROM t1; INSERT INTO t1 VALUES(3126,'Smith', 'Clerk', 5230.00); UPDATE t1 SET salary = salary + 100.00; diff --git a/storage/connect/mysql-test/connect/t/jdbconn.inc b/storage/connect/mysql-test/connect/t/jdbconn.inc index 05122f51924..81ec80c13d6 100644 --- a/storage/connect/mysql-test/connect/t/jdbconn.inc +++ b/storage/connect/mysql-test/connect/t/jdbconn.inc @@ -22,10 +22,11 @@ DROP TABLE t1; # 1 - The current directory. # 2 - The paths of the connect_class_path global variable. # 3 - The paths of the CLASSPATH environment variable. -# In this test we use an executable jar file that contains all what is needed. -eval SET GLOBAL connect_class_path='$MTR_SUITE_DIR/std_data/JdbcMariaDB.jar'; +# In this test we use an executable jar file that contains all the eisting wrappers. +#eval SET GLOBAL connect_class_path='$MTR_SUITE_DIR/std_data/JdbcMariaDB.jar'; +eval SET GLOBAL connect_class_path='$MTR_SUITE_DIR/std_data/JavaWrappers.jar'; -# Paths to the JDK classes and to the MySQL and MariaDB drivers can be defined in the CLASSPATH environment variable +# Paths to the JDK classes and to the JDBC drivers should be defined in the CLASSPATH environment variable #CREATE FUNCTION envar RETURNS STRING SONAME 'ha_connect.dll'; #SELECT envar('CLASSPATH'); diff --git a/storage/connect/mysql-test/connect/t/json_udf.test b/storage/connect/mysql-test/connect/t/json_udf.test index 35dbbfed706..d45131f32ba 100644 --- a/storage/connect/mysql-test/connect/t/json_udf.test +++ b/storage/connect/mysql-test/connect/t/json_udf.test @@ -29,12 +29,12 @@ SELECT Json_Make_Array(Json_Make_Array(56, 3.1416, 'foo'), TRUE); --error ER_CANT_INITIALIZE_UDF SELECT Json_Array_Add(Json_Make_Array(56, 3.1416, 'foo', NULL)) Array; SELECT Json_Array_Add(Json_Make_Array(56, 3.1416, 'foo', NULL), 'One more') Array; ---error ER_CANT_INITIALIZE_UDF +#--error ER_CANT_INITIALIZE_UDF SELECT Json_Array_Add(JsonValue('one value'), 'One more'); ---error ER_CANT_INITIALIZE_UDF +#--error ER_CANT_INITIALIZE_UDF SELECT Json_Array_Add('one value', 'One more'); SELECT Json_Array_Add('one value' json_, 'One more'); ---error ER_CANT_INITIALIZE_UDF +#--error ER_CANT_INITIALIZE_UDF SELECT Json_Array_Add(5 json_, 'One more'); SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 0); SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 2) Array; diff --git a/storage/connect/mysql-test/connect/t/mongo.inc b/storage/connect/mysql-test/connect/t/mongo.inc index 2d7cbcfa8bd..fab2ca84139 100644 --- a/storage/connect/mysql-test/connect/t/mongo.inc +++ b/storage/connect/mysql-test/connect/t/mongo.inc @@ -1,3 +1,3 @@ -let $MONGO= C:/PROGRA~1/MongoDB/Server/3.4/bin/mongo; -let $MONGOIMPORT= C:/PROGRA~1/MongoDB/Server/3.4/bin/mongoimport; +let $MONGO= C:/Applic/MongoDB/Server/3.6/bin/mongo; +let $MONGOIMPORT= C:/Applic/MongoDB/Server/3.6/bin/mongoimport; diff --git a/storage/connect/mysql-test/connect/t/mongo_test.inc b/storage/connect/mysql-test/connect/t/mongo_test.inc index dfc223e9074..357fa55240b 100644 --- a/storage/connect/mysql-test/connect/t/mongo_test.inc +++ b/storage/connect/mysql-test/connect/t/mongo_test.inc @@ -1,4 +1,4 @@ -#set connect_enable_mongo=1; +set connect_enable_mongo=1; --echo # --echo # Test the MONGO table type @@ -130,7 +130,9 @@ DROP TABLE t1; --echo # --echo # try CRUD operations --echo # +--disable_query_log --exec $MONGO --eval "db.testcoll.drop()" --quiet +--enable_query_log eval CREATE TABLE t1 (_id INT(4) NOT NULL, msg CHAR(64)) ENGINE=CONNECT TABLE_TYPE=$TYPE TABNAME='testcoll' OPTION_LIST='Driver=$DRV,Version=$VERS' $CONN; @@ -147,7 +149,9 @@ DROP TABLE t1; --echo # --echo # List states whose population is equal or more than 10 millions --echo # +--disable_query_log --exec $MONGO --eval "db.cities.drop()" --quiet +--enable_query_log --exec $MONGOIMPORT --quiet $MTR_SUITE_DIR/std_data/cities.json eval CREATE TABLE t1 ( _id char(5) NOT NULL, @@ -204,4 +208,4 @@ SELECT * FROM t1; DROP TABLE t1; --exec $MONGO --eval "db.testcoll.drop()" --quiet -#set connect_enable_mongo=0; +set connect_enable_mongo=0; diff --git a/storage/connect/mysql-test/connect/t/tbl_thread.test b/storage/connect/mysql-test/connect/t/tbl_thread.test index 68a0ebcd44d..05409c695fb 100644 --- a/storage/connect/mysql-test/connect/t/tbl_thread.test +++ b/storage/connect/mysql-test/connect/t/tbl_thread.test @@ -56,7 +56,7 @@ SELECT * FROM t5; eval CREATE TABLE total (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2,t3,t4,t5' OPTION_LIST='thread=yes,port=$PORT'; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by a desc; set connect_xtrace=0; @@ -85,7 +85,7 @@ SELECT * FROM t2; --replace_result $PORT PORT --eval CREATE TABLE total (v BIGINT(20) UNSIGNED NOT NULL) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2' OPTION_LIST='thread=yes,port=$PORT'; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by v desc; set connect_xtrace=0; DROP TABLE t1,t2,total; @@ -101,7 +101,7 @@ SELECT * FROM t2; --replace_result $PORT PORT --eval CREATE TABLE total (v BIGINT(20) UNSIGNED NOT NULL) ENGINE=CONNECT TABLE_TYPE=TBL TABLE_LIST='t1,t2' OPTION_LIST='thread=yes,port=$PORT'; -set connect_xtrace=1; +set connect_xtrace=96; SELECT * FROM total order by v desc; set connect_xtrace=0; diff --git a/storage/connect/mysql-test/connect/t/vcol.test b/storage/connect/mysql-test/connect/t/vcol.test new file mode 100644 index 00000000000..88b822102d0 --- /dev/null +++ b/storage/connect/mysql-test/connect/t/vcol.test @@ -0,0 +1,31 @@ +let datadir= `select @@datadir`; +--copy_file $MTR_SUITE_DIR/std_data/boys.txt $datadir/test/boys.txt + +create table t1 ( + #linenum int(6) not null default 0 special=rowid, + name char(12) not null, + city char(11) not null, + birth date not null date_format='DD/MM/YYYY', + hired date not null date_format='DD/MM/YYYY' flag=36, + agehired int(3) as (floor(datediff(hired,birth)/365.25)) + ) +engine=CONNECT table_type=FIX file_name='boys.txt' mapped=YES lrecl=47 ending=1; +select * from t1; +drop table t1; + +--error ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN +create table t1 ( + #linenum int(6) not null default 0 special=rowid, + name char(12) not null, + city char(11) not null, + birth date not null date_format='DD/MM/YYYY', + hired date not null date_format='DD/MM/YYYY' flag=36, + agehired int(3) as (floor(datediff(hired,birth)/365.25)), + index (agehired) + ) +engine=CONNECT table_type=FIX file_name='boys.txt' mapped=YES lrecl=47 ending=1; + +# +# Clean up +# +--remove_file $datadir/test/boys.txt diff --git a/storage/connect/odbconn.cpp b/storage/connect/odbconn.cpp index 70a0a6a1450..f7b1a43a95d 100644 --- a/storage/connect/odbconn.cpp +++ b/storage/connect/odbconn.cpp @@ -137,10 +137,10 @@ int TranslateSQLType(int stp, int prec, int& len, char& v, bool& w) case SQL_WLONGVARCHAR: // (-10) w = true; case SQL_LONGVARCHAR: // (-1) - if (GetTypeConv() == TPC_YES) { + if (GetTypeConv() == TPC_YES || GetTypeConv() == TPC_FORCE) { v = 'V'; type = TYPE_STRING; - len = MY_MIN(abs(len), GetConvSize()); + len = (len) ? MY_MIN(abs(len), GetConvSize()) : GetConvSize(); } else type = TYPE_ERROR; @@ -190,12 +190,23 @@ int TranslateSQLType(int stp, int prec, int& len, char& v, bool& w) case SQL_BIGINT: // (-5) type = TYPE_BIGINT; break; - case SQL_UNKNOWN_TYPE: // 0 case SQL_BINARY: // (-2) case SQL_VARBINARY: // (-3) case SQL_LONGVARBINARY: // (-4) - case SQL_GUID: // (-11) - default: + if (GetTypeConv() == TPC_FORCE) { + v = 'V'; + type = TYPE_STRING; + len = (len) ? MY_MIN(abs(len), GetConvSize()) : GetConvSize(); + } else + type = TYPE_ERROR; + + break; + case SQL_GUID: // (-11) + type = TYPE_STRING; + len = 36; + break; + case SQL_UNKNOWN_TYPE: // 0 + default: type = TYPE_ERROR; len = 0; } // endswitch type @@ -364,7 +375,7 @@ PQRYRES ODBCColumns(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ table, length[11] = 255; } // endif ocp - if (trace) + if (trace(1)) htrc("ODBCColumns: max=%d len=%d,%d,%d,%d\n", maxres, length[0], length[1], length[2], length[3]); @@ -381,7 +392,7 @@ PQRYRES ODBCColumns(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ table, if (info || !qrp) // Info table return qrp; - if (trace) + if (trace(1)) htrc("Getting col results ncol=%d\n", qrp->Nbcol); if (!(cap = AllocCatInfo(g, CAT_COL, db, table, qrp))) @@ -396,7 +407,7 @@ PQRYRES ODBCColumns(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ table, qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("Columns: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -536,7 +547,7 @@ PQRYRES ODBCDrivers(PGLOBAL g, int maxres, bool info) } else maxres = 0; - if (trace) + if (trace(1)) htrc("ODBCDrivers: max=%d len=%d\n", maxres, length[0]); /************************************************************************/ @@ -593,7 +604,7 @@ PQRYRES ODBCDataSources(PGLOBAL g, int maxres, bool info) maxres = 0; } // endif info - if (trace) + if (trace(1)) htrc("ODBCDataSources: max=%d len=%d\n", maxres, length[0]); /************************************************************************/ @@ -666,7 +677,7 @@ PQRYRES ODBCTables(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ tabpat, PCSZ tabtyp, length[4] = 255; } // endif info - if (trace) + if (trace(1)) htrc("ODBCTables: max=%d len=%d,%d\n", maxres, length[0], length[1]); /************************************************************************/ @@ -687,7 +698,7 @@ PQRYRES ODBCTables(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ tabpat, PCSZ tabtyp, cap->Pat = tabtyp; - if (trace) + if (trace(1)) htrc("Getting table results ncol=%d\n", cap->Qrp->Nbcol); /************************************************************************/ @@ -697,7 +708,7 @@ PQRYRES ODBCTables(PGLOBAL g, PCSZ dsn, PCSZ db, PCSZ tabpat, PCSZ tabtyp, qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("Tables: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -755,7 +766,7 @@ PQRYRES ODBCPrimaryKeys(PGLOBAL g, ODBConn *op, char *dsn, char *table) n = ocp->GetMaxValue(SQL_MAX_COLUMN_NAME_LEN); length[3] = (n) ? (n + 1) : 128; - if (trace) + if (trace(1)) htrc("ODBCPrimaryKeys: max=%d len=%d,%d,%d\n", maxres, length[0], length[1], length[2]); @@ -765,7 +776,7 @@ PQRYRES ODBCPrimaryKeys(PGLOBAL g, ODBConn *op, char *dsn, char *table) qrp = PlgAllocResult(g, ncol, maxres, IDS_PKEY, buftyp, NULL, length, false, true); - if (trace) + if (trace(1)) htrc("Getting pkey results ncol=%d\n", qrp->Nbcol); cap = AllocCatInfo(g, CAT_KEY, NULL, table, qrp); @@ -777,7 +788,7 @@ PQRYRES ODBCPrimaryKeys(PGLOBAL g, ODBConn *op, char *dsn, char *table) qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("PrimaryKeys: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -838,7 +849,7 @@ PQRYRES ODBCStatistics(PGLOBAL g, ODBConn *op, char *dsn, char *pat, n = ocp->GetMaxValue(SQL_MAX_COLUMN_NAME_LEN); length[7] = (n) ? (n + 1) : 128; - if (trace) + if (trace(1)) htrc("SemStatistics: max=%d pat=%s\n", maxres, SVP(pat)); /************************************************************************/ @@ -847,7 +858,7 @@ PQRYRES ODBCStatistics(PGLOBAL g, ODBConn *op, char *dsn, char *pat, qrp = PlgAllocResult(g, ncol, maxres, IDS_STAT, buftyp, NULL, length, false, true); - if (trace) + if (trace(1)) htrc("Getting stat results ncol=%d\n", qrp->Nbcol); cap = AllocCatInfo(g, CAT_STAT, NULL, pat, qrp); @@ -861,7 +872,7 @@ PQRYRES ODBCStatistics(PGLOBAL g, ODBConn *op, char *dsn, char *pat, qrp->Nblin = n; // ResetNullValues(cap); - if (trace) + if (trace(1)) htrc("Statistics: NBCOL=%d NBLIN=%d\n", qrp->Nbcol, qrp->Nblin); } else @@ -918,7 +929,7 @@ bool DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt) && strcmp((char*)state, "00000"); i++) { m_ErrMsg[i] = (PSZ)PlugDup(g, (char*)msg); - if (trace) + if (trace(1)) htrc("%s: %s, Native=%d\n", state, msg, native); rc = SQLError(pdb->m_henv, pdb->m_hdbc, hstmt, state, @@ -932,7 +943,7 @@ bool DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt) MSG(BAD_HANDLE_VAL)); m_ErrMsg[0] = (PSZ)PlugDup(g, (char*)msg); - if (trace) + if (trace(1)) htrc("%s: rc=%hd\n", SVP(m_ErrMsg[0]), m_RC); return true; @@ -941,7 +952,7 @@ bool DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt) } else m_ErrMsg[0] = "No connexion address provided"; - if (trace) + if (trace(1)) htrc("%s: rc=%hd (%s)\n", SVP(m_Msg), m_RC, SVP(m_ErrMsg[0])); return true; @@ -1004,7 +1015,7 @@ bool ODBConn::Check(RETCODE rc) { switch (rc) { case SQL_SUCCESS_WITH_INFO: - if (trace) { + if (trace(1)) { DBX x(rc); if (x.BuildErrorMessage(this, m_hstmt)) @@ -1223,7 +1234,7 @@ void ODBConn::AllocConnect(DWORD Options) if ((signed)m_LoginTimeout >= 0) { rc = SQLSetConnectOption(m_hdbc, SQL_LOGIN_TIMEOUT, m_LoginTimeout); - if (trace && rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) + if (trace(1) && rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) htrc("Warning: Failure setting login timeout\n"); } // endif Timeout @@ -1231,7 +1242,7 @@ void ODBConn::AllocConnect(DWORD Options) if (!m_Updatable) { rc = SQLSetConnectOption(m_hdbc, SQL_ACCESS_MODE, SQL_MODE_READ_ONLY); - if (trace && rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) + if (trace(1) && rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) htrc("Warning: Failure setting read only access mode\n"); } // endif @@ -1385,7 +1396,7 @@ void ODBConn::GetConnectInfo() else m_Updatable = false; - if (trace) + if (trace(1)) htrc("Warning: data source is readonly\n"); } else // Make data source is !Updatable @@ -1397,7 +1408,7 @@ void ODBConn::GetConnectInfo() rc = SQLGetInfo(m_hdbc, SQL_IDENTIFIER_QUOTE_CHAR, m_IDQuoteChar, sizeof(m_IDQuoteChar), &nResult); - if (trace) + if (trace(1)) htrc("DBMS: %s, Version: %s, rc=%d\n", GetStringInfo(SQL_DBMS_NAME), GetStringInfo(SQL_DBMS_VER), rc); @@ -1447,7 +1458,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) OnSetOptions(hstmt); b = true; - if (trace) + if (trace(1)) htrc("ExecDirect hstmt=%p %.256s\n", hstmt, sql); if (m_Tdb->Srcdef) { @@ -1510,7 +1521,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) ThrowDBX(m_G->Message); } // endif tp - if (trace) + if (trace(1)) htrc("Binding col=%u type=%d buf=%p len=%d slen=%p\n", n, tp, buffer, len, colp->GetStrLen()); @@ -1523,7 +1534,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) } // endif pcol } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -1569,7 +1580,7 @@ int ODBConn::GetResultSize(char *sql, ODBCCOL *colp) } catch(DBX *x) { strcpy(m_G->Message, x->GetErrorMessage(0)); - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -1610,7 +1621,7 @@ int ODBConn::Fetch(int pos) } // endif m_RowsetSize // } while (rc == SQL_STILL_EXECUTING); - if (trace > 1) + if (trace(2)) htrc("Fetch: hstmt=%p RowseSize=%d rc=%d\n", m_hstmt, m_RowsetSize, rc); @@ -1626,7 +1637,7 @@ int ODBConn::Fetch(int pos) m_Fetch++; m_Rows += irc; } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -1662,7 +1673,7 @@ int ODBConn::PrepareSQL(char *sql) m_Transact = true; } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -1693,7 +1704,7 @@ int ODBConn::PrepareSQL(char *sql) OnSetOptions(hstmt); b = true; - if (trace) + if (trace(1)) htrc("Prepare hstmt=%p %.64s\n", hstmt, sql); do { @@ -1708,7 +1719,7 @@ int ODBConn::PrepareSQL(char *sql) } while (rc == SQL_STILL_EXECUTING); } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -1881,7 +1892,7 @@ bool ODBConn::ExecSQLcommand(char *sql) OnSetOptions(hstmt); b = true; - if (trace) + if (trace(1)) htrc("ExecSQLcommand hstmt=%p %.64s\n", hstmt, sql); // Proceed with command execution @@ -1908,7 +1919,7 @@ bool ODBConn::ExecSQLcommand(char *sql) } // endif ncol } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -2250,10 +2261,10 @@ public: return (SQLCHAR *) (m_part[i].length ? m_part[i].str : NULL); } // end of ptr - size_t length(uint i) + SQLSMALLINT length(uint i) { DBUG_ASSERT(i < max_parts); - return m_part[i].length; + return (SQLSMALLINT)m_part[i].length; } // end of length }; // end of class SQLQualifiedName @@ -2394,7 +2405,7 @@ int ODBConn::GetCatInfo(CATPARM *cap) if ((rc = SQLFetch(hstmt)) == SQL_NO_DATA_FOUND) break; else if (rc != SQL_SUCCESS) { - if (trace > 1 || (trace && rc != SQL_SUCCESS_WITH_INFO)) { + if (trace(2) || (trace(1) && rc != SQL_SUCCESS_WITH_INFO)) { UCHAR msg[SQL_MAX_MESSAGE_LENGTH + 1]; UCHAR state[SQL_SQLSTATE_SIZE + 1]; RETCODE erc; @@ -2427,7 +2438,7 @@ int ODBConn::GetCatInfo(CATPARM *cap) else if (vlen[n] == SQL_NULL_DATA) pval[n]->SetNull(true); else if (crp->Type == TYPE_STRING/* && vlen[n] != SQL_NULL_DATA*/) - pval[n]->SetValue_char(pbuf[n], vlen[n]); + pval[n]->SetValue_char(pbuf[n], (int)vlen[n]); else pval[n]->SetNull(false); @@ -2466,7 +2477,7 @@ int ODBConn::GetCatInfo(CATPARM *cap) irc = (int)crow; } catch(DBX *x) { - if (trace) + if (trace(1)) for (int i = 0; i < MAX_NUM_OF_MSG && x->m_ErrMsg[i]; i++) htrc(x->m_ErrMsg[i]); @@ -2605,12 +2616,12 @@ void ODBConn::Close() rc = SQLDisconnect(m_hdbc); - if (trace && rc != SQL_SUCCESS) + if (trace(1) && rc != SQL_SUCCESS) htrc("Error: SQLDisconnect rc=%d\n", rc); rc = SQLFreeConnect(m_hdbc); - if (trace && rc != SQL_SUCCESS) + if (trace(1) && rc != SQL_SUCCESS) htrc("Error: SQLFreeConnect rc=%d\n", rc); m_hdbc = SQL_NULL_HDBC; @@ -2619,7 +2630,7 @@ void ODBConn::Close() if (m_henv != SQL_NULL_HENV) { rc = SQLFreeEnv(m_henv); - if (trace && rc != SQL_SUCCESS) // Nothing we can do + if (trace(1) && rc != SQL_SUCCESS) // Nothing we can do htrc("Error: SQLFreeEnv failure ignored in Close\n"); m_henv = SQL_NULL_HENV; diff --git a/storage/connect/plgdbsem.h b/storage/connect/plgdbsem.h index 6a0a8be8ff8..5446e0d2a07 100644 --- a/storage/connect/plgdbsem.h +++ b/storage/connect/plgdbsem.h @@ -362,7 +362,8 @@ enum COLUSE {U_P = 0x01, /* the projection list. */ U_IS_NULL = 0x80, /* The column has a null value */ U_SPECIAL = 0x100, /* The column is special */ U_UNSIGNED = 0x200, /* The column type is unsigned */ - U_ZEROFILL = 0x400}; /* The column is zero filled */ + U_ZEROFILL = 0x400, /* The column is zero filled */ + U_UUID = 0x800}; /* The column is a UUID */ /***********************************************************************/ /* DB description class and block pointer definitions. */ diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp index f669d644637..e296553d8e2 100644 --- a/storage/connect/plgdbutl.cpp +++ b/storage/connect/plgdbutl.cpp @@ -1,11 +1,11 @@ /********** PlgDBUtl Fpe C++ Program Source Code File (.CPP) ***********/ /* PROGRAM NAME: PLGDBUTL */ /* ------------- */ -/* Version 4.0 */ +/* Version 4.1 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2018 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -215,35 +215,13 @@ int global_open(GLOBAL *g, int msgid, const char *path, int flags, int mode) } DllExport void SetTrc(void) - { +{ // If tracing is on, debug must be initialized. debug = pfile; - } // end of SetTrc - -#if 0 -/**************************************************************************/ -/* Tracing output function. */ -/**************************************************************************/ -void ptrc(char const *fmt, ...) - { - va_list ap; - va_start (ap, fmt); - -// if (trace == 0 || (trace == 1 && !pfile) || !fmt) -// printf("In %s wrong trace=%d pfile=%p fmt=%p\n", -// __FILE__, trace, pfile, fmt); - - if (trace == 1) - vfprintf(pfile, fmt, ap); - else - vprintf(fmt, ap); - - va_end (ap); - } // end of ptrc -#endif // 0 +} // end of SetTrc /**************************************************************************/ -/* Allocate the result structure that will contain result data. */ +/* SubAllocate the result structure that will contain result data. */ /**************************************************************************/ PQRYRES PlgAllocResult(PGLOBAL g, int ncol, int maxres, int ids, int *buftyp, XFLD *fldtyp, @@ -307,7 +285,7 @@ PQRYRES PlgAllocResult(PGLOBAL g, int ncol, int maxres, int ids, else crp->Kdata = NULL; - if (trace) + if (trace(1)) htrc("Column(%d) %s type=%d len=%d value=%p\n", crp->Ncol, crp->Name, crp->Type, crp->Length, crp->Kdata); @@ -475,7 +453,7 @@ bool PlugEvalLike(PGLOBAL g, LPCSTR strg, LPCSTR pat, bool ci) char *tp, *sp; bool b; - if (trace) + if (trace(2)) htrc("LIKE: strg='%s' pattern='%s'\n", strg, pat); if (ci) { /* Case insensitive test */ @@ -541,10 +519,10 @@ bool EvalLikePattern(LPCSTR sp, LPCSTR tp) { LPSTR p; char c; - int n; + ssize_t n; bool b, t = false; - if (trace) + if (trace(2)) htrc("Eval Like: sp=%s tp=%s\n", (sp) ? sp : "Null", (tp) ? tp : "Null"); @@ -582,7 +560,7 @@ bool EvalLikePattern(LPCSTR sp, LPCSTR tp) else n = strlen(tp); /* Get length of pattern head */ - if (trace) + if (trace(2)) htrc(" testing: t=%d sp=%s tp=%s p=%p\n", t, sp, tp, p); if (n > (signed)strlen(sp)) /* If head is longer than strg */ @@ -628,7 +606,7 @@ bool EvalLikePattern(LPCSTR sp, LPCSTR tp) b = !strcmp(sp, tp); } /* endif p */ - if (trace) + if (trace(2)) htrc(" done: b=%d n=%d sp=%s tp=%s\n", b, n, (sp) ? sp : "Null", tp); @@ -668,7 +646,7 @@ char *MakeEscape(PGLOBAL g, char* str, char q) /***********************************************************************/ void PlugConvertConstant(PGLOBAL g, void* & value, short& type) { - if (trace) + if (trace(1)) htrc("PlugConvertConstant: value=%p type=%hd\n", value, type); if (type != TYPE_XOBJECT) { @@ -688,7 +666,7 @@ PDTP MakeDateFormat(PGLOBAL g, PCSZ dfmt, bool in, bool out, int flag) int rc; PDTP pdp = (PDTP)PlugSubAlloc(g, NULL, sizeof(DATPAR)); - if (trace) + if (trace(1)) htrc("MakeDateFormat: dfmt=%s\n", dfmt); memset(pdp, 0, sizeof(DATPAR)); @@ -711,7 +689,7 @@ PDTP MakeDateFormat(PGLOBAL g, PCSZ dfmt, bool in, bool out, int flag) rc = fmdflex(pdp); pthread_mutex_unlock(&parmut); - if (trace) + if (trace(1)) htrc("Done: in=%s out=%s rc=%d\n", SVP(pdp->InFmt), SVP(pdp->OutFmt), rc); return pdp; @@ -733,7 +711,7 @@ int ExtractDate(char *dts, PDTP pdp, int defy, int val[6]) else // assume standard MySQL date format fmt = "%4d-%2d-%2d %2d:%2d:%2d"; - if (trace > 1) + if (trace(2)) htrc("ExtractDate: dts=%s fmt=%s defy=%d\n", dts, fmt, defy); // Set default values for time only use @@ -816,7 +794,7 @@ int ExtractDate(char *dts, PDTP pdp, int defy, int val[6]) } // endfor i - if (trace > 1) + if (trace(2)) htrc("numval=%d val=(%d,%d,%d,%d,%d,%d)\n", numval, val[0], val[1], val[2], val[3], val[4], val[5]); @@ -833,18 +811,18 @@ FILE *PlugOpenFile(PGLOBAL g, LPCSTR fname, LPCSTR ftype) PFBLOCK fp; PDBUSER dbuserp = (PDBUSER)g->Activityp->Aptr; - if (trace) { + if (trace(1)) { htrc("PlugOpenFile: fname=%s ftype=%s\n", fname, ftype); htrc("dbuserp=%p\n", dbuserp); } // endif trace if ((fop= global_fopen(g, MSGID_OPEN_MODE_STRERROR, fname, ftype)) != NULL) { - if (trace) + if (trace(1)) htrc(" fop=%p\n", fop); fp = (PFBLOCK)PlugSubAlloc(g, NULL, sizeof(FBLOCK)); - if (trace) + if (trace(1)) htrc(" fp=%p\n", fp); // fname may be in volatile memory such as stack @@ -857,7 +835,7 @@ FILE *PlugOpenFile(PGLOBAL g, LPCSTR fname, LPCSTR ftype) dbuserp->Openlist = fp; } /* endif fop */ - if (trace) + if (trace(1)) htrc(" returning fop=%p\n", fop); return (fop); @@ -888,7 +866,7 @@ int PlugCloseFile(PGLOBAL g, PFBLOCK fp, bool all) { int rc = 0; - if (trace) + if (trace(1)) htrc("PlugCloseFile: fp=%p count=%hd type=%hd\n", fp, ((fp) ? fp->Count : 0), ((fp) ? fp->Type : 0)); @@ -1050,7 +1028,7 @@ int GetIniSize(char *section, char *key, char *def, char *ini) n *= 1024; } // endswitch c - if (trace) + if (trace(1)) htrc("GetIniSize: key=%s buff=%s i=%d n=%d\n", key, buff, i, n); return n; @@ -1086,7 +1064,7 @@ DllExport PSZ GetIniString(PGLOBAL g, void *mp, LPCSTR sec, LPCSTR key, p = (PSZ)PlugSubAlloc(g, mp, n + 1); - if (trace) + if (trace(1)) htrc("GetIniString: sec=%s key=%s buf=%s\n", sec, key, buf); strcpy(p, buf); @@ -1237,7 +1215,7 @@ char *GetExceptionDesc(PGLOBAL g, unsigned int e) /* so it can be freed at the normal or error query completion. */ /***********************************************************************/ void *PlgDBalloc(PGLOBAL g, void *area, MBLOCK& mp) - { +{ //bool b; size_t maxsub, minsub; void *arp = (area) ? area : g->Sarea; @@ -1253,7 +1231,7 @@ void *PlgDBalloc(PGLOBAL g, void *area, MBLOCK& mp) // done to check whether the block is already there. // b = mp.Sub; mp.Sub = false; // Restrict suballocation to one quarter - } // endif Memp + } // endif Memp // Suballoc when possible if mp.Sub is initially true, but leaving // a minimum amount of storage for future operations such as the @@ -1263,35 +1241,40 @@ void *PlgDBalloc(PGLOBAL g, void *area, MBLOCK& mp) maxsub = (pph->FreeBlk < minsub) ? 0 : pph->FreeBlk - minsub; mp.Sub = mp.Size <= ((mp.Sub) ? maxsub : (maxsub >> 2)); - if (trace > 1) - htrc("PlgDBalloc: in %p size=%d used=%d free=%d sub=%d\n", - arp, mp.Size, pph->To_Free, pph->FreeBlk, mp.Sub); + if (trace(2)) + htrc("PlgDBalloc: in %p size=%d used=%d free=%d sub=%d\n", + arp, mp.Size, pph->To_Free, pph->FreeBlk, mp.Sub); - if (!mp.Sub) { + if (!mp.Sub) { // For allocations greater than one fourth of remaining storage // in the area, do allocate from virtual storage. + const char*v = "malloc"; #if defined(__WIN__) - if (mp.Size >= BIGMEM) - mp.Memp = VirtualAlloc(NULL, mp.Size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); - else + if (mp.Size >= BIGMEM) { + v = "VirtualAlloc"; + mp.Memp = VirtualAlloc(NULL, mp.Size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); + } else #endif mp.Memp = malloc(mp.Size); - if (!mp.Inlist && mp.Memp) { + if (trace(8)) + htrc("PlgDBalloc: %s(%d) at %p\n", v, mp.Size, mp.Memp); + + if (!mp.Inlist && mp.Memp) { // New allocated block, put it in the memory block chain. PDBUSER dbuserp = (PDBUSER)g->Activityp->Aptr; mp.Next = dbuserp->Memlist; dbuserp->Memlist = ∓ mp.Inlist = true; - } // endif mp + } // endif mp } else // Suballocating is Ok. mp.Memp = PlugSubAlloc(g, area, mp.Size); return mp.Memp; - } // end of PlgDBalloc +} // end of PlgDBalloc /***********************************************************************/ /* PlgDBrealloc: reallocates memory conditionally. */ @@ -1306,7 +1289,7 @@ void *PlgDBrealloc(PGLOBAL g, void *area, MBLOCK& mp, size_t newsize) // assert (mp.Memp != NULL); #endif - if (trace > 1) + if (trace(2)) htrc("PlgDBrealloc: %p size=%d sub=%d\n", mp.Memp, mp.Size, mp.Sub); if (newsize == mp.Size) @@ -1326,10 +1309,14 @@ void *PlgDBrealloc(PGLOBAL g, void *area, MBLOCK& mp, size_t newsize) mp.Memp = PlugSubAlloc(g, area, newsize); memcpy(mp.Memp, m.Memp, MY_MIN(m.Size, newsize)); PlgDBfree(m); // Free the old block - } else if (!(mp.Memp = realloc(mp.Memp, newsize))) { - mp = m; // Possible only if newsize > Size - return NULL; // Failed - } // endif's + } else { + if (!(mp.Memp = realloc(mp.Memp, newsize))) { + mp = m; // Possible only if newsize > Size + return NULL; // Failed + } else if (trace(8)) + htrc("PlgDBrealloc: realloc(%ld) at %p\n", newsize, mp.Memp); + + } // endif's mp.Size = newsize; } else if (!mp.Sub || newsize > mp.Size) { @@ -1352,7 +1339,7 @@ void *PlgDBrealloc(PGLOBAL g, void *area, MBLOCK& mp, size_t newsize) } // endif's - if (trace) + if (trace(8)) htrc(" newsize=%d newp=%p sub=%d\n", mp.Size, mp.Memp, mp.Sub); return mp.Memp; @@ -1363,16 +1350,20 @@ void *PlgDBrealloc(PGLOBAL g, void *area, MBLOCK& mp, size_t newsize) /***********************************************************************/ void PlgDBfree(MBLOCK& mp) { - if (trace > 1) - htrc("PlgDBfree: %p sub=%d size=%d\n", mp.Memp, mp.Sub, mp.Size); - - if (!mp.Sub && mp.Memp) + if (!mp.Sub && mp.Memp) { + const char*v = "free"; #if defined(__WIN__) - if (mp.Size >= BIGMEM) - VirtualFree(mp.Memp, 0, MEM_RELEASE); - else + if (mp.Size >= BIGMEM) { + v = "VirtualFree"; + VirtualFree(mp.Memp, 0, MEM_RELEASE); + } else #endif - free(mp.Memp); + free(mp.Memp); + + if (trace(8)) + htrc("PlgDBfree: %s(%p) size=%d\n", v, mp.Memp, mp.Size); + + } // endif mp // Do not reset Next to avoid cutting the Mblock chain mp.Memp = NULL; @@ -1384,7 +1375,7 @@ void PlgDBfree(MBLOCK& mp) /* Program for sub-allocating one item in a storage area. */ /* Note: This function is equivalent to PlugSubAlloc except that in */ /* case of insufficient memory, it returns NULL instead of doing a */ -/* long jump. The caller must test the return value for error. */ +/* throw. The caller must test the return value for error. */ /***********************************************************************/ void *PlgDBSubAlloc(PGLOBAL g, void *memp, size_t size) { @@ -1400,7 +1391,7 @@ void *PlgDBSubAlloc(PGLOBAL g, void *memp, size_t size) size = ((size + 7) / 8) * 8; /* Round up size to multiple of 8 */ pph = (PPOOLHEADER)memp; - if (trace > 1) + if (trace(16)) htrc("PlgDBSubAlloc: memp=%p size=%d used=%d free=%d\n", memp, size, pph->To_Free, pph->FreeBlk); @@ -1409,7 +1400,7 @@ void *PlgDBSubAlloc(PGLOBAL g, void *memp, size_t size) "Not enough memory in Work area for request of %d (used=%d free=%d)", (int) size, pph->To_Free, pph->FreeBlk); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return NULL; @@ -1422,7 +1413,7 @@ void *PlgDBSubAlloc(PGLOBAL g, void *memp, size_t size) pph->To_Free += size; // New offset of pool free block pph->FreeBlk -= size; // New size of pool free block - if (trace > 1) + if (trace(16)) htrc("Done memp=%p used=%d free=%d\n", memp, pph->To_Free, pph->FreeBlk); @@ -1453,7 +1444,7 @@ void PlugPutOut(PGLOBAL g, FILE *f, short t, void *v, uint n) { char m[64]; - if (trace) + if (trace(1)) htrc("PUTOUT: f=%p t=%d v=%p n=%d\n", f, t, v, n); if (!v) diff --git a/storage/connect/plugutil.cpp b/storage/connect/plugutil.cpp index e9ba1682e69..887527e38ab 100644 --- a/storage/connect/plugutil.cpp +++ b/storage/connect/plugutil.cpp @@ -136,7 +136,7 @@ PGLOBAL PlugInit(LPCSTR Language, uint worksize) { PGLOBAL g; - if (trace > 1) + if (trace(2)) htrc("PlugInit: Language='%s'\n", ((!Language) ? "Null" : (char*)Language)); @@ -162,7 +162,7 @@ PGLOBAL PlugInit(LPCSTR Language, uint worksize) /*******************************************************************/ if (worksize && AllocSarea(g, worksize)) { char errmsg[MAX_STR]; - sprintf(errmsg, MSG(WORK_AREA), g->Message); + snprintf(errmsg, sizeof(errmsg) - 1, MSG(WORK_AREA), g->Message); strcpy(g->Message, errmsg); } // endif Sarea @@ -205,7 +205,7 @@ LPSTR PlugRemoveType(LPSTR pBuff, LPCSTR FileName) _splitpath(FileName, drive, direc, fname, ftype); - if (trace > 1) { + if (trace(2)) { htrc("after _splitpath: FileName=%s\n", FileName); htrc("drive=%s dir=%s fname=%s ext=%s\n", SVP(drive), direc, fname, ftype); @@ -213,7 +213,7 @@ LPSTR PlugRemoveType(LPSTR pBuff, LPCSTR FileName) _makepath(pBuff, drive, direc, fname, ""); - if (trace > 1) + if (trace(2)) htrc("buff='%s'\n", pBuff); return pBuff; @@ -246,7 +246,7 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath) char *drive = NULL, *defdrv = NULL; #endif - if (trace > 1) + if (trace(2)) htrc("prefix=%s fn=%s path=%s\n", prefix, FileName, defpath); if (!strncmp(FileName, "//", 2) || !strncmp(FileName, "\\\\", 2)) { @@ -263,7 +263,7 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath) #if !defined(__WIN__) if (*FileName == '~') { if (_fullpath(pBuff, FileName, _MAX_PATH)) { - if (trace > 1) + if (trace(2)) htrc("pbuff='%s'\n", pBuff); return pBuff; @@ -298,7 +298,7 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath) _splitpath(tmpdir, defdrv, defdir, NULL, NULL); - if (trace > 1) { + if (trace(2)) { htrc("after _splitpath: FileName=%s\n", FileName); #if defined(__WIN__) htrc("drive=%s dir=%s fname=%s ext=%s\n", drive, direc, fname, ftype); @@ -325,11 +325,11 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath) _makepath(newname, drive, direc, fname, ftype); - if (trace > 1) + if (trace(2)) htrc("newname='%s'\n", newname); if (_fullpath(pBuff, newname, _MAX_PATH)) { - if (trace > 1) + if (trace(2)) htrc("pbuff='%s'\n", pBuff); return pBuff; @@ -470,7 +470,7 @@ bool AllocSarea(PGLOBAL g, uint size) #if defined(DEVELOPMENT) if (true) { #else - if (trace) { + if (trace(8)) { #endif if (g->Sarea) htrc("Work area of %u allocated at %p\n", size, g->Sarea); @@ -498,7 +498,7 @@ void FreeSarea(PGLOBAL g) #if defined(DEVELOPMENT) if (true) #else - if (trace) + if (trace(8)) #endif htrc("Freeing Sarea at %p size = %d\n", g->Sarea, g->Sarea_Size); @@ -545,7 +545,7 @@ void *PlugSubAlloc(PGLOBAL g, void *memp, size_t size) size = ((size + 7) / 8) * 8; /* Round up size to multiple of 8 */ pph = (PPOOLHEADER)memp; - if (trace > 3) + if (trace(16)) htrc("SubAlloc in %p size=%d used=%d free=%d\n", memp, size, pph->To_Free, pph->FreeBlk); @@ -556,10 +556,10 @@ void *PlugSubAlloc(PGLOBAL g, void *memp, size_t size) "Not enough memory in %s area for request of %u (used=%d free=%d)", pname, (uint)size, pph->To_Free, pph->FreeBlk); - if (trace) + if (trace(1)) htrc("PlugSubAlloc: %s\n", g->Message); - throw 1234; + throw 1234; } /* endif size OS32 code */ /*********************************************************************/ @@ -569,7 +569,7 @@ void *PlugSubAlloc(PGLOBAL g, void *memp, size_t size) pph->To_Free += (OFFSET)size; /* New offset of pool free block */ pph->FreeBlk -= (uint)size; /* New size of pool free block */ - if (trace > 3) + if (trace(16)) htrc("Done memp=%p used=%d free=%d\n", memp, pph->To_Free, pph->FreeBlk); diff --git a/storage/connect/preparse.h b/storage/connect/preparse.h index f16624548fb..3db7a2af1cd 100644 --- a/storage/connect/preparse.h +++ b/storage/connect/preparse.h @@ -8,7 +8,7 @@ /***********************************************************************/ typedef struct _datpar { const char *Format; // Points to format to decode - char *Curp; // Points to current parsing position + const char *Curp; // Points to current parsing position char *InFmt; // Start of input format char *OutFmt; // Start of output format int Index[8]; // Indexes of date values diff --git a/storage/connect/rcmsg.c b/storage/connect/rcmsg.c index 75759e03314..895f8f5862b 100644 --- a/storage/connect/rcmsg.c +++ b/storage/connect/rcmsg.c @@ -27,9 +27,9 @@ char *msglang(void); -char *GetMsgid(int id) +const char *GetMsgid(int id) { - char *p = NULL; + const char *p = NULL; // This conditional until a real fix is found for MDEV-7304 #if defined(FRENCH) @@ -55,7 +55,8 @@ char *GetMsgid(int id) int GetRcString(int id, char *buf, int bufsize) { - char *p = NULL, msg[32]; + const char *p = NULL; + char msg[32]; if (!(p = GetMsgid(id))) { sprintf(msg, "ID=%d unknown", id); diff --git a/storage/connect/rcmsg.h b/storage/connect/rcmsg.h index b22e77f5175..499ca3b2dd4 100644 --- a/storage/connect/rcmsg.h +++ b/storage/connect/rcmsg.h @@ -5,7 +5,7 @@ extern "C" { #endif -char *GetMsgid(int id); +const char *GetMsgid(int id); int GetRcString(int id, char *buf, int bufsize); #ifdef __cplusplus diff --git a/storage/connect/reldef.cpp b/storage/connect/reldef.cpp index 031fdebe650..e4f169575f8 100644 --- a/storage/connect/reldef.cpp +++ b/storage/connect/reldef.cpp @@ -450,7 +450,7 @@ int TABDEF::GetColCatInfo(PGLOBAL g) } // endswitch tc // lrecl must be at least recln to avoid buffer overflow - if (trace) + if (trace(1)) htrc("Lrecl: Calculated=%d defined=%d\n", recln, Hc->GetIntegerOption("Lrecl")); @@ -547,14 +547,12 @@ PTABDEF OEMDEF::GetXdef(PGLOBAL g) } // endif dladdr #endif // 0 - // Is the library already loaded? - if (!Hdll && !(Hdll = dlopen(soname, RTLD_NOLOAD))) - // Load the desired shared library - if (!(Hdll = dlopen(soname, RTLD_LAZY))) { - error = dlerror(); - sprintf(g->Message, MSG(SHARED_LIB_ERR), soname, SVP(error)); - return NULL; - } // endif Hdll + // Load the desired shared library + if (!Hdll && !(Hdll = dlopen(soname, RTLD_LAZY))) { + error = dlerror(); + sprintf(g->Message, MSG(SHARED_LIB_ERR), soname, SVP(error)); + return NULL; + } // endif Hdll // The exported name is always in uppercase for (int i = 0; ; i++) { diff --git a/storage/connect/tabcol.cpp b/storage/connect/tabcol.cpp index 5065d86ce6a..93de0598fe8 100644 --- a/storage/connect/tabcol.cpp +++ b/storage/connect/tabcol.cpp @@ -33,7 +33,7 @@ XTAB::XTAB(LPCSTR name, LPCSTR srcdef) : Name(name) Schema = NULL; Qualifier = NULL; - if (trace) + if (trace(1)) htrc("XTAB: making new TABLE %s %s\n", Name, Srcdef); } // end of XTAB constructor @@ -49,7 +49,7 @@ XTAB::XTAB(PTABLE tp) : Name(tp->Name) Schema = tp->Schema; Qualifier = tp->Qualifier; - if (trace) + if (trace(1)) htrc(" making copy TABLE %s %s\n", Name, SVP(Srcdef)); } // end of XTAB constructor @@ -61,7 +61,7 @@ PTABLE XTAB::Link(PTABLE tab2) { PTABLE tabp; - if (trace) + if (trace(1)) htrc("Linking tables %s... to %s\n", Name, tab2->Name); for (tabp = this; tabp->Next; tabp = tabp->Next) ; @@ -117,7 +117,7 @@ COLUMN::COLUMN(LPCSTR name) : Name(name) To_Col = NULL; Qualifier = NULL; - if (trace) + if (trace(1)) htrc(" making new COLUMN %s\n", Name); } // end of COLUMN constructor diff --git a/storage/connect/tabdos.cpp b/storage/connect/tabdos.cpp index 5b9667a6c84..29cbbb35765 100644 --- a/storage/connect/tabdos.cpp +++ b/storage/connect/tabdos.cpp @@ -704,7 +704,7 @@ int TDBDOS::MakeBlockValues(PGLOBAL g) // savmin = cdp->GetBmap(); // cdp->SetBmap(PlugSubAlloc(g, NULL, block * sizeof(int))); - if (trace) + if (trace(1)) htrc("Dval(%p) Bmap(%p) col(%d) %s Block=%d lg=%d\n", cdp->GetDval(), cdp->GetBmap(), i, cdp->GetName(), block, lg); @@ -729,7 +729,7 @@ int TDBDOS::MakeBlockValues(PGLOBAL g) memset(cdp->GetMax(), 0, block * lg); } // endif Type - if (trace) + if (trace(1)) htrc("min(%p) max(%p) col(%d) %s Block=%d lg=%d\n", cdp->GetMin(), cdp->GetMax(), i, cdp->GetName(), block, lg); @@ -901,7 +901,7 @@ bool TDBDOS::SaveBlockValues(PGLOBAL g) "wb", (int)errno, filename); strcat(strcat(g->Message, ": "), strerror(errno)); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); return true; @@ -1634,7 +1634,7 @@ int TDBDOS::TestBlock(PGLOBAL g) To_Filter = NULL; // So remove filter } // endswitch Beval - if (trace) + if (trace(1)) htrc("BF Eval Beval=%d\n", Beval); } // endif To_BlkFil @@ -1647,8 +1647,8 @@ int TDBDOS::TestBlock(PGLOBAL g) /***********************************************************************/ int TDBDOS::MakeIndex(PGLOBAL g, PIXDEF pxdf, bool add) { - int k, n, rc = RC_OK; - bool fixed, doit, sep, b = (pxdf != NULL); + int k, n, rc = RC_OK; + bool fixed, doit, sep, b = (pxdf != NULL); PCOL *keycols, colp; PIXDEF xdp, sxp = NULL; PKPDEF kdp; @@ -1694,8 +1694,8 @@ int TDBDOS::MakeIndex(PGLOBAL g, PIXDEF pxdf, bool add) try { // Allocate all columns that will be used by indexes. - // This must be done before opening the table so specific - // column initialization can be done (in particular by TDBVCT) + // This must be done before opening the table so specific + // column initialization can be done (in particular by TDBVCT) for (n = 0, xdp = pxdf; xdp; xdp = xdp->GetNext()) for (kdp = xdp->GetToKeyParts(); kdp; kdp = kdp->GetNext()) { if (!(colp = ColDB(g, kdp->GetName(), 0))) { @@ -1779,7 +1779,7 @@ int TDBDOS::MakeIndex(PGLOBAL g, PIXDEF pxdf, bool add) return RC_INFO; // Error or Physical table does not exist } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); rc = RC_FX; } catch (const char *msg) { @@ -1902,7 +1902,7 @@ bool TDBDOS::InitialyzeIndex(PGLOBAL g, volatile PIXDEF xdp, bool sorted) } // endif brc } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); brc = true; } catch (const char *msg) { @@ -2001,7 +2001,7 @@ int TDBDOS::Cardinality(PGLOBAL g) if (len >= 0) { int rec; - if (trace) + if (trace(1)) htrc("Estimating lines len=%d ending=%d/n", len, ((PDOSDEF)To_Def)->Ending); @@ -2018,7 +2018,7 @@ int TDBDOS::Cardinality(PGLOBAL g) Cardinal = (len + rec - 1) / rec; - if (trace) + if (trace(1)) htrc("avglen=%d MaxSize%d\n", rec, Cardinal); } // endif len @@ -2048,7 +2048,7 @@ int TDBDOS::GetMaxSize(PGLOBAL g) if (len >= 0) { int rec; - if (trace) + if (trace(1)) htrc("Estimating lines len=%d ending=%d/n", len, ((PDOSDEF)To_Def)->Ending); @@ -2059,7 +2059,7 @@ int TDBDOS::GetMaxSize(PGLOBAL g) rec = EstimatedLength() + ((PDOSDEF)To_Def)->Ending; MaxSize = (len + rec - 1) / rec; - if (trace) + if (trace(1)) htrc("avglen=%d MaxSize%d\n", rec, MaxSize); } // endif len @@ -2108,7 +2108,7 @@ bool TDBDOS::IsUsingTemp(PGLOBAL) /***********************************************************************/ bool TDBDOS::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("DOS OpenDB: tdbp=%p tdb=R%d use=%d mode=%d\n", this, Tdb_No, Use, Mode); @@ -2184,7 +2184,7 @@ bool TDBDOS::OpenDB(PGLOBAL g) } else memset(To_Line, 0, linelen); - if (trace) + if (trace(1)) htrc("OpenDos: R%hd mode=%d To_Line=%p\n", Tdb_No, Mode, To_Line); if (SkipHeader(g)) // When called from CSV/FMT files @@ -2202,7 +2202,7 @@ bool TDBDOS::OpenDB(PGLOBAL g) /***********************************************************************/ int TDBDOS::ReadDB(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("DOS ReadDB: R%d Mode=%d key=%p link=%p Kindex=%p To_Line=%p\n", GetTdb_No(), Mode, To_Key_Col, To_Link, To_Kindex, To_Line); @@ -2227,7 +2227,7 @@ int TDBDOS::ReadDB(PGLOBAL g) if (SetRecpos(g, recpos)) return RC_FX; - if (trace > 1) + if (trace(2)) htrc("File position is now %d\n", GetRecpos()); if (Mode == MODE_READ) @@ -2243,7 +2243,7 @@ int TDBDOS::ReadDB(PGLOBAL g) } // endif To_Kindex - if (trace > 1) + if (trace(2)) htrc(" ReadDB: this=%p To_Line=%p\n", this, To_Line); /*********************************************************************/ @@ -2279,14 +2279,14 @@ bool TDBDOS::PrepareWriting(PGLOBAL) /***********************************************************************/ int TDBDOS::WriteDB(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("DOS WriteDB: R%d Mode=%d \n", Tdb_No, Mode); // Make the line to write if (PrepareWriting(g)) return RC_FX; - if (trace > 1) + if (trace(2)) htrc("Write: line is='%s'\n", To_Line); // Now start the writing process @@ -2403,7 +2403,7 @@ DOSCOL::DOSCOL(PGLOBAL g, PCOLDEF cdp, PTDB tp, PCOL cp, int i, PCSZ am) Dcm = (*p) ? atoi(p) : GetScale(); } // endif fmt - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); } // end of DOSCOL constructor @@ -2518,7 +2518,7 @@ void DOSCOL::ReadColumn(PGLOBAL g) double dval; PTDBDOS tdbp = (PTDBDOS)To_Tdb; - if (trace > 1) + if (trace(2)) htrc( "DOS ReadColumn: col %s R%d coluse=%.4X status=%.4X buf_type=%d\n", Name, tdbp->GetTdb_No(), ColUse, Status, Buf_Type); @@ -2607,13 +2607,13 @@ void DOSCOL::WriteColumn(PGLOBAL g) int i, k, len, field; PTDBDOS tdbp = (PTDBDOS)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("DOS WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, tdbp->GetTdb_No(), ColUse, Status); p = tdbp->To_Line + Deplac; - if (trace > 1) + if (trace(2)) htrc("Lrecl=%d deplac=%d int=%d\n", tdbp->Lrecl, Deplac, Long); field = Long; @@ -2630,7 +2630,7 @@ void DOSCOL::WriteColumn(PGLOBAL g) } // endif Ftype - if (trace > 1) + if (trace(2)) htrc("Long=%d field=%d coltype=%d colval=%p\n", Long, field, Buf_Type, Value); @@ -2703,7 +2703,7 @@ void DOSCOL::WriteColumn(PGLOBAL g) } else // Standard CONNECT format p2 = Value->ShowValue(Buf, field); - if (trace) + if (trace(1)) htrc("new length(%p)=%d\n", p2, strlen(p2)); if ((len = strlen(p2)) > field) { @@ -2714,7 +2714,7 @@ void DOSCOL::WriteColumn(PGLOBAL g) if (p2[i] == '.') p2[i] = Dsp; - if (trace > 1) + if (trace(2)) htrc("buffer=%s\n", p2); /*******************************************************************/ @@ -2724,7 +2724,7 @@ void DOSCOL::WriteColumn(PGLOBAL g) memset(p, ' ', field); memcpy(p, p2, len); - if (trace > 1) + if (trace(2)) htrc(" col write: '%.*s'\n", len, p); } // endif Use @@ -2881,4 +2881,3 @@ bool DOSCOL::AddDistinctValue(PGLOBAL g) } // end of AddDistinctValue /* ------------------------------------------------------------------- */ - diff --git a/storage/connect/tabdos.h b/storage/connect/tabdos.h index 948b357dc1f..bdde37adaad 100644 --- a/storage/connect/tabdos.h +++ b/storage/connect/tabdos.h @@ -29,6 +29,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ friend class TXTFAM; friend class DBFBASE; friend class UNZIPUTL; + friend class JSONCOL; public: // Constructor DOSDEF(void); diff --git a/storage/connect/tabext.cpp b/storage/connect/tabext.cpp index a75b373b564..64d401bef15 100644 --- a/storage/connect/tabext.cpp +++ b/storage/connect/tabext.cpp @@ -433,7 +433,7 @@ bool TDBEXT::MakeSQL(PGLOBAL g, bool cnt) } else Query->Resize(len); - if (trace) + if (trace(33)) htrc("Query=%s\n", Query->GetStr()); return false; @@ -527,7 +527,7 @@ bool TDBEXT::MakeCommand(PGLOBAL g) return true; } // endif p - if (trace) + if (trace(33)) htrc("Command=%s\n", stmt); Query = new(g)STRING(g, 0, stmt); @@ -585,7 +585,7 @@ EXTCOL::EXTCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) tdbp->SetColumns(this); } // endif cprec - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); // Set additional remote access method information for column. diff --git a/storage/connect/tabfix.cpp b/storage/connect/tabfix.cpp index a78d5861e53..1969fd4465f 100644 --- a/storage/connect/tabfix.cpp +++ b/storage/connect/tabfix.cpp @@ -291,7 +291,7 @@ bool TDBFIX::IsUsingTemp(PGLOBAL) /***********************************************************************/ bool TDBFIX::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("FIX OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d Ftype=%d\n", this, Tdb_No, Use, To_Key_Col, Mode, Ftype); @@ -345,7 +345,7 @@ bool TDBFIX::OpenDB(PGLOBAL g) /*********************************************************************/ To_BlkFil = InitBlockFilter(g, To_Filter); - if (trace) + if (trace(1)) htrc("OpenFix: R%hd mode=%d BlkFil=%p\n", Tdb_No, Mode, To_BlkFil); /*********************************************************************/ @@ -474,7 +474,7 @@ void BINCOL::ReadColumn(PGLOBAL g) int rc; PTDBFIX tdbp = (PTDBFIX)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("BIN ReadColumn: col %s R%d coluse=%.4X status=%.4X buf_type=%d\n", Name, tdbp->GetTdb_No(), ColUse, Status, Buf_Type); @@ -565,7 +565,7 @@ void BINCOL::WriteColumn(PGLOBAL g) longlong n; PTDBFIX tdbp = (PTDBFIX)To_Tdb; - if (trace) { + if (trace(1)) { htrc("BIN WriteColumn: col %s R%d coluse=%.4X status=%.4X", Name, tdbp->GetTdb_No(), ColUse, Status); htrc(" Lrecl=%d\n", tdbp->Lrecl); diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index 516601a5eb4..63fa2a63668 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -185,7 +185,7 @@ PQRYRES CSVColumns(PGLOBAL g, PCSZ dp, PTOS topt, bool info) mxr = MY_MAX(0, tdp->Maxerr); - if (trace) + if (trace(1)) htrc("File %s Sep=%c Qot=%c Header=%d maxerr=%d\n", SVP(tdp->Fn), tdp->Sep, tdp->Qot, tdp->Header, tdp->Maxerr); @@ -379,7 +379,7 @@ PQRYRES CSVColumns(PGLOBAL g, PCSZ dp, PTOS topt, bool info) skip: ; // Skip erroneous line } // endfor num_read - if (trace) { + if (trace(1)) { htrc("imax=%d Lengths:", imax); for (i = 0; i < imax; i++) @@ -391,7 +391,7 @@ PQRYRES CSVColumns(PGLOBAL g, PCSZ dp, PTOS topt, bool info) tdbp->CloseDB(g); skipit: - if (trace) + if (trace(1)) htrc("CSVColumns: imax=%d hmax=%d len=%d\n", imax, hmax, length[0]); @@ -701,7 +701,7 @@ int TDBCSV::EstimatedLength(void) int n = 0; PCOLDEF cdp; - if (trace) + if (trace(1)) htrc("EstimatedLength: Fields=%d Columns=%p\n", Fields, Columns); for (cdp = To_Def->GetCols(); cdp; cdp = cdp->GetNext()) @@ -906,7 +906,7 @@ int TDBCSV::ReadBuffer(PGLOBAL g) int i, n, len, rc = Txfp->ReadBuffer(g); bool bad = false; - if (trace > 1) + if (trace(2)) htrc("CSV: Row is '%s' rc=%d\n", To_Line, rc); if (rc != RC_OK || !Fields) @@ -934,7 +934,7 @@ int TDBCSV::ReadBuffer(PGLOBAL g) if (p) { //len = p++ - p2; - len = p - p2 - 1;; + len = (int)(p - p2 - 1); // if (Sep != ' ') // for (; *p == ' '; p++) ; // Skip blanks @@ -978,7 +978,7 @@ int TDBCSV::ReadBuffer(PGLOBAL g) return RC_NF; } else if ((p = strchr(p2, Sep))) - len = p - p2; + len = (int)(p - p2); else if (i == Fields - 1) len = strlen(p2); else if (Accept && Maxerr == 0) { @@ -996,7 +996,7 @@ int TDBCSV::ReadBuffer(PGLOBAL g) } else len = 0; - Offset[i] = p2 - To_Line; + Offset[i] = (int)(p2 - To_Line); if (Mode != MODE_UPDATE) Fldlen[i] = len; @@ -1024,7 +1024,7 @@ bool TDBCSV::PrepareWriting(PGLOBAL g) char sep[2], qot[2]; int i, nlen, oldlen = strlen(To_Line); - if (trace > 1) + if (trace(2)) htrc("CSV WriteDB: R%d Mode=%d key=%p link=%p\n", Tdb_No, Mode, To_Key_Col, To_Link); @@ -1090,7 +1090,7 @@ bool TDBCSV::PrepareWriting(PGLOBAL g) To_Line[nlen] = '\0'; } // endif - if (trace > 1) + if (trace(2)) htrc("Write: line is=%s", To_Line); return false; @@ -1118,7 +1118,7 @@ int TDBCSV::CheckWrite(PGLOBAL g) { int maxlen, n, nlen = (Fields - 1); - if (trace > 1) + if (trace(2)) htrc("CheckWrite: R%d Mode=%d\n", Tdb_No, Mode); // Before writing the line we must check its length @@ -1290,7 +1290,7 @@ int TDBFMT::ReadBuffer(PGLOBAL g) else ++Linenum; - if (trace > 1) + if (trace(2)) htrc("FMT: Row %d is '%s' rc=%d\n", Linenum, To_Line, rc); // Find the offsets and lengths of the columns for this row @@ -1445,7 +1445,7 @@ void CSVCOL::ReadColumn(PGLOBAL g) Deplac = tdbp->Offset[Fldnum]; // Field offset Long = tdbp->Fldlen[Fldnum]; // Field length - if (trace > 1) + if (trace(2)) htrc("CSV ReadColumn %s Fldnum=%d offset=%d fldlen=%d\n", Name, Fldnum, Deplac, Long); @@ -1489,13 +1489,13 @@ void CSVCOL::WriteColumn(PGLOBAL g) int flen; PTDBCSV tdbp = (PTDBCSV)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("CSV WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, tdbp->GetTdb_No(), ColUse, Status); flen = GetLength(); - if (trace > 1) + if (trace(2)) htrc("Lrecl=%d Long=%d field=%d coltype=%d colval=%p\n", tdbp->Lrecl, Long, flen, Buf_Type, Value); @@ -1510,7 +1510,7 @@ void CSVCOL::WriteColumn(PGLOBAL g) /*********************************************************************/ p = Value->ShowValue(buf); - if (trace > 1) + if (trace(2)) htrc("new length(%p)=%d\n", p, strlen(p)); if ((signed)strlen(p) > flen) { @@ -1522,7 +1522,7 @@ void CSVCOL::WriteColumn(PGLOBAL g) if (p[i] == '.') p[i] = Dsp; - if (trace > 1) + if (trace(2)) htrc("buffer=%s\n", p); /*********************************************************************/ @@ -1536,7 +1536,7 @@ void CSVCOL::WriteColumn(PGLOBAL g) } else strncpy(tdbp->Field[Fldnum], p, flen); - if (trace > 1) + if (trace(2)) htrc(" col written: '%s'\n", p); } // end of WriteColumn diff --git a/storage/connect/tabjdbc.cpp b/storage/connect/tabjdbc.cpp index b6a1487955b..275b5edaeae 100644 --- a/storage/connect/tabjdbc.cpp +++ b/storage/connect/tabjdbc.cpp @@ -153,7 +153,7 @@ int JDBCDEF::ParseURL(PGLOBAL g, char *url, bool b) // Tabname = GetStringCatInfo(g, "Tabname", Tabname); } // endif - if (trace) + if (trace(1)) htrc("server: %s Tabname: %s", url, Tabname); // Now make the required URL @@ -470,7 +470,7 @@ bool TDBJDBC::MakeInsert(PGLOBAL g) else Prepared = true; - if (trace) + if (trace(33)) htrc("Insert=%s\n", Query->GetStr()); return false; @@ -553,7 +553,7 @@ bool TDBJDBC::OpenDB(PGLOBAL g) { bool rc = true; - if (trace) + if (trace(1)) htrc("JDBC OpenDB: tdbp=%p tdb=R%d use=%d mode=%d\n", this, Tdb_No, Use, Mode); @@ -572,7 +572,7 @@ bool TDBJDBC::OpenDB(PGLOBAL g) if (Memory < 3) { // Method will depend on cursor type - if ((Rbuf = Jcp->Rewind(Query->GetStr())) < 0) + if ((Rbuf = Query ? Jcp->Rewind(Query->GetStr()) : 0) < 0) if (Mode != MODE_READX) { Jcp->Close(); return true; @@ -605,6 +605,10 @@ bool TDBJDBC::OpenDB(PGLOBAL g) else if (Quoted) Quote = Jcp->GetQuoteChar(); + if (Mode != MODE_READ && Mode != MODE_READX) + if (Jcp->SetUUID(g, this)) + PushWarning(g, this, 1); + Use = USE_OPEN; // Do it now in case we are recursively called /*********************************************************************/ @@ -767,7 +771,7 @@ bool TDBJDBC::ReadKey(PGLOBAL g, OPVAL op, const key_range *kr) Mode = MODE_READ; } // endif's op - if (trace) + if (trace(33)) htrc("JDBC ReadKey: Query=%s\n", Query->GetStr()); rc = Jcp->ExecuteQuery((char*)Query->GetStr()); @@ -783,7 +787,7 @@ int TDBJDBC::ReadDB(PGLOBAL g) { int rc; - if (trace > 1) + if (trace(2)) htrc("JDBC ReadDB: R%d Mode=%d\n", GetTdb_No(), Mode); if (Mode == MODE_UPDATE || Mode == MODE_DELETE) { @@ -836,7 +840,7 @@ int TDBJDBC::ReadDB(PGLOBAL g) } // endif placed - if (trace > 1) + if (trace(2)) htrc(" Read: Rbuf=%d rc=%d\n", Rbuf, rc); return rc; @@ -897,7 +901,7 @@ int TDBJDBC::WriteDB(PGLOBAL g) Query->RepLast(')'); - if (trace > 1) + if (trace(2)) htrc("Inserting: %s\n", Query->GetStr()); rc = Jcp->ExecuteUpdate(Query->GetStr()); @@ -925,7 +929,7 @@ int TDBJDBC::DeleteDB(PGLOBAL g, int irc) AftRows = Jcp->m_Aff; sprintf(g->Message, "%s: %d affected rows", TableName, AftRows); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); PushWarning(g, this, 0); // 0 means a Note @@ -946,14 +950,14 @@ void TDBJDBC::CloseDB(PGLOBAL g) if (Jcp) Jcp->Close(); - if (trace) + if (trace(1)) htrc("JDBC CloseDB: closing %s\n", Name); if (!Werr && (Mode == MODE_INSERT || Mode == MODE_UPDATE || Mode == MODE_DELETE)) { sprintf(g->Message, "%s: %d affected rows", TableName, AftRows); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); PushWarning(g, this, 0); // 0 means a Note @@ -970,6 +974,7 @@ void TDBJDBC::CloseDB(PGLOBAL g) JDBCCOL::JDBCCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) : EXTCOL(cdp, tdbp, cprec, i, am) { + uuid = false; } // end of JDBCCOL constructor /***********************************************************************/ @@ -977,6 +982,7 @@ JDBCCOL::JDBCCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) /***********************************************************************/ JDBCCOL::JDBCCOL(void) : EXTCOL() { + uuid = false; } // end of JDBCCOL constructor /***********************************************************************/ @@ -985,12 +991,11 @@ JDBCCOL::JDBCCOL(void) : EXTCOL() /***********************************************************************/ JDBCCOL::JDBCCOL(JDBCCOL *col1, PTDB tdbp) : EXTCOL(col1, tdbp) { + uuid = col1->uuid; } // end of JDBCCOL copy constructor /***********************************************************************/ -/* ReadColumn: when SQLFetch is used there is nothing to do as the */ -/* column buffer was bind to the record set. This is also the case */ -/* when calculating MaxSize (Bufp is NULL even when Rows is not). */ +/* ReadColumn: retrieve the column value via the JDBC driver. */ /***********************************************************************/ void JDBCCOL::ReadColumn(PGLOBAL g) { @@ -1117,7 +1122,7 @@ bool TDBXJDC::OpenDB(PGLOBAL g) { bool rc = false; - if (trace) + if (trace(1)) htrc("JDBC OpenDB: tdbp=%p tdb=R%d use=%d mode=%d\n", this, Tdb_No, Use, Mode); diff --git a/storage/connect/tabjdbc.h b/storage/connect/tabjdbc.h index d422ed26ef2..078129a14e3 100644 --- a/storage/connect/tabjdbc.h +++ b/storage/connect/tabjdbc.h @@ -101,6 +101,7 @@ protected: /***********************************************************************/ class JDBCCOL : public EXTCOL { friend class TDBJDBC; + friend class JDBConn; public: // Constructors JDBCCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am = "JDBC"); @@ -119,6 +120,7 @@ protected: JDBCCOL(void); // Members + bool uuid; // For PostgreSQL }; // end of class JDBCCOL /***********************************************************************/ diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 8778b7d4b47..b66682e0190 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -54,16 +54,16 @@ USETEMP UseTemp(void); char *GetJsonNull(void); -typedef struct _jncol { - struct _jncol *Next; - char *Name; - char *Fmt; - int Type; - int Len; - int Scale; - bool Cbn; - bool Found; -} JCOL, *PJCL; +//typedef struct _jncol { +// struct _jncol *Next; +// char *Name; +// char *Fmt; +// int Type; +// int Len; +// int Scale; +// bool Cbn; +// bool Found; +//} JCOL, *PJCL; /***********************************************************************/ /* JSONColumns: construct the result blocks containing the description */ @@ -76,26 +76,13 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) static XFLD fldtyp[] = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE, FLD_NULL, FLD_FORMAT}; static unsigned int length[] = {0, 6, 8, 10, 10, 6, 6, 0}; - char *p, colname[65], fmt[129]; - int i, j, lvl, n = 0; + int i, n = 0; int ncol = sizeof(buftyp) / sizeof(int); - bool mgo = (GetTypeID(topt->type) == TAB_MONGO); - PCSZ sep, level; - PVAL valp; - JCOL jcol; - PJCL jcp, fjcp = NULL, pjcp = NULL; - PJPR *jrp, jpp; - PJSON jsp; - PJVAL jvp; - PJOB row; - PJDEF tdp; - TDBJSN *tjnp = NULL; - PJTDB tjsp = NULL; + PJCL jcp; + JSONDISC *pjdc = NULL; PQRYRES qrp; PCOLRES crp; - jcol.Name = jcol.Fmt = NULL; - if (info) { length[0] = 128; length[7] = 256; @@ -107,322 +94,13 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) return NULL; } // endif Multiple - /*********************************************************************/ - /* Open the input file. */ - /*********************************************************************/ - level = GetStringTableOption(g, topt, "Level", NULL); + pjdc = new(g) JSONDISC(g, length); - if (level) { - lvl = atoi(level); - lvl = (lvl > 16) ? 16 : lvl; - } else - lvl = 0; - - sep = GetStringTableOption(g, topt, "Separator", "."); - - tdp = new(g) JSONDEF; -#if defined(ZIP_SUPPORT) - tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); - tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); -#endif // ZIP_SUPPORT - tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); - - if (!(tdp->Database = SetPath(g, db))) + if (!(n = pjdc->GetColumns(g, db, dsn, topt))) return NULL; - tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); - tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; - tdp->Pretty = GetIntegerTableOption(g, topt, "Pretty", 2); - tdp->Xcol = GetStringTableOption(g, topt, "Expand", NULL); - tdp->Accept = GetBooleanTableOption(g, topt, "Accept", false); - tdp->Uri = (dsn && *dsn ? dsn : NULL); - - if (!tdp->Fn && !tdp->Uri) { - strcpy(g->Message, MSG(MISSING_FNAME)); - return NULL; - } // endif Fn - - if (trace) - htrc("File %s objname=%s pretty=%d lvl=%d\n", - tdp->Fn, tdp->Objname, tdp->Pretty, lvl); - - if (tdp->Uri) { -#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) - tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); - tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); - tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); - tdp->Options = (PSZ)GetStringTableOption(g, topt, "Colist", "all"); - tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); - tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); - tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); - tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", - (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); - tdp->Pretty = 0; -#else // !MONGO_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif // !MONGO_SUPPORT - } // endif Uri - - if (tdp->Pretty == 2) { - if (tdp->Zipped) { -#if defined(ZIP_SUPPORT) - tjsp = new(g) TDBJSON(tdp, new(g) UNZFAM(tdp)); -#else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return NULL; -#endif // !ZIP_SUPPORT - } else - tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); - - if (tjsp->MakeDocument(g)) - return NULL; - - jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL; - } else { - if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) - if (!mgo) { - sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty); - return NULL; - } else - tdp->Lrecl = 8192; // Should be enough - - tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); - - if (tdp->Zipped) { -#if defined(ZIP_SUPPORT) - tjnp = new(g)TDBJSN(tdp, new(g) UNZFAM(tdp)); -#else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return NULL; -#endif // !ZIP_SUPPORT - } else if (tdp->Uri) { - if (tdp->Driver && toupper(*tdp->Driver) == 'C') { -#if defined(CMGO_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); -#else - sprintf(g->Message, "Mongo %s Driver not available", "C"); - return NULL; -#endif - } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { -#if defined(JAVA_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); -#else - sprintf(g->Message, "Mongo %s Driver not available", "Java"); - return NULL; -#endif - } else { // Driver not specified -#if defined(CMGO_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); -#elif defined(JAVA_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); -#else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; -#endif - } // endif Driver - - } else - tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); - - tjnp->SetMode(MODE_READ); - - // Allocate the parse work memory - PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); - memset(G, 0, sizeof(GLOBAL)); - G->Sarea_Size = tdp->Lrecl * 10; - G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); - PlugSubSet(G, G->Sarea, G->Sarea_Size); - G->jump_level = 0; - tjnp->SetG(G); - - if (tjnp->OpenDB(g)) - return NULL; - - switch (tjnp->ReadDB(g)) { - case RC_EF: - strcpy(g->Message, "Void json table"); - case RC_FX: - goto err; - default: - jsp = tjnp->GetRow(); - } // endswitch ReadDB - - } // endif pretty - - if (!(row = (jsp) ? jsp->GetObject() : NULL)) { - strcpy(g->Message, "Can only retrieve columns from object rows"); - goto err; - } // endif row - - jcol.Next = NULL; - jcol.Found = true; - colname[64] = 0; - fmt[128] = 0; - - if (!tdp->Uri) { - *fmt = '$'; - fmt[1] = '.'; - p = fmt + 2; - } else - p = fmt; - - jrp = (PJPR*)PlugSubAlloc(g, NULL, sizeof(PJPR) * MY_MAX(lvl, 0)); - - /*********************************************************************/ - /* Analyse the JSON tree and define columns. */ - /*********************************************************************/ - for (i = 1; ; i++) { - for (jpp = row->GetFirst(); jpp; jpp = jpp->GetNext()) { - for (j = 0; j < lvl; j++) - jrp[j] = NULL; - - more: - strncpy(colname, jpp->GetKey(), 64); - *p = 0; - j = 0; - jvp = jpp->GetVal(); - - retry: - if ((valp = jvp ? jvp->GetValue() : NULL)) { - jcol.Type = valp->GetType(); - jcol.Len = valp->GetValLen(); - jcol.Scale = valp->GetValPrec(); - jcol.Cbn = valp->IsNull(); - } else if (!jvp || jvp->IsNull()) { - jcol.Type = TYPE_UNKNOWN; - jcol.Len = jcol.Scale = 0; - jcol.Cbn = true; - } else if (j < lvl) { - if (!*p) - strcat(fmt, colname); - - jsp = jvp->GetJson(); - - switch (jsp->GetType()) { - case TYPE_JOB: - if (!jrp[j]) - jrp[j] = jsp->GetFirst(); - - if (*jrp[j]->GetKey() != '$') { - strncat(strncat(fmt, sep, 128), jrp[j]->GetKey(), 128); - strncat(strncat(colname, "_", 64), jrp[j]->GetKey(), 64); - } // endif Key - - jvp = jrp[j]->GetVal(); - j++; - break; - case TYPE_JAR: - if (!tdp->Xcol || stricmp(tdp->Xcol, colname)) { - if (tdp->Uri) - strncat(strncat(fmt, sep, 128), "0", 128); - else - strncat(fmt, "[0]", 128); - - } else - strncat(fmt, (tdp->Uri ? sep : "[]"), 128); - - jvp = jsp->GetValue(0); - break; - default: - sprintf(g->Message, "Logical error after %s", fmt); - goto err; - } // endswitch jsp - - goto retry; - } else if (lvl >= 0) { - jcol.Type = TYPE_STRING; - jcol.Len = 256; - jcol.Scale = 0; - jcol.Cbn = true; - } else - continue; - - // Check whether this column was already found - for (jcp = fjcp; jcp; jcp = jcp->Next) - if (!strcmp(colname, jcp->Name)) - break; - - if (jcp) { - if (jcp->Type != jcol.Type) { - if (jcp->Type == TYPE_UNKNOWN) - jcp->Type = jcol.Type; - else if (jcol.Type != TYPE_UNKNOWN) - jcp->Type = TYPE_STRING; - - } // endif Type - - if (*p && (!jcp->Fmt || strlen(jcp->Fmt) < strlen(fmt))) { - jcp->Fmt = PlugDup(g, fmt); - length[7] = MY_MAX(length[7], strlen(fmt)); - } // endif fmt - - jcp->Len = MY_MAX(jcp->Len, jcol.Len); - jcp->Scale = MY_MAX(jcp->Scale, jcol.Scale); - jcp->Cbn |= jcol.Cbn; - jcp->Found = true; - } else if (jcol.Type != TYPE_UNKNOWN || tdp->Accept) { - // New column - jcp = (PJCL)PlugSubAlloc(g, NULL, sizeof(JCOL)); - *jcp = jcol; - jcp->Cbn |= (i > 1); - jcp->Name = PlugDup(g, colname); - length[0] = MY_MAX(length[0], strlen(colname)); - - if (*p) { - jcp->Fmt = PlugDup(g, fmt); - length[7] = MY_MAX(length[7], strlen(fmt)); - } else - jcp->Fmt = NULL; - - if (pjcp) { - jcp->Next = pjcp->Next; - pjcp->Next = jcp; - } else - fjcp = jcp; - - n++; - } // endif jcp - - pjcp = jcp; - - for (j = lvl - 1; j >= 0; j--) - if (jrp[j] && (jrp[j] = jrp[j]->GetNext())) - goto more; - - } // endfor jpp - - // Missing column can be null - for (jcp = fjcp; jcp; jcp = jcp->Next) { - jcp->Cbn |= !jcp->Found; - jcp->Found = false; - } // endfor jcp - - if (tdp->Pretty != 2) { - // Read next record - switch (tjnp->ReadDB(g)) { - case RC_EF: - jsp = NULL; - break; - case RC_FX: - goto err; - default: - jsp = tjnp->GetRow(); - } // endswitch ReadDB - - } else - jsp = tjsp->GetDoc()->GetValue(i); - - if (!(row = (jsp) ? jsp->GetObject() : NULL)) - break; - - } // endor i - - if (tdp->Pretty != 2) - tjnp->CloseDB(g); - skipit: - if (trace) + if (trace(1)) htrc("JSONColumns: n=%d len=%d\n", n, length[0]); /*********************************************************************/ @@ -443,7 +121,7 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) /*********************************************************************/ /* Now get the results into blocks. */ /*********************************************************************/ - for (i = 0, jcp = fjcp; jcp; i++, jcp = jcp->Next) { + for (i = 0, jcp = pjdc->fjcp; jcp; i++, jcp = jcp->Next) { if (jcp->Type == TYPE_UNKNOWN) jcp->Type = TYPE_STRING; // Void column @@ -472,13 +150,381 @@ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) /* Return the result pointer. */ /*********************************************************************/ return qrp; + } // end of JSONColumns + +/* -------------------------- Class JSONDISC ------------------------- */ + +/***********************************************************************/ +/* Class used to get the columns of a JSON table. */ +/***********************************************************************/ +JSONDISC::JSONDISC(PGLOBAL g, uint *lg) +{ + length = lg; + jcp = fjcp = pjcp = NULL; + tjnp = NULL; + jpp = NULL; + tjsp = NULL; + jsp = NULL; + row = NULL; + sep = NULL; + i = n = bf = ncol = lvl = 0; + all = false; +} // end of JSONDISC constructor + +int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) +{ + bool mgo = (GetTypeID(topt->type) == TAB_MONGO); + PCSZ level = GetStringTableOption(g, topt, "Level", NULL); + + if (level) { + lvl = atoi(level); + lvl = (lvl > 16) ? 16 : lvl; + } else + lvl = 0; + + sep = GetStringTableOption(g, topt, "Separator", "."); + + /*********************************************************************/ + /* Open the input file. */ + /*********************************************************************/ + tdp = new(g) JSONDEF; +#if defined(ZIP_SUPPORT) + tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); + tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); +#endif // ZIP_SUPPORT + tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); + + if (!(tdp->Database = SetPath(g, db))) + return NULL; + + tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); + tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; + tdp->Pretty = GetIntegerTableOption(g, topt, "Pretty", 2); + tdp->Xcol = GetStringTableOption(g, topt, "Expand", NULL); + tdp->Accept = GetBooleanTableOption(g, topt, "Accept", false); + tdp->Uri = (dsn && *dsn ? dsn : NULL); + + if (!tdp->Fn && !tdp->Uri) { + strcpy(g->Message, MSG(MISSING_FNAME)); + return 0; + } // endif Fn + + if (trace(1)) + htrc("File %s objname=%s pretty=%d lvl=%d\n", + tdp->Fn, tdp->Objname, tdp->Pretty, lvl); + + if (tdp->Uri) { +#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) + tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); + tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); + tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); + tdp->Options = (PSZ)GetStringTableOption(g, topt, "Colist", "all"); + tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); + tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); + tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); + tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", + (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); + tdp->Pretty = 0; +#else // !MONGO_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return 0; +#endif // !MONGO_SUPPORT + } // endif Uri + + if (tdp->Pretty == 2) { + if (tdp->Zipped) { +#if defined(ZIP_SUPPORT) + tjsp = new(g) TDBJSON(tdp, new(g) UNZFAM(tdp)); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return 0; +#endif // !ZIP_SUPPORT + } else + tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); + + if (tjsp->MakeDocument(g)) + return NULL; + + jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL; + } else { + if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) + if (!mgo) { + sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty); + return NULL; + } else + tdp->Lrecl = 8192; // Should be enough + + tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); + + if (tdp->Zipped) { +#if defined(ZIP_SUPPORT) + tjnp = new(g)TDBJSN(tdp, new(g) UNZFAM(tdp)); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else if (tdp->Uri) { + if (tdp->Driver && toupper(*tdp->Driver) == 'C') { +#if defined(CMGO_SUPPORT) + tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); +#else + sprintf(g->Message, "Mongo %s Driver not available", "C"); + return NULL; +#endif + } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { +#if defined(JAVA_SUPPORT) + tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); +#else + sprintf(g->Message, "Mongo %s Driver not available", "Java"); + return NULL; +#endif + } else { // Driver not specified +#if defined(CMGO_SUPPORT) + tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); +#elif defined(JAVA_SUPPORT) + tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); +#else + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; +#endif + } // endif Driver + + } else + tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); + + tjnp->SetMode(MODE_READ); + + // Allocate the parse work memory + PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); + memset(G, 0, sizeof(GLOBAL)); + G->Sarea_Size = tdp->Lrecl * 10; + G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); + PlugSubSet(G, G->Sarea, G->Sarea_Size); + G->jump_level = 0; + tjnp->SetG(G); + + if (tjnp->OpenDB(g)) + return NULL; + + switch (tjnp->ReadDB(g)) { + case RC_EF: + strcpy(g->Message, "Void json table"); + case RC_FX: + goto err; + default: + jsp = tjnp->GetRow(); + } // endswitch ReadDB + + } // endif pretty + + if (!(row = (jsp) ? jsp->GetObject() : NULL)) { + strcpy(g->Message, "Can only retrieve columns from object rows"); + goto err; + } // endif row + + all = GetBooleanTableOption(g, topt, "Fullarray", false); + jcol.Name = jcol.Fmt = NULL; + jcol.Next = NULL; + jcol.Found = true; + colname[0] = 0; + + if (!tdp->Uri) { + fmt[0] = '$'; + fmt[1] = '.'; + bf = 2; + } // endif Uri + + /*********************************************************************/ + /* Analyse the JSON tree and define columns. */ + /*********************************************************************/ + for (i = 1; ; i++) { + for (jpp = row->GetFirst(); jpp; jpp = jpp->GetNext()) { + strncpy(colname, jpp->GetKey(), 64); + fmt[bf] = 0; + + if (Find(g, jpp->GetVal(), MY_MIN(lvl, 0))) + goto err; + + } // endfor jpp + + // Missing column can be null + for (jcp = fjcp; jcp; jcp = jcp->Next) { + jcp->Cbn |= !jcp->Found; + jcp->Found = false; + } // endfor jcp + + if (tdp->Pretty != 2) { + // Read next record + switch (tjnp->ReadDB(g)) { + case RC_EF: + jsp = NULL; + break; + case RC_FX: + goto err; + default: + jsp = tjnp->GetRow(); + } // endswitch ReadDB + + } else + jsp = tjsp->GetDoc()->GetValue(i); + + if (!(row = (jsp) ? jsp->GetObject() : NULL)) + break; + + } // endfor i + + if (tdp->Pretty != 2) + tjnp->CloseDB(g); + + return n; err: - if (tdp->Pretty != 2) - tjnp->CloseDB(g); + if (tdp->Pretty != 2) + tjnp->CloseDB(g); + + return 0; +} // end of GetColumns + +bool JSONDISC::Find(PGLOBAL g, PJVAL jvp, int j) +{ + char *p, *pc = colname + strlen(colname); + int ars; + PJOB job; + PJAR jar; + + if ((valp = jvp ? jvp->GetValue() : NULL)) { + jcol.Type = valp->GetType(); + jcol.Len = valp->GetValLen(); + jcol.Scale = valp->GetValPrec(); + jcol.Cbn = valp->IsNull(); + } else if (!jvp || jvp->IsNull()) { + jcol.Type = TYPE_UNKNOWN; + jcol.Len = jcol.Scale = 0; + jcol.Cbn = true; + } else if (j < lvl) { + if (!fmt[bf]) + strcat(fmt, colname); + + p = fmt + strlen(fmt); + jsp = jvp->GetJson(); + + switch (jsp->GetType()) { + case TYPE_JOB: + job = (PJOB)jsp; + + for (PJPR jrp = job->GetFirst(); jrp; jrp = jrp->GetNext()) { + if (*jrp->GetKey() != '$') { + strncat(strncat(fmt, sep, 128), jrp->GetKey(), 128); + strncat(strncat(colname, "_", 64), jrp->GetKey(), 64); + } // endif Key + + if (Find(g, jrp->GetVal(), j + 1)) + return true; + + *p = *pc = 0; + } // endfor jrp + + return false; + case TYPE_JAR: + jar = (PJAR)jsp; + + if (all || (tdp->Xcol && !stricmp(tdp->Xcol, colname))) + ars = jar->GetSize(false); + else + ars = MY_MIN(jar->GetSize(false), 1); + + for (int k = 0; k < ars; k++) { + if (!tdp->Xcol || stricmp(tdp->Xcol, colname)) { + sprintf(buf, "%d", k); + + if (tdp->Uri) + strncat(strncat(fmt, sep, 128), buf, 128); + else + strncat(strncat(strncat(fmt, "[", 128), buf, 128), "]", 128); + + if (all) + strncat(strncat(colname, "_", 64), buf, 64); + + } else + strncat(fmt, (tdp->Uri ? sep : "[*]"), 128); + + if (Find(g, jar->GetValue(k), j)) + return true; + + *p = *pc = 0; + } // endfor k + + return false; + default: + sprintf(g->Message, "Logical error after %s", fmt); + return true; + } // endswitch Type + + } else if (lvl >= 0) { + jcol.Type = TYPE_STRING; + jcol.Len = 256; + jcol.Scale = 0; + jcol.Cbn = true; + } else + return false; + + AddColumn(g); + return false; +} // end of Find + +void JSONDISC::AddColumn(PGLOBAL g) +{ + bool b = fmt[bf] != 0; // True if formatted + + // Check whether this column was already found + for (jcp = fjcp; jcp; jcp = jcp->Next) + if (!strcmp(colname, jcp->Name)) + break; + + if (jcp) { + if (jcp->Type != jcol.Type) { + if (jcp->Type == TYPE_UNKNOWN) + jcp->Type = jcol.Type; + else if (jcol.Type != TYPE_UNKNOWN) + jcp->Type = TYPE_STRING; + + } // endif Type + + if (b && (!jcp->Fmt || strlen(jcp->Fmt) < strlen(fmt))) { + jcp->Fmt = PlugDup(g, fmt); + length[7] = MY_MAX(length[7], strlen(fmt)); + } // endif fmt + + jcp->Len = MY_MAX(jcp->Len, jcol.Len); + jcp->Scale = MY_MAX(jcp->Scale, jcol.Scale); + jcp->Cbn |= jcol.Cbn; + jcp->Found = true; + } else if (jcol.Type != TYPE_UNKNOWN || tdp->Accept) { + // New column + jcp = (PJCL)PlugSubAlloc(g, NULL, sizeof(JCOL)); + *jcp = jcol; + jcp->Cbn |= (i > 1); + jcp->Name = PlugDup(g, colname); + length[0] = MY_MAX(length[0], strlen(colname)); + + if (b) { + jcp->Fmt = PlugDup(g, fmt); + length[7] = MY_MAX(length[7], strlen(fmt)); + } else + jcp->Fmt = NULL; + + if (pjcp) { + jcp->Next = pjcp->Next; + pjcp->Next = jcp; + } else + fjcp = jcp; + + n++; + } // endif jcp + + pjcp = jcp; +} // end of AddColumn - return NULL; - } // end of JSONColumns /* -------------------------- Class JSONDEF -------------------------- */ @@ -513,6 +559,7 @@ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR, int poff) Limit = GetIntCatInfo("Limit", 10); Base = GetIntCatInfo("Base", 0) ? 1 : 0; Sep = *GetStringCatInfo(g, "Separator", "."); + Accept = GetBoolCatInfo("Accept", false); if (Uri = GetStringCatInfo(g, "Connect", NULL)) { #if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) @@ -1471,6 +1518,9 @@ void JSONCOL::ReadColumn(PGLOBAL g) if (!Tjp->SameRow || Xnod >= Tjp->SameRow) Value->SetValue_pval(GetColumnValue(g, Tjp->Row, 0)); + if (Xpd && Value->IsNull() && !((PJDEF)Tjp->To_Def)->Accept) + throw("Null expandable JSON value"); + // Set null when applicable if (!Nullable) Value->SetNull(false); @@ -1546,11 +1596,16 @@ PVAL JSONCOL::GetColumnValue(PGLOBAL g, PJSON row, int i) /***********************************************************************/ PVAL JSONCOL::ExpandArray(PGLOBAL g, PJAR arp, int n) { - int ars; + int ars = MY_MIN(Tjp->Limit, arp->size()); PJVAL jvp; JVALUE jval; - ars = MY_MIN(Tjp->Limit, arp->size()); + if (!ars) { + Value->Reset(); + Value->SetNull(true); + Tjp->NextSame = 0; + return Value; + } // endif ars if (!(jvp = arp->GetValue((Nodes[n].Rx = Nodes[n].Nx)))) { strcpy(g->Message, "Logical error expanding array"); @@ -1591,14 +1646,14 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) vp->Reset(); ars = MY_MIN(Tjp->Limit, arp->size()); - if (trace) + if (trace(1)) htrc("CalculateArray: size=%d op=%d nextsame=%d\n", ars, op, nextsame); for (i = 0; i < ars; i++) { jvrp = arp->GetValue(i); - if (trace) + if (trace(1)) htrc("i=%d nv=%d\n", i, nv); if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { @@ -1612,7 +1667,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) } else jvp = jvrp; - if (trace) + if (trace(1)) htrc("jvp=%s null=%d\n", jvp->GetString(g), jvp->IsNull() ? 1 : 0); @@ -1648,7 +1703,7 @@ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) if (err) vp->Reset(); - if (trace) { + if (trace(1)) { char buf(32); htrc("vp='%s' err=%d\n", diff --git a/storage/connect/tabjson.h b/storage/connect/tabjson.h index 17583cba333..0341c0f8aa0 100644 --- a/storage/connect/tabjson.h +++ b/storage/connect/tabjson.h @@ -15,6 +15,7 @@ enum JMODE {MODE_OBJECT, MODE_ARRAY, MODE_VALUE}; typedef class JSONDEF *PJDEF; typedef class TDBJSON *PJTDB; typedef class JSONCOL *PJCOL; +class TDBJSN; /***********************************************************************/ /* The JSON tree node. Can be an Object or an Array. */ @@ -29,6 +30,47 @@ typedef struct _jnode { int Nx; // Next to read row number } JNODE, *PJNODE; +typedef struct _jncol { + struct _jncol *Next; + char *Name; + char *Fmt; + int Type; + int Len; + int Scale; + bool Cbn; + bool Found; +} JCOL, *PJCL; + +/***********************************************************************/ +/* Class used to get the columns of a mongo collection. */ +/***********************************************************************/ +class JSONDISC : public BLOCK { +public: + // Constructor + JSONDISC(PGLOBAL g, uint *lg); + + // Functions + int GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt); + bool Find(PGLOBAL g, PJVAL jvp, int j); + void AddColumn(PGLOBAL g); + + // Members + JCOL jcol; + PJCL jcp, fjcp, pjcp; + PVAL valp; + PJDEF tdp; + TDBJSN *tjnp; + PJTDB tjsp; + PJPR jpp; + PJSON jsp; + PJOB row; + PCSZ sep; + char colname[65], fmt[129], buf[16]; + uint *length; + int i, n, bf, ncol, lvl; + bool all; +}; // end of JSONDISC + /***********************************************************************/ /* JSON table. */ /***********************************************************************/ @@ -36,13 +78,13 @@ class DllExport JSONDEF : public DOSDEF { /* Table description */ friend class TDBJSON; friend class TDBJSN; friend class TDBJCL; + friend class JSONDISC; #if defined(CMGO_SUPPORT) friend class CMGFAM; #endif // CMGO_SUPPORT #if defined(JAVA_SUPPORT) friend class JMGFAM; #endif // JAVA_SUPPORT - friend PQRYRES JSONColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool); public: // Constructor JSONDEF(void); diff --git a/storage/connect/table.cpp b/storage/connect/table.cpp index 61aefc93082..d4d3a34d67e 100644 --- a/storage/connect/table.cpp +++ b/storage/connect/table.cpp @@ -128,7 +128,7 @@ PCOL TDB::ColDB(PGLOBAL g, PSZ name, int num) PCOLDEF cdp; PCOL cp, colp = NULL, cprec = NULL; - if (trace) + if (trace(1)) htrc("ColDB: am=%d colname=%s tabname=%s num=%d\n", GetAmType(), SVP(name), Name, num); @@ -146,7 +146,7 @@ PCOL TDB::ColDB(PGLOBAL g, PSZ name, int num) else if (cp->GetIndex() < i) cprec = cp; - if (trace) + if (trace(1)) htrc("cdp(%d).Name=%s cp=%p\n", i, cdp->GetName(), cp); /*****************************************************************/ @@ -159,7 +159,7 @@ PCOL TDB::ColDB(PGLOBAL g, PSZ name, int num) else if (Mode != MODE_INSERT) colp = InsertSpcBlk(g, cdp); - if (trace) + if (trace(1)) htrc("colp=%p\n", colp); if (name || num) @@ -256,7 +256,7 @@ PCOL TDB::InsertSpcBlk(PGLOBAL g, PCOLDEF cdp) /***********************************************************************/ void TDB::MarkDB(PGLOBAL, PTDB tdb2) { - if (trace) + if (trace(1)) htrc("DOS MarkDB: tdbp=%p tdb2=%p\n", this, tdb2); } // end of MarkDB @@ -416,7 +416,7 @@ PCOL TDBASE::ColDB(PGLOBAL g, PSZ name, int num) PCOLDEF cdp; PCOL cp, colp = NULL, cprec = NULL; - if (trace) + if (trace(1)) htrc("ColDB: am=%d colname=%s tabname=%s num=%d\n", GetAmType(), SVP(name), Name, num); @@ -434,7 +434,7 @@ PCOL TDBASE::ColDB(PGLOBAL g, PSZ name, int num) else if (cp->GetIndex() < i) cprec = cp; - if (trace) + if (trace(1)) htrc("cdp(%d).Name=%s cp=%p\n", i, cdp->GetName(), cp); /*****************************************************************/ @@ -447,7 +447,7 @@ PCOL TDBASE::ColDB(PGLOBAL g, PSZ name, int num) else if (Mode != MODE_INSERT) colp = InsertSpcBlk(g, cdp); - if (trace) + if (trace(1)) htrc("colp=%p\n", colp); if (name || num) @@ -592,7 +592,7 @@ void TDBASE::PrintAM(FILE *f, char *m) /***********************************************************************/ void TDBASE::MarkDB(PGLOBAL, PTDB tdb2) { - if (trace) + if (trace(1)) htrc("DOS MarkDB: tdbp=%p tdb2=%p\n", this, tdb2); } // end of MarkDB diff --git a/storage/connect/tabmac.cpp b/storage/connect/tabmac.cpp index a28b5d7108c..8260ab65391 100644 --- a/storage/connect/tabmac.cpp +++ b/storage/connect/tabmac.cpp @@ -367,13 +367,13 @@ void MACCOL::ReadColumn(PGLOBAL g) case 11: // Description if ((p = strstr(adp->Description, " - Packet Scheduler Miniport"))) { strncpy(buf, adp->Description, p - adp->Description); - i = p - adp->Description; + i = (int)(p - adp->Description); strncpy(buf, adp->Description, i); buf[i] = 0; p = buf; } else if ((p = strstr(adp->Description, " - Miniport d'ordonnancement de paquets"))) { - i = p - adp->Description; + i = (int)(p - adp->Description); strncpy(buf, adp->Description, i); buf[i] = 0; p = buf; diff --git a/storage/connect/tabmul.cpp b/storage/connect/tabmul.cpp index 5c41f9094ac..649fc6706c6 100644 --- a/storage/connect/tabmul.cpp +++ b/storage/connect/tabmul.cpp @@ -134,7 +134,7 @@ bool TDBMUL::InitFileNames(PGLOBAL g) PSZ filename; int rc, n = 0; - if (trace) + if (trace(1)) htrc("in InitFileName: fn[]=%d\n", FNSZ); filename = (char*)PlugSubAlloc(g, NULL, FNSZ); @@ -144,7 +144,7 @@ bool TDBMUL::InitFileNames(PGLOBAL g) PlugSetPath(filename, Tdbp->GetFile(g), Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("InitFileName: fn='%s'\n", filename); if (Mul != 2) { @@ -159,7 +159,7 @@ bool TDBMUL::InitFileNames(PGLOBAL g) if (dirp->OpenDB(g)) return true; - if (trace && Mul == 3) { + if (trace(1) && Mul == 3) { int nf = ((PTDBSDR)dirp)->FindInDir(g); htrc("Number of files = %d\n", nf); } // endif trace @@ -203,12 +203,12 @@ bool TDBMUL::InitFileNames(PGLOBAL g) // Data files can be imported from Windows (having CRLF) if (*p == '\n' || *p == '\r') { // is this enough for Unix ??? - *p--; // Eliminate ending CR or LF character + p--; // Eliminate ending CR or LF character if (p >= filename) // is this enough for Unix ??? if (*p == '\n' || *p == '\r') - *p--; // Eliminate ending CR or LF character + p--; // Eliminate ending CR or LF character } // endif p @@ -319,7 +319,7 @@ int TDBMUL::GetMaxSize(PGLOBAL g) int i; int mxsz; - if (trace) + if (trace(1)) htrc("TDBMUL::GetMaxSize: Filenames=%p\n", Filenames); if (!Filenames && InitFileNames(g)) @@ -375,7 +375,7 @@ int TDBMUL::RowNumber(PGLOBAL g, bool b) /***********************************************************************/ bool TDBMUL::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("MUL OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d\n", this, Tdb_No, Use, To_Key_Col, Mode); @@ -546,7 +546,7 @@ bool TDBMSD::InitFileNames(PGLOBAL g) PSZ filename; int rc, n = 0; - if (trace) + if (trace(1)) htrc("in InitFileName: fn[]=%d\n", FNSZ); filename = (char*)PlugSubAlloc(g, NULL, FNSZ); @@ -556,7 +556,7 @@ bool TDBMSD::InitFileNames(PGLOBAL g) PlugSetPath(filename, Tdbp->GetFile(g), Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("InitFileName: fn='%s'\n", filename); dirp = new(g) TDBSDR(filename); @@ -787,7 +787,7 @@ int TDBDIR::GetMaxSize(PGLOBAL g) /***********************************************************************/ bool TDBDIR::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("DIR OpenDB: tdbp=%p tdb=R%d use=%d mode=%d\n", this, Tdb_No, Use, Mode); @@ -985,7 +985,7 @@ void DIRCOL::SetTimeValue(PGLOBAL g, FILETIME& ftime) /***********************************************************************/ void DIRCOL::ReadColumn(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("DIR ReadColumn: col %s R%d use=%.4X status=%.4X type=%d N=%d\n", Name, Tdbp->GetTdb_No(), ColUse, Status, Buf_Type, N); @@ -1452,7 +1452,7 @@ int TDBDHR::GetMaxSize(PGLOBAL g) /***********************************************************************/ bool TDBDHR::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("DHR OpenDB: tdbp=%p tdb=R%d use=%d mode=%d\n", this, Tdb_No, Use, Mode); @@ -1589,7 +1589,7 @@ void DHRCOL::ReadColumn(PGLOBAL g) int rc; PTDBDHR tdbp = (PTDBDHR)To_Tdb; - if (trace) + if (trace(1)) htrc("DHR ReadColumn: col %s R%d use=%.4X status=%.4X type=%d N=%d\n", Name, tdbp->GetTdb_No(), ColUse, Status, Buf_Type, N); diff --git a/storage/connect/tabmysql.cpp b/storage/connect/tabmysql.cpp index d1e2ae69608..605b3822430 100644 --- a/storage/connect/tabmysql.cpp +++ b/storage/connect/tabmysql.cpp @@ -124,8 +124,8 @@ bool MYSQLDEF::GetServerInfo(PGLOBAL g, const char *server_name) DBUG_RETURN(true); } // endif server - DBUG_PRINT("info", ("get_server_by_name returned server at %lx", - (size_t) server)); + DBUG_PRINT("info", ("get_server_by_name returned server at %p", + server)); // TODO: We need to examine which of these can really be NULL Hostname = PlugDup(g, server->host); @@ -203,7 +203,7 @@ bool MYSQLDEF::ParseURL(PGLOBAL g, char *url, bool b) // Otherwise, straight server name, Tabname = (b) ? GetStringCatInfo(g, "Tabname", Name) : NULL; - if (trace) + if (trace(1)) htrc("server: %s TableName: %s", url, Tabname); Server = url; @@ -567,7 +567,7 @@ bool TDBMYSQL::MakeSelect(PGLOBAL g, bool mx) return true; } // endif Query - if (trace) + if (trace(33)) htrc("Query=%s\n", Query->GetStr()); return false; @@ -681,7 +681,7 @@ bool TDBMYSQL::MakeCommand(PGLOBAL g) strlwr(strcpy(name, Name)); // Not a keyword if ((p = strstr(qrystr, name))) { - Query->Set(Qrystr, p - qrystr); + Query->Set(Qrystr, (uint)(p - qrystr)); if (qtd && *(p-1) == ' ') { Query->Append('`'); @@ -1042,7 +1042,7 @@ int TDBMYSQL::SendCommand(PGLOBAL g) sprintf(g->Message, "%s: %d affected rows", TableName, AftRows); PushWarning(g, this, 0); // 0 means a Note - if (trace) + if (trace(1)) htrc("%s\n", g->Message); if (w && Myc.ExecSQL(g, "SHOW WARNINGS") == RC_OK) { @@ -1109,7 +1109,7 @@ bool TDBMYSQL::ReadKey(PGLOBAL g, OPVAL op, const key_range *kr) Mode = MODE_READ; } // endif's op - if (trace) + if (trace(33)) htrc("MYSQL ReadKey: Query=%s\n", Query->GetStr()); m_Rc = Myc.ExecSQL(g, Query->GetStr()); @@ -1124,7 +1124,7 @@ int TDBMYSQL::ReadDB(PGLOBAL g) { int rc; - if (trace > 1) + if (trace(2)) htrc("MySQL ReadDB: R%d Mode=%d\n", GetTdb_No(), Mode); if (Mode == MODE_UPDATE || Mode == MODE_DELETE) @@ -1137,7 +1137,7 @@ int TDBMYSQL::ReadDB(PGLOBAL g) N++; Fetched = ((rc = Myc.Fetch(g, -1)) == RC_OK); - if (trace > 1) + if (trace(2)) htrc(" Read: rc=%d\n", rc); return rc; @@ -1220,7 +1220,7 @@ void TDBMYSQL::CloseDB(PGLOBAL g) Myc.Close(); } // endif Myc - if (trace) + if (trace(1)) htrc("MySQL CloseDB: closing %s rc=%d\n", Name, m_Rc); } // end of CloseDB @@ -1248,7 +1248,7 @@ MYSQLCOL::MYSQLCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) Slen = 0; Rank = -1; // Not known yet - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); } // end of MYSQLCOL constructor @@ -1279,7 +1279,7 @@ MYSQLCOL::MYSQLCOL(MYSQL_FIELD *fld, PTDB tdbp, int i, PCSZ am) Slen = 0; Rank = i; - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); } // end of MYSQLCOL constructor @@ -1409,7 +1409,7 @@ void MYSQLCOL::ReadColumn(PGLOBAL g) tdbp->Fetched = true; if ((buf = ((PTDBMY)To_Tdb)->Myc.GetCharField(Rank))) { - if (trace > 1) + if (trace(2)) htrc("MySQL ReadColumn: name=%s buf=%s\n", Name, buf); // TODO: have a true way to differenciate temporal values @@ -1679,7 +1679,7 @@ MYXCOL::MYXCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) MYXCOL::MYXCOL(MYSQL_FIELD *fld, PTDB tdbp, int i, PCSZ am) : MYSQLCOL(fld, tdbp, i, am) { - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); } // end of MYSQLCOL constructor diff --git a/storage/connect/tabodbc.cpp b/storage/connect/tabodbc.cpp index 56e5e72efd6..f7bc3934fbd 100644 --- a/storage/connect/tabodbc.cpp +++ b/storage/connect/tabodbc.cpp @@ -289,7 +289,7 @@ void TDBODBC::SetFile(PGLOBAL g, PCSZ fn) sprintf(Connect, MulConn, fn); } // endif MultConn - DBQ = (PSZ)fn; + DBQ = PlugDup(g, fn); } // end of SetFile /***********************************************************************/ @@ -538,7 +538,7 @@ bool TDBODBC::OpenDB(PGLOBAL g) { bool rc = true; - if (trace) + if (trace(1)) htrc("ODBC OpenDB: tdbp=%p tdb=R%d use=%dmode=%d\n", this, Tdb_No, Use, Mode); @@ -750,7 +750,7 @@ bool TDBODBC::ReadKey(PGLOBAL g, OPVAL op, const key_range *kr) Mode = MODE_READ; } // endif's op - if (trace) + if (trace(33)) htrc("ODBC ReadKey: Query=%s\n", Query->GetStr()); Rows = Ocp->ExecDirectSQL((char*)Query->GetStr(), (PODBCCOL)Columns); @@ -765,7 +765,7 @@ int TDBODBC::ReadDB(PGLOBAL g) { int rc; - if (trace > 1) + if (trace(2)) htrc("ODBC ReadDB: R%d Mode=%d\n", GetTdb_No(), Mode); if (Mode == MODE_UPDATE || Mode == MODE_DELETE) { @@ -776,7 +776,7 @@ int TDBODBC::ReadDB(PGLOBAL g) if (!Ocp->ExecSQLcommand(Query->GetStr())) { sprintf(g->Message, "%s: %d affected rows", TableName, AftRows); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); PushWarning(g, this, 0); // 0 means a Note @@ -817,7 +817,7 @@ int TDBODBC::ReadDB(PGLOBAL g) } // endif Placed - if (trace > 1) + if (trace(2)) htrc(" Read: Rbuf=%d rc=%d\n", Rbuf, rc); return rc; @@ -852,7 +852,7 @@ int TDBODBC::DeleteDB(PGLOBAL g, int irc) if (!Ocp->ExecSQLcommand(Query->GetStr())) { sprintf(g->Message, "%s: %d affected rows", TableName, AftRows); - if (trace) + if (trace(1)) htrc("%s\n", g->Message); PushWarning(g, this, 0); // 0 means a Note @@ -874,7 +874,7 @@ void TDBODBC::CloseDB(PGLOBAL g) Ocp->Close(); - if (trace) + if (trace(1)) htrc("ODBC CloseDB: closing %s\n", Name); } // end of CloseDB @@ -975,7 +975,7 @@ void ODBCCOL::ReadColumn(PGLOBAL g) } // endif Buf_Type - if (trace > 1) { + if (trace(2)) { char buf[64]; htrc("ODBC Column %s: rows=%d buf=%p type=%d value=%s\n", @@ -1214,7 +1214,7 @@ bool TDBXDBC::OpenDB(PGLOBAL g) { bool rc = false; - if (trace) + if (trace(1)) htrc("ODBC OpenDB: tdbp=%p tdb=R%d use=%dmode=%d\n", this, Tdb_No, Use, Mode); diff --git a/storage/connect/tabpivot.cpp b/storage/connect/tabpivot.cpp index 76a46e6899b..da5d134f347 100644 --- a/storage/connect/tabpivot.cpp +++ b/storage/connect/tabpivot.cpp @@ -299,7 +299,7 @@ PQRYRES PIVAID::MakePivotColumns(PGLOBAL g) Qryp->Nbcol += (ndif - 2); return Qryp; } catch (int n) { - if (trace) + if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); } catch (const char *msg) { strcpy(g->Message, msg); diff --git a/storage/connect/tabsys.cpp b/storage/connect/tabsys.cpp index 7f0d9881298..f73a2b6578d 100644 --- a/storage/connect/tabsys.cpp +++ b/storage/connect/tabsys.cpp @@ -180,7 +180,7 @@ PTDB TDBINI::Clone(PTABS t) /***********************************************************************/ char *TDBINI::GetSeclist(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("GetSeclist: Seclist=%p\n", Seclist); if (!Seclist) { @@ -267,7 +267,7 @@ bool TDBINI::OpenDB(PGLOBAL g) if (!colp->IsSpecial()) // Not a pseudo column colp->AllocBuf(g); - if (trace) + if (trace(1)) htrc("INI OpenDB: seclist=%s seclen=%d ifile=%s\n", Seclist, Seclen, Ifile); @@ -287,7 +287,7 @@ int TDBINI::ReadDB(PGLOBAL) else Section += (strlen(Section) + 1); - if (trace > 1) + if (trace(2)) htrc("INI ReadDB: section=%s N=%d\n", Section, N); N++; @@ -453,7 +453,7 @@ void INICOL::ReadColumn(PGLOBAL) { PTDBINI tdbp = (PTDBINI)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("INI ReadColumn: col %s R%d flag=%d\n", Name, tdbp->GetTdb_No(), Flag); @@ -493,7 +493,7 @@ void INICOL::WriteColumn(PGLOBAL g) bool rc; PTDBINI tdbp = (PTDBINI)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("INI WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, tdbp->GetTdb_No(), ColUse, Status); @@ -823,7 +823,7 @@ void XINCOL::WriteColumn(PGLOBAL g) bool rc; PTDBXIN tdbp = (PTDBXIN)To_Tdb; - if (trace > 1) + if (trace(2)) htrc("XIN WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, tdbp->GetTdb_No(), ColUse, Status); diff --git a/storage/connect/tabtbl.cpp b/storage/connect/tabtbl.cpp index 7925e8f29a8..e194568ccf8 100644 --- a/storage/connect/tabtbl.cpp +++ b/storage/connect/tabtbl.cpp @@ -132,7 +132,7 @@ bool TBLDEF::DefineAM(PGLOBAL g, LPCSTR, int) tbl = new(g) XTAB(pn, def); tbl->SetSchema(pdb); - if (trace) + if (trace(1)) htrc("TBL: Name=%s db=%s\n", tbl->GetName(), tbl->GetSchema()); // Link the blocks @@ -436,7 +436,7 @@ int TDBTBL::RowNumber(PGLOBAL g, bool b) /***********************************************************************/ bool TDBTBL::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("TBL OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d\n", this, Tdb_No, Use, To_Key_Col, Mode); @@ -475,7 +475,7 @@ bool TDBTBL::OpenDB(PGLOBAL g) else if (((PPRXCOL)cp)->Init(g, NULL) && !Accept) return TRUE; - if (trace) + if (trace(1)) htrc("Opening subtable %s\n", Tdbp->GetName()); // Now we can safely open the table @@ -530,7 +530,7 @@ int TDBTBL::ReadDB(PGLOBAL g) else if (((PPRXCOL)cp)->Init(g, NULL) && !Accept) return RC_FX; - if (trace) + if (trace(1)) htrc("Opening subtable %s\n", Tdbp->GetName()); // Now we can safely open the table @@ -555,7 +555,7 @@ int TDBTBL::ReadDB(PGLOBAL g) /***********************************************************************/ void TBTBLK::ReadColumn(PGLOBAL) { - if (trace) + if (trace(1)) htrc("TBT ReadColumn: name=%s\n", Name); Value->SetValue_psz((char*)((PTDBTBL)To_Tdb)->Tdbp->GetName()); @@ -575,27 +575,30 @@ pthread_handler_t ThreadOpen(void *p) if (!my_thread_init()) { set_current_thd(cmp->Thd); - if (trace) + if (trace(1)) htrc("ThreadOpen: Thd=%d\n", cmp->Thd); // Try to open the connection - if (!cmp->Tap->GetTo_Tdb()->OpenDB(cmp->G)) { - pthread_mutex_lock(&tblmut); - if (trace) + pthread_mutex_lock(&tblmut); + + if (!cmp->Tap->GetTo_Tdb()->OpenDB(cmp->G)) { +// pthread_mutex_lock(&tblmut); + if (trace(1)) htrc("Table %s ready\n", cmp->Tap->GetName()); cmp->Ready = true; - pthread_mutex_unlock(&tblmut); +// pthread_mutex_unlock(&tblmut); } else { - pthread_mutex_lock(&tblmut); - if (trace) +// pthread_mutex_lock(&tblmut); + if (trace(1)) htrc("Opening %s failed\n", cmp->Tap->GetName()); cmp->Rc = RC_FX; - pthread_mutex_unlock(&tblmut); +// pthread_mutex_unlock(&tblmut); } // endif OpenDB - my_thread_end(); + pthread_mutex_unlock(&tblmut); + my_thread_end(); } else cmp->Rc = RC_FX; @@ -672,7 +675,7 @@ bool TDBTBM::OpenTables(PGLOBAL g) // Remove remote table from the local list *ptabp = tabp->Next; - if (trace) + if (trace(1)) htrc("=====> New remote table %s\n", tabp->GetName()); // Make the remote table block @@ -698,7 +701,7 @@ bool TDBTBM::OpenTables(PGLOBAL g) ptp = &tp->Next; Nrc++; // Number of remote connections } else { - if (trace) + if (trace(1)) htrc("=====> Local table %s\n", tabp->GetName()); ptabp = &tabp->Next; @@ -714,7 +717,7 @@ bool TDBTBM::OpenTables(PGLOBAL g) /***********************************************************************/ bool TDBTBM::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("TBM OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d\n", this, Tdb_No, Use, To_Key_Col, Mode); @@ -762,7 +765,7 @@ bool TDBTBM::OpenDB(PGLOBAL g) else if (((PPRXCOL)cp)->Init(g, NULL) && !Accept) return TRUE; - if (trace) + if (trace(1)) htrc("Opening subtable %s\n", Tdbp->GetName()); // Now we can safely open the table @@ -863,7 +866,7 @@ int TDBTBM::ReadNextRemote(PGLOBAL g) else if (((PPRXCOL)cp)->Init(g, NULL) && !Accept) return RC_FX; - if (trace) + if (trace(1)) htrc("Reading subtable %s\n", Tdbp->GetName()); return RC_OK; diff --git a/storage/connect/tabutil.cpp b/storage/connect/tabutil.cpp index 5d8d7c1b9f8..68b66aec31f 100644 --- a/storage/connect/tabutil.cpp +++ b/storage/connect/tabutil.cpp @@ -457,7 +457,7 @@ PTDB TDBPRX::GetSubTable(PGLOBAL g, PTABLE tabp, bool b) hc->get_table()->s->option_struct->srcdef = sp; } // endif s - if (trace && tdbp) + if (trace(1) && tdbp) htrc("Subtable %s in %s\n", name, SVP(tdbp->GetDef()->GetDB())); @@ -647,7 +647,7 @@ PRXCOL::PRXCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am) Pseudo = false; Colnum = cdp->GetOffset(); // If columns are retrieved by number - if (trace) + if (trace(1)) htrc(" making new %sCOL C%d %s at %p\n", am, Index, Name, this); } // end of PRXCOL constructor @@ -732,7 +732,7 @@ void PRXCOL::Reset(void) /***********************************************************************/ void PRXCOL::ReadColumn(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("PRX ReadColumn: name=%s\n", Name); if (Colp) { @@ -759,7 +759,7 @@ void PRXCOL::ReadColumn(PGLOBAL g) /***********************************************************************/ void PRXCOL::WriteColumn(PGLOBAL g) { - if (trace > 1) + if (trace(2)) htrc("PRX WriteColumn: name=%s\n", Name); if (Colp) { diff --git a/storage/connect/tabvct.cpp b/storage/connect/tabvct.cpp index 533986e44da..11b344ef652 100644 --- a/storage/connect/tabvct.cpp +++ b/storage/connect/tabvct.cpp @@ -304,7 +304,7 @@ bool TDBVCT::IsUsingTemp(PGLOBAL) /***********************************************************************/ bool TDBVCT::OpenDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("VCT OpenDB: tdbp=%p tdb=R%d use=%d key=%p mode=%d\n", this, Tdb_No, Use, To_Key_Col, Mode); @@ -364,7 +364,7 @@ bool TDBVCT::OpenDB(PGLOBAL g) /***********************************************************************/ int TDBVCT::ReadDB(PGLOBAL g) { - if (trace) + if (trace(1)) htrc("VCT ReadDB: R%d Mode=%d CurBlk=%d CurNum=%d key=%p link=%p Kindex=%p\n", GetTdb_No(), Mode, Txfp->CurBlk, Txfp->CurNum, To_Key_Col, To_Link, To_Kindex); @@ -546,7 +546,7 @@ void VCTCOL::ReadColumn(PGLOBAL g) assert (!To_Kcol); #endif - if (trace > 1) + if (trace(2)) htrc("VCT ReadColumn: col %s R%d coluse=%.4X status=%.4X buf_type=%d\n", Name, To_Tdb->GetTdb_No(), ColUse, Status, Buf_Type); @@ -574,7 +574,7 @@ void VCTCOL::WriteColumn(PGLOBAL) { PTXF txfp = ((PTDBVCT)To_Tdb)->Txfp;; - if (trace > 1) + if (trace(2)) htrc("VCT WriteColumn: col %s R%d coluse=%.4X status=%.4X buf_type=%d\n", Name, To_Tdb->GetTdb_No(), ColUse, Status, Buf_Type); diff --git a/storage/connect/tabwmi.cpp b/storage/connect/tabwmi.cpp index 335ffce5d7f..8a8e1bcbcb6 100644 --- a/storage/connect/tabwmi.cpp +++ b/storage/connect/tabwmi.cpp @@ -34,7 +34,7 @@ PWMIUT InitWMI(PGLOBAL g, PCSZ nsp, PCSZ classname) HRESULT res; PWMIUT wp = (PWMIUT)PlugSubAlloc(g, NULL, sizeof(WMIUTIL)); - if (trace) + if (trace(1)) htrc("WMIColumns class %s space %s\n", SVP(classname), SVP(nsp)); /*********************************************************************/ @@ -103,7 +103,7 @@ PWMIUT InitWMI(PGLOBAL g, PCSZ nsp, PCSZ classname) loc->Release(); - if (trace) + if (trace(1)) htrc("Successfully connected to namespace.\n"); /*********************************************************************/ diff --git a/storage/connect/tabxml.cpp b/storage/connect/tabxml.cpp index 6402f48e090..c96e0844497 100644 --- a/storage/connect/tabxml.cpp +++ b/storage/connect/tabxml.cpp @@ -153,7 +153,7 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) lvl = (lvl < 0) ? 0 : (lvl > 16) ? 16 : lvl; } // endif fn - if (trace) + if (trace(1)) htrc("File %s lvl=%d\n", topt->filename, lvl); tdp = new(g) XMLDEF; @@ -362,7 +362,7 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) txmp->CloseDB(g); skipit: - if (trace) + if (trace(1)) htrc("XMLColumns: n=%d len=%d\n", n, length[0]); /*********************************************************************/ @@ -686,7 +686,7 @@ PTDB TDBXML::Clone(PTABS t) /***********************************************************************/ PCOL TDBXML::MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) { - if (trace) + if (trace(1)) htrc("TDBXML: MakeCol %s n=%d\n", (cdp) ? cdp->GetName() : "", n); return new(g) XMLCOL(cdp, this, cprec, n); @@ -720,7 +720,7 @@ int TDBXML::LoadTableFile(PGLOBAL g, char *filename) if (Docp) return rc; // Already done - if (trace) + if (trace(1)) htrc("TDBXML: loading %s\n", filename); /*********************************************************************/ @@ -753,7 +753,7 @@ int TDBXML::LoadTableFile(PGLOBAL g, char *filename) return RC_FX; } // endif init - if (trace) + if (trace(1)) htrc("TDBXML: parsing %s rc=%d\n", filename, rc); // Parse the XML file @@ -1182,7 +1182,7 @@ int TDBXML::ReadDB(PGLOBAL g) } // endswitch recpos } else { - if (trace) + if (trace(1)) htrc("TDBXML ReadDB: Irow=%d Nrow=%d\n", Irow, Nrow); // This is to force the table to be expanded when constructing @@ -1209,7 +1209,7 @@ int TDBXML::ReadDB(PGLOBAL g) } // endif To_Kindex if (!same) { - if (trace > 1) + if (trace(2)) htrc("TDBXML ReadDB: Irow=%d RowNode=%p\n", Irow, RowNode); // Get the new row node @@ -1319,7 +1319,7 @@ void TDBXML::CloseDB(PGLOBAL g) Docp->CloseDoc(g, To_Xb); // This causes a crash in Diagnostics_area::set_error_status -// throw (int)TYPE_AM_XML; +// throw (int)TYPE_AM_XML; } // endif DumpDoc } // endif Changed @@ -1472,7 +1472,7 @@ bool XMLCOL::ParseXpath(PGLOBAL g, bool mode) } else strcat(pbuf, Xname); - if (trace) + if (trace(1)) htrc("XMLCOL: pbuf=%s\n", pbuf); // For Update or Insert the Xpath must be analyzed @@ -1555,7 +1555,7 @@ bool XMLCOL::ParseXpath(PGLOBAL g, bool mode) if (Type || Nod) Tdbp->Hasnod = true; - if (trace) + if (trace(1)) htrc("XMLCOL: Xname=%s\n", pbuf); // Save the calculated Xpath @@ -1679,7 +1679,7 @@ void XMLCOL::WriteColumn(PGLOBAL g) int i, n, k = 0; PXNODE TopNode = NULL; - if (trace > 1) + if (trace(2)) htrc("XML WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, Tdbp->GetTdb_No(), ColUse, Status); @@ -1913,7 +1913,7 @@ void XMULCOL::WriteColumn(PGLOBAL g) int i, n, len, k = 0; PXNODE TopNode = NULL; - if (trace) + if (trace(1)) htrc("XML WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, Tdbp->GetTdb_No(), ColUse, Status); @@ -2129,7 +2129,7 @@ void XPOSCOL::WriteColumn(PGLOBAL g) char *p, buf[16]; int i, k, n; - if (trace) + if (trace(1)) htrc("XML WriteColumn: col %s R%d coluse=%.4X status=%.4X\n", Name, Tdbp->GetTdb_No(), ColUse, Status); diff --git a/storage/connect/user_connect.cc b/storage/connect/user_connect.cc index cb62667c0fe..9532d7c2a8d 100644 --- a/storage/connect/user_connect.cc +++ b/storage/connect/user_connect.cc @@ -178,7 +178,7 @@ bool user_connect::CheckCleanup(bool force) g->Mrr = 0; last_query_id= thdp->query_id; - if (trace && !force) + if (trace(65) && !force) printf("=====> Begin new query %llu\n", last_query_id); return true; diff --git a/storage/connect/valblk.cpp b/storage/connect/valblk.cpp index 018c7ee3fe1..73ca135691c 100644 --- a/storage/connect/valblk.cpp +++ b/storage/connect/valblk.cpp @@ -53,7 +53,7 @@ PVBLK AllocValBlock(PGLOBAL g, void *mp, int type, int nval, int len, { PVBLK blkp; - if (trace) + if (trace(1)) htrc("AVB: mp=%p type=%d nval=%d len=%d check=%u blank=%u\n", mp, type, nval, len, check, blank); diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index 7af70ea1349..e159efaa989 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -337,7 +337,7 @@ PVAL AllocateValue(PGLOBAL g, void *value, short type, short prec) { PVAL valp; - if (trace) + if (trace(1)) htrc("AllocateConstant: value=%p type=%hd\n", value, type); switch (type) { @@ -727,7 +727,7 @@ bool TYPVAL::SetValue_char(const char *p, int n) else Tval = (TYPE)val; - if (trace > 1) { + if (trace(2)) { char buf[64]; htrc(strcat(strcat(strcpy(buf, " setting %s to: "), Fmt), "\n"), GetTypeName(Type), Tval); @@ -750,7 +750,7 @@ bool TYPVAL::SetValue_char(const char *p, int n) buf[n] = '\0'; Tval = atof(buf); - if (trace > 1) + if (trace(2)) htrc(" setting double: '%s' -> %lf\n", buf, Tval); Null = false; @@ -996,7 +996,7 @@ int TYPVAL::CompareValue(PVAL vp) // Process filtering on numeric values. TYPE n = GetTypedValue(vp); -//if (trace) +//if (trace(1)) // htrc(" Comparing: val=%d,%d\n", Tval, n); return (Tval > n) ? 1 : (Tval < n) ? (-1) : 0; @@ -1374,7 +1374,7 @@ bool TYPVAL::SetValue_char(const char *cp, int n) } else if (cp != Strp) { const char *p = cp + n - 1; - for (p; p >= cp; p--, n--) + for (; p >= cp; p--, n--) if (*p && *p != ' ') break; @@ -1384,7 +1384,7 @@ bool TYPVAL::SetValue_char(const char *cp, int n) strncpy(Strp, cp, n); Strp[n] = '\0'; - if (trace > 1) + if (trace(2)) htrc(" Setting string to: '%s'\n", Strp); } else @@ -1631,7 +1631,7 @@ int TYPVAL::CompareValue(PVAL vp) int n; //assert(vp->GetType() == Type); - if (trace) + if (trace(1)) htrc(" Comparing: val='%s','%s'\n", Strp, vp->GetCharValue()); // Process filtering on character strings. @@ -1656,14 +1656,14 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) char *p[2], val[2][32]; int i; - if (trace) + if (trace(1)) htrc("Compute: np=%d op=%d\n", np, op); for (i = 0; i < np; i++) if (!vp[i]->IsNull()) { p[i] = vp[i]->GetCharString(val[i]); - if (trace) + if (trace(1)) htrc("p[%d]=%s\n", i, p[i]); } else @@ -1679,7 +1679,7 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) if ((i = Len - (signed)strlen(Strp)) > 0) strncat(Strp, p[np - 1], i); - if (trace) + if (trace(1)) htrc("Strp=%s\n", Strp); break; @@ -1747,7 +1747,7 @@ DECVAL::DECVAL(PSZ s) : TYPVAL(s) if (s) { char *p = strchr(Strp, '.'); - Prec = (p) ? Len - (p - Strp) : 0; + Prec = (p) ? (int)(Len - (p - Strp)) : 0; } // endif s Type = TYPE_DECIM; @@ -1854,7 +1854,7 @@ int DECVAL::CompareValue(PVAL vp) // Process filtering on numeric values. double f = atof(Strp), n = vp->GetFloatValue(); -//if (trace) +//if (trace(1)) // htrc(" Comparing: val=%d,%d\n", f, n); return (f > n) ? 1 : (f < n) ? (-1) : 0; @@ -2410,7 +2410,7 @@ void DTVAL::SetTimeShift(void) Shift = (int)mktime(&dtm) - 86400; - if (trace) + if (trace(1)) htrc("DTVAL Shift=%d\n", Shift); } // end of SetTimeShift @@ -2485,7 +2485,7 @@ bool DTVAL::MakeTime(struct tm *ptm) int n, y = ptm->tm_year; time_t t = mktime_mysql(ptm); - if (trace > 1) + if (trace(2)) htrc("MakeTime from (%d,%d,%d,%d,%d,%d)\n", ptm->tm_year, ptm->tm_mon, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec); @@ -2508,7 +2508,7 @@ bool DTVAL::MakeTime(struct tm *ptm) } Tval= (int) t; - if (trace > 1) + if (trace(2)) htrc("MakeTime Ival=%d\n", Tval); return false; @@ -2528,14 +2528,14 @@ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) datm.tm_mon=0; datm.tm_year=70; - if (trace > 1) + if (trace(2)) htrc("MakeDate from(%d,%d,%d,%d,%d,%d) nval=%d\n", val[0], val[1], val[2], val[3], val[4], val[5], nval); for (i = 0; i < nval; i++) { n = val[i]; -// if (trace > 1) +// if (trace(2)) // htrc("i=%d n=%d\n", i, n); switch (i) { @@ -2545,7 +2545,7 @@ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) datm.tm_year = n; -// if (trace > 1) +// if (trace(2)) // htrc("n=%d tm_year=%d\n", n, datm.tm_year); break; @@ -2564,7 +2564,7 @@ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) datm.tm_mon = m; datm.tm_year += n; -// if (trace > 1) +// if (trace(2)) // htrc("n=%d m=%d tm_year=%d tm_mon=%d\n", n, m, datm.tm_year, datm.tm_mon); break; @@ -2581,7 +2581,7 @@ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) datm.tm_mday = m; datm.tm_year += n; -// if (trace > 1) +// if (trace(2)) // htrc("n=%d m=%d tm_year=%d tm_mon=%d\n", n, m, datm.tm_year, datm.tm_mon); break; @@ -2592,7 +2592,7 @@ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) } // endfor i - if (trace > 1) + if (trace(2)) htrc("MakeDate datm=(%d,%d,%d,%d,%d,%d)\n", datm.tm_year, datm.tm_mon, datm.tm_mday, datm.tm_hour, datm.tm_min, datm.tm_sec); @@ -2656,7 +2656,7 @@ bool DTVAL::SetValue_char(const char *p, int n) // Trim trailing blanks for (p2 = p + n -1; p < p2 && *p2 == ' '; p2--); - if ((rc = (n = p2 - p + 1) > Len)) + if ((rc = (n = (int)(p2 - p + 1)) > Len)) n = Len; memcpy(Sdate, p, n); @@ -2667,7 +2667,7 @@ bool DTVAL::SetValue_char(const char *p, int n) ndv = ExtractDate(Sdate, Pdtp, DefYear, dval); MakeDate(NULL, dval, ndv); - if (trace > 1) + if (trace(2)) htrc(" setting date: '%s' -> %d\n", Sdate, Tval); Null = (Nullable && ndv == 0); @@ -2694,7 +2694,7 @@ void DTVAL::SetValue_psz(PCSZ p) ndv = ExtractDate(Sdate, Pdtp, DefYear, dval); MakeDate(NULL, dval, ndv); - if (trace > 1) + if (trace(2)) htrc(" setting date: '%s' -> %d\n", Sdate, Tval); Null = (Nullable && ndv == 0); @@ -2849,13 +2849,13 @@ bool DTVAL::FormatValue(PVAL vp, PCSZ fmt) char *buf = (char*)vp->GetTo_Val(); // Should be big enough struct tm tm, *ptm = GetGmTime(&tm); - if (trace > 1) + if (trace(2)) htrc("FormatValue: ptm=%p len=%d\n", ptm, vp->GetValLen()); if (ptm) { size_t n = strftime(buf, vp->GetValLen(), fmt, ptm); - if (trace > 1) + if (trace(2)) htrc("strftime: n=%d buf=%s\n", n, (n) ? buf : "???"); return (n == 0); diff --git a/storage/connect/xindex.cpp b/storage/connect/xindex.cpp index 30dce3b7fef..efefc17b5f5 100755 --- a/storage/connect/xindex.cpp +++ b/storage/connect/xindex.cpp @@ -344,7 +344,7 @@ bool XINDEX::Make(PGLOBAL g, PIXDEF sxp) } // endif n - if (trace) + if (trace(1)) htrc("XINDEX Make: n=%d\n", n); // File position must be stored @@ -417,7 +417,7 @@ bool XINDEX::Make(PGLOBAL g, PIXDEF sxp) if (kcp->Init(g, colp, n, true, 0)) return true; - if (trace) + if (trace(1)) htrc("Adding colp=%p Buf_Type=%d size=%d\n", colp, colp->GetResultType(), n); @@ -484,7 +484,7 @@ bool XINDEX::Make(PGLOBAL g, PIXDEF sxp) } else To_Rec[nkey] = Tdbp->GetRecpos(); - if (trace > 1) + if (trace(2)) htrc("Make: To_Rec[%d]=%d\n", nkey, To_Rec[nkey]); /*******************************************************************/ @@ -553,7 +553,7 @@ bool XINDEX::Make(PGLOBAL g, PIXDEF sxp) if ((Ndif = Qsort(g, Num_K)) < 0) goto err; // Error during sort - if (trace) + if (trace(1)) htrc("Make: Nk=%d n=%d Num_K=%d Ndif=%d addcolp=%p BlkFil=%p X=%p\n", Nk, n, Num_K, Ndif, addcolp, Tdbp->To_BlkFil, X); @@ -883,7 +883,7 @@ bool XINDEX::SaveIndex(PGLOBAL g, PIXDEF sxp) n[5] = Nblk; n[6] = Sblk; n[7] = Srtd ? 1 : 0; // Values are sorted in the file - if (trace) { + if (trace(1)) { htrc("Saving index %s\n", Xdp->GetName()); htrc("ID=%d Nk=%d nof=%d Num_K=%d Incr=%d Nblk=%d Sblk=%d Srtd=%d\n", ID, Nk, nof, Num_K, Incr, Nblk, Sblk, Srtd); @@ -926,7 +926,7 @@ bool XINDEX::SaveIndex(PGLOBAL g, PIXDEF sxp) // dup->ProgCur += 5; } // endfor kcp - if (trace) + if (trace(1)) htrc("Index %s saved, Size=%d\n", Xdp->GetName(), size); end: @@ -1016,7 +1016,7 @@ bool XINDEX::Init(PGLOBAL g) PlugSetPath(fn, fn, Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("Index %s file: %s\n", Xdp->GetName(), fn); /*********************************************************************/ @@ -1039,7 +1039,7 @@ bool XINDEX::Init(PGLOBAL g) } else Srtd = false; - if (trace) + if (trace(1)) htrc("nv=%d %d %d %d %d %d %d (%d)\n", nv[0], nv[1], nv[2], nv[3], nv[4], nv[5], nv[6], Srtd); @@ -1048,7 +1048,7 @@ bool XINDEX::Init(PGLOBAL g) if (/*nv[0] != ID ||*/ nv[1] != Nk) { sprintf(g->Message, MSG(BAD_INDEX_FILE), fn); - if (trace) + if (trace(1)) htrc("nv[0]=%d ID=%d nv[1]=%d Nk=%d\n", nv[0], ID, nv[1], Nk); goto err; @@ -1269,7 +1269,7 @@ bool XINDEX::MapInit(PGLOBAL g) PlugSetPath(fn, fn, Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("Index %s file: %s\n", Xdp->GetName(), fn); /*********************************************************************/ @@ -1300,7 +1300,7 @@ bool XINDEX::MapInit(PGLOBAL g) nv0 = nv[0]; } // endif nv - if (trace) + if (trace(1)) htrc("nv=%d %d %d %d %d %d %d %d\n", nv0, nv[1], nv[2], nv[3], nv[4], nv[5], nv[6], Srtd); @@ -1310,7 +1310,7 @@ bool XINDEX::MapInit(PGLOBAL g) // Not this index sprintf(g->Message, MSG(BAD_INDEX_FILE), fn); - if (trace) + if (trace(1)) htrc("nv0=%d ID=%d nv[1]=%d Nk=%d\n", nv0, ID, nv[1], Nk); goto err; @@ -1483,7 +1483,7 @@ bool XINDEX::GetAllSizes(PGLOBAL g,/* int &ndif,*/ int &numk) PlugSetPath(fn, fn, Tdbp->GetPath()); - if (trace) + if (trace(1)) htrc("Index %s file: %s\n", Xdp->GetName(), fn); /*********************************************************************/ @@ -1500,7 +1500,7 @@ bool XINDEX::GetAllSizes(PGLOBAL g,/* int &ndif,*/ int &numk) if (X->Read(g, nv, NZ, sizeof(int))) goto err; - if (trace) + if (trace(1)) htrc("nv=%d %d %d %d\n", nv[0], nv[1], nv[2], nv[3]); // The test on ID was suppressed because MariaDB can change an index ID @@ -1508,7 +1508,7 @@ bool XINDEX::GetAllSizes(PGLOBAL g,/* int &ndif,*/ int &numk) if (/*nv[0] != ID ||*/ nv[1] != Nk) { sprintf(g->Message, MSG(BAD_INDEX_FILE), fn); - if (trace) + if (trace(1)) htrc("nv[0]=%d ID=%d nv[1]=%d Nk=%d\n", nv[0], ID, nv[1], Nk); goto err; @@ -1770,7 +1770,7 @@ int XINDEX::Fetch(PGLOBAL g) if (Num_K == 0) return -1; // means end of file - if (trace > 1) + if (trace(2)) htrc("XINDEX Fetch: Op=%d\n", Op); /*********************************************************************/ @@ -1834,7 +1834,7 @@ int XINDEX::Fetch(PGLOBAL g) Nth++; - if (trace > 1) + if (trace(2)) htrc("Fetch: Looking for new value Nth=%d\n", Nth); Cur_K = FastFind(); @@ -1907,7 +1907,7 @@ int XINDEX::FastFind(void) sup = To_KeyCol->Ndf; } // endif Nblk - if (trace > 2) + if (trace(4)) htrc("XINDEX FastFind: Nblk=%d Op=%d inf=%d sup=%d\n", Nblk, Op, inf, sup); @@ -1985,7 +1985,7 @@ int XINDEX::FastFind(void) curk = (kcp->Kof) ? kcp->Kof[kcp->Val_K] : kcp->Val_K; } // endfor kcp - if (trace > 2) + if (trace(4)) htrc("XINDEX FastFind: curk=%d\n", curk); return curk; @@ -2123,7 +2123,7 @@ int XINDXS::Fetch(PGLOBAL g) if (Num_K == 0) return -1; // means end of file - if (trace > 1) + if (trace(2)) htrc("XINDXS Fetch: Op=%d\n", Op); /*********************************************************************/ @@ -2176,7 +2176,7 @@ int XINDXS::Fetch(PGLOBAL g) else Nth++; - if (trace > 1) + if (trace(2)) htrc("Fetch: Looking for new value Nth=%d\n", Nth); Cur_K = FastFind(); @@ -2243,7 +2243,7 @@ int XINDXS::FastFind(void) sup = Ndif; } // endif Nblk - if (trace > 2) + if (trace(4)) htrc("XINDXS FastFind: Nblk=%d Op=%d inf=%d sup=%d\n", Nblk, Op, inf, sup); @@ -2269,7 +2269,7 @@ int XINDXS::FastFind(void) n = 0; } // endif sup - if (trace > 2) + if (trace(4)) htrc("XINDXS FastFind: n=%d i=%d\n", n, i); // Loop on kcp because of dynamic indexing @@ -2337,7 +2337,7 @@ bool XFILE::Open(PGLOBAL g, char *filename, int id, MODE mode) } // endswitch mode if (!(Xfile= global_fopen(g, MSGID_OPEN_ERROR_AND_STRERROR, filename, pmod))) { - if (trace) + if (trace(1)) htrc("Open: %s\n", g->Message); return true; @@ -2354,7 +2354,7 @@ bool XFILE::Open(PGLOBAL g, char *filename, int id, MODE mode) NewOff.v.Low = (int)ftell(Xfile); - if (trace) + if (trace(1)) htrc("XFILE Open: NewOff.v.Low=%d\n", NewOff.v.Low); } else if (mode == MODE_WRITE) { @@ -2365,7 +2365,7 @@ bool XFILE::Open(PGLOBAL g, char *filename, int id, MODE mode) fseek(Xfile, 0, SEEK_END); NewOff.v.Low = (int)ftell(Xfile); - if (trace) + if (trace(1)) htrc("XFILE Open: NewOff.v.Low=%d\n", NewOff.v.Low); } // endif id @@ -2377,7 +2377,7 @@ bool XFILE::Open(PGLOBAL g, char *filename, int id, MODE mode) return true; } // endif MAX_INDX - if (trace) + if (trace(1)) htrc("XFILE Open: noff[%d].v.Low=%d\n", id, noff[id].v.Low); // Position the cursor at the offset of this index @@ -2510,7 +2510,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) return true; } // endif - if (trace) + if (trace(1)) htrc(" Xopen: filename=%s id=%d mode=%d\n", filename, id, mode); #if defined(__WIN__) @@ -2554,7 +2554,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) return true; } // endif Hfile - if (trace) + if (trace(1)) htrc(" access=%p share=%p creation=%d handle=%p fn=%s\n", access, share, creation, Hfile, filename); @@ -2628,13 +2628,13 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) if (Hfile == INVALID_HANDLE_VALUE) { /*rc = errno;*/ - if (trace) + if (trace(1)) htrc("Open: %s\n", g->Message); return true; } // endif Hfile - if (trace) + if (trace(1)) htrc(" oflag=%p mode=%d handle=%d fn=%s\n", oflag, mode, Hfile, filename); @@ -2647,7 +2647,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) return true; } // endif - if (trace) + if (trace(1)) htrc("INSERT: NewOff=%lld\n", NewOff.Val); } else if (mode == MODE_WRITE) { @@ -2657,7 +2657,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) NewOff.v.Low = write(Hfile, &noff, sizeof(noff)); } // endif id - if (trace) + if (trace(1)) htrc("WRITE: NewOff=%lld\n", NewOff.Val); } else if (mode == MODE_READ && id >= 0) { @@ -2667,7 +2667,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode) return true; } // endif read - if (trace) + if (trace(1)) htrc("noff[%d]=%lld\n", id, noff[id].Val); // Position the cursor at the offset of this index @@ -2705,13 +2705,13 @@ bool XHUGE::Seek(PGLOBAL g, int low, int high, int origin) if (lseek64(Hfile, pos, origin) < 0) { sprintf(g->Message, MSG(ERROR_IN_LSK), errno); - if (trace) + if (trace(1)) htrc("lseek64 error %d\n", errno); return true; } // endif lseek64 - if (trace) + if (trace(1)) htrc("Seek: low=%d high=%d\n", low, high); #endif // UNIX @@ -2750,13 +2750,13 @@ bool XHUGE::Read(PGLOBAL g, void *buf, int n, int size) #else // UNIX ssize_t count = (ssize_t)(n * size); - if (trace) + if (trace(1)) htrc("Hfile=%d n=%d size=%d count=%d\n", Hfile, n, size, count); if (read(Hfile, buf, count) != count) { sprintf(g->Message, MSG(READ_ERROR), "Index file", strerror(errno)); - if (trace) + if (trace(1)) htrc("read error %d\n", errno); rc = true; @@ -2810,7 +2810,7 @@ int XHUGE::Write(PGLOBAL g, void *buf, int n, int size, bool& rc) /***********************************************************************/ void XHUGE::Close(char *fn, int id) { - if (trace) + if (trace(1)) htrc("XHUGE::Close: fn=%s id=%d NewOff=%lld\n", fn, id, NewOff.Val); #if defined(__WIN__) @@ -3022,7 +3022,7 @@ bool KXYCOL::Init(PGLOBAL g, PCOL colp, int n, bool sm, int kln) Prefix = true; } // endif kln - if (trace) + if (trace(1)) htrc("KCOL(%p) Init: col=%s n=%d type=%d sm=%d\n", this, colp->GetName(), n, colp->GetResultType(), sm); @@ -3076,7 +3076,7 @@ BYTE* KXYCOL::MapInit(PGLOBAL g, PCOL colp, int *n, BYTE *m) Type = colp->GetResultType(); - if (trace) + if (trace(1)) htrc("MapInit(%p): colp=%p type=%d n=%d len=%d m=%p\n", this, colp, Type, n[0], len, m); @@ -3196,7 +3196,7 @@ bool KXYCOL::InitFind(PGLOBAL g, PXOB xp) Valp->SetValue_pval(xp->GetValue(), false); } // endif Type - if (trace > 1) { + if (trace(2)) { char buf[32]; htrc("KCOL InitFind: value=%s\n", Valp->GetCharString(buf)); @@ -3237,7 +3237,7 @@ int KXYCOL::Compare(int i1, int i2) // Do the actual comparison between values. register int k = Kblp->CompVal(i1, i2); - if (trace > 2) + if (trace(4)) htrc("Compare done result=%d\n", k); return (Asc) ? k : -k; @@ -3249,7 +3249,7 @@ int KXYCOL::Compare(int i1, int i2) int KXYCOL::CompVal(int i) { // Do the actual comparison between numerical values. - if (trace > 2) { + if (trace(4)) { register int k = (int)Kblp->CompVal(Valp, (int)i); htrc("Compare done result=%d\n", k); diff --git a/storage/connect/xobject.cpp b/storage/connect/xobject.cpp index 02d3e974dcc..c595ce5d6c4 100644 --- a/storage/connect/xobject.cpp +++ b/storage/connect/xobject.cpp @@ -204,7 +204,7 @@ STRING::STRING(PGLOBAL g, uint n, PCSZ str) *Strp = 0; Next = GetNext(); - Size = Next - Strp; + Size = (int)(Next - Strp); Trc = false; } else { // This should normally never happen @@ -239,7 +239,7 @@ char *STRING::Realloc(uint len) p = Strp; Next = GetNext(); - Size = Next - p; + Size = (int)(Next - p); return p; } // end of Realloc @@ -439,4 +439,3 @@ bool STRING::Resize(uint newsize) return newsize > Size; } // end of Resize - From d6dbe8e2071bf9fdc21b5530abce88ff01b40e25 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Thu, 26 Apr 2018 22:42:42 +0300 Subject: [PATCH 20/45] List of unstable tests for 10.0.35 release --- mysql-test/unstable-tests | 135 +++++++++++++++++++------------------- 1 file changed, 69 insertions(+), 66 deletions(-) diff --git a/mysql-test/unstable-tests b/mysql-test/unstable-tests index 4f74a7d744d..d50a9acc92e 100644 --- a/mysql-test/unstable-tests +++ b/mysql-test/unstable-tests @@ -23,59 +23,59 @@ # ############################################################################## +# Based on 10.0 48636f09720af45454e5db1183b62a1991db8faf + main.count_distinct2 : MDEV-11768 - timeout -main.create : Modified in 10.0.34 main.create_delayed : MDEV-10605 - failed with timeout -main.ctype_utf8 : Modified in 10.0.34 -main.ctype_utf8mb4 : Modified in 10.0.34 +main.ctype_ucs : Modified in 10.0.35 +main.ctype_utf8mb4 : Modified in 10.0.35 main.debug_sync : MDEV-10607 - internal error -main.derived : Modified in 10.0.34 main.derived_opt : MDEV-11768 - timeout -main.dyncol : Modified in 10.0.34 +main.dyncol : Modified in 10.0.35 main.events_slowlog : MDEV-12821 - wrong result -main.fulltext : Modified in 10.0.34 -main.func_isnull : Modified in 10.0.34 -main.func_misc : Modified in 10.0.34 -main.func_set : Modified in 10.0.34 -main.func_str : Modified in 10.0.34 +main.func_concat : Modified in 10.0.35 +main.func_misc : Modified in 10.0.35 +main.func_str : Modified in 10.0.35 +main.func_time : Modified in 10.0.35 +main.having : Modified in 10.0.35 main.gis : MDEV-13411 - wrong result on P8 -main.group_by : Modified in 10.0.34 -main.having : Modified in 10.0.34 main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown main.index_intersect_innodb : MDEV-10643 - failed with timeout main.index_merge_innodb : MDEV-7142 - wrong result main.innodb_mysql_lock : MDEV-7861 - sporadic lock detection failure -main.join_cache : Modified in 10.0.34 -main.join_outer : Modified in 10.0.34 +main.join_outer : Modified in 10.0.35 main.kill_processlist-6619 : MDEV-10793 - wrong result main.log_tables-big : MDEV-13408 - wrong result -main.mdev_14586 : Added in 10.0.34 main.mdev-504 : MDEV-10607 - sporadic "can't connect" main.mdev375 : MDEV-10607 - sporadic "can't connect" -main.merge : MDEV-10607 - sporadic "can't connect"; modified in 10.0.34 -main.myisam_optimize : Modified in 10.0.34 -main.mysqlbinlog : Modified in 10.0.34 -main.mysqldump-nl : Modified in 10.0.34 +main.merge : MDEV-10607 - sporadic "can't connect" main.mysqlhotcopy_myisam : MDEV-10995 - test hangs on debug build main.mysqltest : MDEV-9269 - fails on Alpha main.mysql_client_test_nonblock : MDEV-15096 - exec failed -main.order_by : Modified in 10.0.34 -main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count; modified in 10.0.34 -main.query_cache_debug : Modified in 10.0.34 -main.repair : Modified in 10.0.34 +main.parser : Modified in 10.0.35 +main.partition : Modified in 10.0.35 +main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count +main.ps_qc_innodb : Added in 10.0.35 +main.query_cache_debug : MDEV-15281 - resize or similar command in progress +main.read_only_innodb : Modified in 10.0.35 main.show_explain : MDEV-10674 - wrong result +main.sp-destruct : Modified in 10.0.35 main.sp_notembedded : MDEV-10607 - internal error main.sp-security : MDEV-10607 - sporadic "can't connect" main.stat_tables_par_innodb : MDEV-14155 - wrong rounding -main.subselect : Modified in 10.0.34 -main.subselect_exists2in : Modified in 10.0.34 +main.statistics : Modified in 10.0.35 main.subselect_innodb : MDEV-10614 - sporadic wrong results +main.subselect_mat : Modified in 10.0.35 +main.subselect4 : Modified in 10.0.35 main.symlink-aria-11902 : MDEV-15098 - error 40 from storage engine main.symlink-myisam-11902 : MDEV-15098 - error 40 from storage engine +main.tc_heuristic_recover : MDEV-15200 - wrong error on mysqld_stub_cmd main.type_datetime : MDEV-14322 - wrong result -main.union : Modified in 10.0.34 -main.view : Modified in 10.0.34 -main.xa : MDEV-11769 - lock wait timeout; modified in 10.0.34 +main.type_time_6065 : Modified in 10.0.35 +main.update_innodb : Modified in 10.0.35 +main.view : Modified in 10.0.35 +main.xa : MDEV-11769 - lock wait timeout +main.xml : Modified in 10.0.35 #---------------------------------------------------------------- @@ -91,8 +91,21 @@ binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint #---------------------------------------------------------------- -connect.json : Sporadic wrong result -connect.zip : Sporadic wrong result +connect.jdbc : Included file modified in 10.0.35 +connect.jdbc_new : Included file modified in 10.0.35 +connect.jdbc_oracle : Included file modified in 10.0.35 +connect.jdbc_postgresql : Modified in 10.0.35 +connect.json_java_2 : Included file modified in 10.0.35 +connect.json_java_3 : Included file modified in 10.0.35 +connect.json_mongo_c : Included file modified in 10.0.35 +connect.json_udf : Modified in 10.0.35 +connect.mongo_c : Included file modified in 10.0.35 +connect.mongo_java_2 : Included file modified in 10.0.35 +connect.mongo_java_3 : Included file modified in 10.0.35 +connect.mongo_test : Modified in 10.0.35 +connect.tbl_thread : Modified in 10.0.35 +connect.vcol : Added in 10.0.35 +connect.zip : MDEV-13884 - wrong result #---------------------------------------------------------------- @@ -119,28 +132,31 @@ funcs_2/charset.* : MDEV-10999 - test not maintained innodb.binlog_consistent : MDEV-10618 - Server fails to start innodb.group_commit_crash : MDEV-11770 - checksum mismatch innodb.group_commit_crash_no_optimize_thread : MDEV-11770 - checksum mismatch -innodb.innodb : Modified in 10.0.34 +innodb.innodb-alter-nullable : Modified in 10.0.35 innodb.innodb-alter-table : MDEV-10619 - Testcase timeout -innodb.innodb-autoinc : Modified in 10.0.34 +innodb.innodb_bug11754376 : Modified in 10.0.35 +innodb.innodb_bug27216817 : Added in 10.0.35 innodb.innodb_bug30423 : MDEV-7311 - Wrong number of rows in the plan innodb.innodb_bug48024 : MDEV-14352 - Assertion failure -innodb.innodb-index-debug : Modified in 10.0.34 -innodb.innodb-index-online : Modified in 10.0.34 +innodb.innodb_bug56947 : Modified in 10.0.35 +innodb.innodb_corrupt_bit : Modified in 10.0.35 innodb.innodb_monitor : MDEV-10939 - Testcase timeout -innodb.innodb-replace-debug : Added in 10.0.34 -innodb.innodb-wl5522-debug : Modified in 10.0.34 -innodb.recovery_shutdown : Added in 10.0.34 +innodb.innodb-replace-debug : Modified in 10.0.35 +innodb.log_file_size : MDEV-15668 - Not found pattern; modified in 10.0.35 +innodb.mvcc : Added in 10.0.35 +innodb.read_only_recover_committed : Added in 10.0.35 +innodb.recovery_shutdown : MDEV-15671 - Warning: database page corruption; modified in 10.0.35 +innodb.xa_recovery : MDEV-15279 - mysqld got exception +innodb_fts.innobase_drop_fts_index_table : Modified in 10.0.35 innodb_fts.innodb-fts-fic : MDEV-14154 - Assertion failure -innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning - -innodb_zip.wl5522_debug_zip : Added in 10.0.34 +innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning; modified in 10.0.35 +innodb_fts.innodb_fts_result_cache_limit : Modified in 10.0.35 #---------------------------------------------------------------- -maria.lock : Modified in 10.0.34 -maria.maria : MDEV-14430 - Wrong result; modified in 10.0.34 -maria.repair : Added in 10.0.34 +maria.dynamic : Added in 10.0.35 +maria.maria : MDEV-14430 - Wrong result #---------------------------------------------------------------- @@ -162,9 +178,9 @@ multi_source.status_vars : MDEV-4632 - failed while waiting for Slave_received_h #---------------------------------------------------------------- -parts.partition_alter_innodb : Added in 10.0.34 -parts.partition_alter_maria : Modified in 10.0.34 -parts.partition_alter_myisam : Added in 10.0.34 +parts.partition_alter_innodb : Include file modified in 10.0.35 +parts.partition_alter_maria : Modified in 10.0.35 +parts.partition_alter_myisam : Include file modified in 10.0.35 parts.partition_auto_increment_maria : MDEV-14430 - wrong result parts.partition_debug_innodb : MDEV-15095 - table does not exist parts.partition_exch_qa_10 : MDEV-11765 - wrong result @@ -182,14 +198,12 @@ perfschema_stress.* : MDEV-10996 - tests not maintained #---------------------------------------------------------------- plugins.feedback_plugin_send : MDEV-7932 - ssl failed for url, MDEV-11118 - wrong result -plugins.server_audit : MDEV-9562 - crashes on sol10-sparc; modified in 10.0.34 -plugins.thread_pool_server_audit : MDEV-9562 - crashes on sol10-sparc, MDEV-14295 - wrong result; modified in 10.0.34 +plugins.server_audit : MDEV-9562 - crashes on sol10-sparc; modified in 10.0.35 +plugins.thread_pool_server_audit : MDEV-9562 - crashes on sol10-sparc, MDEV-14295 - wrong result #---------------------------------------------------------------- roles.create_and_grant_role : MDEV-11772 - wrong result -roles.flush_roles-12366 : Added in 10.0.34 -roles.set_role-13655 : Added in 10.0.34 #---------------------------------------------------------------- @@ -233,7 +247,7 @@ spider/bg.direct_aggregate : MDEV-7098 - Trying to unlock mutex that wasn't spider/bg.direct_aggregate_part : MDEV-7098 - Trying to unlock mutex that wasn't locked spider/bg.spider3_fixes : MDEV-7098 - Trying to unlock mutex that wasn't locked spider/bg.spider_fixes_part : MDEV-7098 - Trying to unlock mutex that wasn't locked -spider/bg.ha : MDEV-7914, MDEV-9329 - Crash, failures on s390x +spider/bg.ha : MDEV-7914 (fixed in 10.3), MDEV-9329 - Crash, failures on s390x spider/bg.ha_part : MDEV-9329 - Fails on Ubuntu/s390x spider/bg.spider_fixes : MDEV-7098, MDEV-9329 - Mutex problem, failures on s390x spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x @@ -253,15 +267,11 @@ stress.ddl_innodb : MDEV-10635 - Testcase timeout #---------------------------------------------------------------- sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x -sys_vars.innodb_buffer_pool_dump_now_basic : Modified in 10.0.34 -sys_vars.innodb_buffer_pool_dump_pct_basic : Modified in 10.0.34 -sys_vars.innodb_buffer_pool_load_now_basic : Modified in 10.0.34 -sys_vars.innodb_print_lock_wait_timeout_info_basic : Added in 10.0.34 +sys_vars.max_prepared_stmt_count_basic : Modified in 10.0.35 sys_vars.thread_cache_size_func : MDEV-11775 - wrong result #---------------------------------------------------------------- -tokudb.card_scale_percent : Modified in 10.0.34 tokudb.change_column_all_1000_10 : MDEV-12640 - Lost connection during query tokudb.change_column_bin : MDEV-12640 - Lost connection during query tokudb.change_column_char : MDEV-12822 - Lost connection during query @@ -269,14 +279,12 @@ tokudb.cluster_filter_unpack_varchar : MDEV-10636 - Wrong execution plan tokudb.dir_per_db : MDEV-11537 - wrong result tokudb.dir_per_db_rename_to_nonexisting_schema : MDEV-12823 - Valgrind tokudb.hotindex-insert-bigchar : MDEV-13870 - ASAN failures +tokudb.hotindex-update-0 : MDEV-15198 - Timeout tokudb.hotindex-update-1 : MDEV-12640 - Lost connection during query -tokudb.locking-read-repeatable-read-1 : Added in 10.0.34 -tokudb.locking-read-repeatable-read-2 : Added in 10.0.34 tokudb.locks-select-update-1 : MDEV-13406 - Lock wait timeout -tokudb.nonflushing_analyze_debug : Added in 10.0.34 tokudb.rows-32m-rand-insert : MDEV-12640 - Lost connection during query tokudb.rows-32m-seq-insert : MDEV-12640 - Lost connection during query -tokudb.row_format : Modified in 10.0.34 +tokudb.savepoint-5 : MDEV-15280 - wrong result tokudb_backup.* : MDEV-11001 - tests don't work @@ -287,11 +295,6 @@ tokudb_bugs.frm_store2 : MDEV-12823 - Valgrind tokudb_bugs.frm_store3 : MDEV-12823 - Valgrind tokudb_bugs.xa : MDEV-11804 - Lock wait timeout -tokudb_parts.nonflushing_analyze_debug : Added in 10.0.34 - -tokudb_perfschema.crash_tokudb : Added in 10.0.34 -tokudb_perfschema.start_server_tokudb : Added in 10.0.34 - tokudb_rpl.* : MDEV-11001 - tests don't work tokudb_sys_vars.* : MDEV-11001 - tests don't work @@ -301,7 +304,7 @@ rpl-tokudb.* : MDEV-14354 - Tests fail with tcmalloc unit.lf : MDEV-12897 - Unexpected return code unit.ma_test_loghandler : MDEV-10638 - record read not ok -unit.pfs : MySQL:84457 - unittest pft-t failing +unit.my_atomic : MDEV-15670 - Signal 11 thrown #---------------------------------------------------------------- From a1ea8d6f8117179f412799bde1587c210a319b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Apr 2018 22:44:09 +0300 Subject: [PATCH 21/45] Follow-up fix to MDEV-14705: Flush log at shutdown In commit e7f4e61f6e013e8879a64dae3ab0370ec137a121 the call fil_flush_file_spaces(FIL_LOG) is necessary. Tablespaces will be flushed as part of the redo log checkpoint, but the redo log will not necessarily be flushed, depending on innodb_flush_method. --- storage/innobase/log/log0log.cc | 3 +++ storage/xtradb/log/log0log.cc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index 3d9fa801e52..6546459354b 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -3463,6 +3463,9 @@ wait_suspend_loop: mutex_exit(&log_sys->mutex); + /* Ensure that all buffered changes are written to the + redo log before fil_close_all_files(). */ + fil_flush_file_spaces(FIL_LOG); } else { lsn = srv_start_lsn; } diff --git a/storage/xtradb/log/log0log.cc b/storage/xtradb/log/log0log.cc index cb61e3fb0c6..1420f5a3a12 100644 --- a/storage/xtradb/log/log0log.cc +++ b/storage/xtradb/log/log0log.cc @@ -3780,6 +3780,9 @@ wait_suspend_loop: mutex_exit(&log_sys->mutex); + /* Ensure that all buffered changes are written to the + redo log before fil_close_all_files(). */ + fil_flush_file_spaces(FIL_LOG); } else { lsn = srv_start_lsn; } From 74f22939dcb8f3a4d574f84f1296ac77f28a6735 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Fri, 27 Apr 2018 11:05:04 +0200 Subject: [PATCH 22/45] MDEV-15803 Fix and re-enable test galera_var_auto_inc_control_on The test assumes that `@@global.auto_increment_offset` is equal to `wsrep_local_index + 1`. Which is normally the case if galera runs with option `wsrep_auto_increment_control` enabled. However, if some prior test performs a restart of a server, then `wsrep_local_index` may change, and galera will set the value of `auto_increment_offset` accordingly. However, if `auto_increment_offset` changes during a test run, then mtr will complain. To avoid that, tests that perform restarts include `auto_increment_offset_save.inc` and `auto_increment_offset_restore.inc`. Which reset the value of `auto_increment_offset`. And when that happens, `auto_increment_offset` will no longer be equal to `wsrep_local_index + 1`, and the test fails. To avoid this problem, simply check that the offsets are different on the nodes that compose the cluster. --- mysql-test/suite/galera/disabled.def | 1 - .../r/galera_var_auto_inc_control_on.result | 18 ++---------- .../t/galera_var_auto_inc_control_on.test | 29 ++++++++++--------- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 4c0a5c7fd9f..294efa9c444 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -28,6 +28,5 @@ galera_ssl_upgrade : MDEV-13549 Galera test failures galera.MW-329 : wsrep_local_replays not stable galera.MW-328A : have_deadlocks test not stable galera_var_retry_autocommit : MDEV-15794 Test failure on galera.galera_var_retry_autocommit -galera_var_auto_inc_control_on : MDEV-15803 Test failure on galera.galera_var_auto_inc_control_on query_cache : MDEV-15805 Test failure on galera.query_cache diff --git a/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result b/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result index 0cbba2fa124..b9b00cfe1ac 100644 --- a/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result +++ b/mysql-test/suite/galera/r/galera_var_auto_inc_control_on.result @@ -1,29 +1,15 @@ CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -VARIABLE_VALUE -2 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index'; -VARIABLE_VALUE -0 SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') 1 -SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1; -@@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1 +auto_increment_offset_differ 1 INSERT INTO t1 VALUES (DEFAULT, 'node1');; INSERT INTO t1 VALUES (DEFAULT, 'node2');; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -VARIABLE_VALUE -2 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index'; -VARIABLE_VALUE -1 SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size') 1 -SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1; -@@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1 +auto_increment_offset_differ 1 INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2');; INSERT INTO t1 VALUES (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1');; diff --git a/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test b/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test index 6abaecb144b..ee31be94edd 100644 --- a/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test +++ b/mysql-test/suite/galera/t/galera_var_auto_inc_control_on.test @@ -5,24 +5,21 @@ --source include/galera_cluster.inc --source include/have_innodb.inc -# Save original auto_increment_offset values. ---let $node_1=node_1 ---let $node_2=node_2 ---source include/auto_increment_offset_save.inc - --connection node_1 CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB; +--let $auto_increment_offset_node_1 = `SELECT @@global.auto_increment_offset` # auto_increment_increment is equal to the number of nodes -# auto_increment_offset is equal to the ID of the node - -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index'; SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); -SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1; + +--connection node_2 +--disable_query_log +--eval SELECT @@global.auto_increment_offset != $auto_increment_offset_node_1 AS auto_increment_offset_differ; +--enable_query_log # Expect no conflicts +--connection node_1 --send INSERT INTO t1 VALUES (DEFAULT, 'node1'); --connection node_2 @@ -34,12 +31,18 @@ SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_ --connection node_2 --reap -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index'; +--let $auto_increment_offset_node_2 = `SELECT @@global.auto_increment_offset` +# auto_increment_increment is equal to the number of nodes SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'); -SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1; + +--connection node_1 +--disable_query_log +--eval SELECT @@global.auto_increment_offset != $auto_increment_offset_node_2 AS auto_increment_offset_differ; +--enable_query_log + # Expect no conflicts +--connection node_2 --send INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'); --connection node_1 From 5cfe52314e29386e1867fad1b44eace2b9d0be7e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 27 Apr 2018 11:21:55 +0200 Subject: [PATCH 23/45] Bug#25471090: MYSQL USE AFTER FREE fix another similar line followup for 7828ba0df488 --- sql-common/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-common/client.c b/sql-common/client.c index bb7bdb1ff7d..9cb3311d2e1 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1636,7 +1636,7 @@ MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, else { cur->data[field] = to; - if (len > (ulong) (end_to - to)) + if (to + len > end_to) { free_rows(result); set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); From b8d4ae08382bc79a82f298bdc6117a6e20a39fe3 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Fri, 27 Apr 2018 12:02:23 +0200 Subject: [PATCH 24/45] Save / restore auto_increment_offset in test galera_gcs_fragment Test galera_gcs_fragment performs cluster reconfiguration, so `auto_increment_offset` may change, and check test case at the end of test fails. --- mysql-test/suite/galera/t/galera_gcs_fragment.test | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mysql-test/suite/galera/t/galera_gcs_fragment.test b/mysql-test/suite/galera/t/galera_gcs_fragment.test index 0436e312f6e..80d3a5cb659 100644 --- a/mysql-test/suite/galera/t/galera_gcs_fragment.test +++ b/mysql-test/suite/galera/t/galera_gcs_fragment.test @@ -3,6 +3,11 @@ --source include/have_innodb.inc --source suite/galera/include/galera_have_debug_sync.inc +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + # Prepare table CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 TEXT); @@ -65,3 +70,5 @@ SELECT * FROM t1; --connection node_1 DROP TABLE t1; + +--source include/auto_increment_offset_restore.inc From a52c46e06935b09ff9219ae7684b5a29394e992b Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 30 Apr 2018 13:50:59 +0200 Subject: [PATCH 25/45] Bug#25471090: MYSQL USE AFTER FREE a better fix --- sql-common/client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql-common/client.c b/sql-common/client.c index 9cb3311d2e1..b485ebf4f60 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1636,7 +1636,7 @@ MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, else { cur->data[field] = to; - if (to + len > end_to) + if (unlikely(len > (ulong)(end_to-to) || to > end_to)) { free_rows(result); set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); @@ -1708,7 +1708,7 @@ read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths) } else { - if (pos + len > end_pos) + if (unlikely(len > (ulong)(end_pos - pos) || pos > end_pos)) { set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate); return -1; From fab383aac0a713b48765d0464428199470ae8c0a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 30 Apr 2018 23:06:09 +0200 Subject: [PATCH 26/45] Use after free in authentication --- mysql-test/r/connect_debug.result | 5 +++++ mysql-test/t/connect_debug.test | 12 ++++++++++++ sql-common/client.c | 4 ++-- sql/sql_acl.cc | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 mysql-test/r/connect_debug.result create mode 100644 mysql-test/t/connect_debug.test diff --git a/mysql-test/r/connect_debug.result b/mysql-test/r/connect_debug.result new file mode 100644 index 00000000000..0452b238db9 --- /dev/null +++ b/mysql-test/r/connect_debug.result @@ -0,0 +1,5 @@ +set @old_dbug=@@global.debug_dbug; +set global debug_dbug='+d,auth_disconnect'; +create user 'bad' identified by 'worse'; +set global debug_dbug=@old_dbug; +drop user bad; diff --git a/mysql-test/t/connect_debug.test b/mysql-test/t/connect_debug.test new file mode 100644 index 00000000000..299b605b2cd --- /dev/null +++ b/mysql-test/t/connect_debug.test @@ -0,0 +1,12 @@ +source include/have_debug.inc; +set @old_dbug=@@global.debug_dbug; + +# +# use after free if need plugin change and auth aborted +# +set global debug_dbug='+d,auth_disconnect'; +create user 'bad' identified by 'worse'; +--error 1 +--exec $MYSQL --default-auth=mysql_old_password --user=bad --password=worse +set global debug_dbug=@old_dbug; +drop user bad; diff --git a/sql-common/client.c b/sql-common/client.c index b485ebf4f60..00e2877bedb 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -2742,7 +2742,7 @@ static int client_mpvio_read_packet(struct st_plugin_vio *mpv, uchar **buf) *buf= mysql->net.read_pos; /* was it a request to change plugins ? */ - if (**buf == 254) + if (pkt_len == packet_error || **buf == 254) return (int)packet_error; /* if yes, this plugin shan't continue */ /* @@ -2927,7 +2927,7 @@ int run_plugin_auth(MYSQL *mysql, char *data, uint data_len, compile_time_assert(CR_OK == -1); compile_time_assert(CR_ERROR == 0); - if (res > CR_OK && mysql->net.read_pos[0] != 254) + if (res > CR_OK && (mysql->net.last_errno || mysql->net.read_pos[0] != 254)) { /* the plugin returned an error. write it down in mysql, diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 16358409124..14f34db6ccc 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -8217,6 +8217,7 @@ static bool send_plugin_request_packet(MPVIO_EXT *mpvio, const char *client_auth_plugin= ((st_mysql_auth *) (plugin_decl(mpvio->plugin)->info))->client_auth_plugin; + DBUG_EXECUTE_IF("auth_disconnect", { vio_close(net->vio); DBUG_RETURN(1); }); DBUG_ASSERT(client_auth_plugin); /* From f47eac2882b8635b8de252cdca8e46200b1ff724 Mon Sep 17 00:00:00 2001 From: Mayank Prasad Date: Wed, 10 Jan 2018 20:54:09 +0530 Subject: [PATCH 27/45] Bug #25928471: ONLINE ALTER AND CONCURRENT DELETE ON TABLE WITH MANY TEXT COLUMNS CAUSES CRASH Issue: ------ Prefix for externally stored columns were being stored in online_log when a table is altered and alter causes table to be rebuilt. Space in online_log is limited and if length of prefix of externally stored columns is very big, then it is being written to online log without making sure if it fits. This leads to memory corruption. Fix: ---- After fix for Bug#16544143, there is no need to store prefixes of externally stored columnd in online_log. Thus remove the code which stores column prefixes for externally stored columns. Also, before writing anything on online_log, make sure it fits to available memory to avoid memory corruption. Read RB page for more details. Reviewed-by: Annamalai Gurusami RB: 18239 --- storage/innobase/row/row0log.cc | 126 +++++--------------------------- storage/xtradb/row/row0log.cc | 126 +++++--------------------------- 2 files changed, 36 insertions(+), 216 deletions(-) diff --git a/storage/innobase/row/row0log.cc b/storage/innobase/row/row0log.cc index 62ca32b712c..1383c91f41f 100644 --- a/storage/innobase/row/row0log.cc +++ b/storage/innobase/row/row0log.cc @@ -435,6 +435,8 @@ err_exit: *avail = srv_sort_buf_size - log->tail.bytes; if (size > *avail) { + /* Make sure log->tail.buf is large enough */ + ut_ad(size <= sizeof log->tail.buf); return(log->tail.buf); } else { return(log->tail.block + log->tail.bytes); @@ -528,12 +530,10 @@ row_log_table_delete( { ulint old_pk_extra_size; ulint old_pk_size; - ulint ext_size = 0; ulint mrec_size; ulint avail_size; mem_heap_t* heap = NULL; const dtuple_t* old_pk; - row_ext_t* ext; ut_ad(dict_index_is_clust(index)); ut_ad(rec_offs_validate(rec, index, offsets)); @@ -614,72 +614,20 @@ row_log_table_delete( &old_pk_extra_size); ut_ad(old_pk_extra_size < 0x100); - mrec_size = 6 + old_pk_size; - - /* Log enough prefix of the BLOB unless both the - old and new table are in COMPACT or REDUNDANT format, - which store the prefix in the clustered index record. */ - if (rec_offs_any_extern(offsets) - && (dict_table_get_format(index->table) >= UNIV_FORMAT_B - || dict_table_get_format(new_table) >= UNIV_FORMAT_B)) { - - /* Build a cache of those off-page column prefixes - that are referenced by secondary indexes. It can be - that none of the off-page columns are needed. */ - row_build(ROW_COPY_DATA, index, rec, - offsets, NULL, NULL, NULL, &ext, heap); - if (ext) { - /* Log the row_ext_t, ext->ext and ext->buf */ - ext_size = ext->n_ext * ext->max_len - + sizeof(*ext) - + ext->n_ext * sizeof(ulint) - + (ext->n_ext - 1) * sizeof ext->len; - mrec_size += ext_size; - } - } + /* 2 = 1 (extra_size) + at least 1 byte payload */ + mrec_size = 2 + old_pk_size; if (byte* b = row_log_table_open(index->online_log, mrec_size, &avail_size)) { *b++ = ROW_T_DELETE; *b++ = static_cast(old_pk_extra_size); - /* Log the size of external prefix we saved */ - mach_write_to_4(b, ext_size); - b += 4; - rec_convert_dtuple_to_temp( b + old_pk_extra_size, new_index, old_pk->fields, old_pk->n_fields); b += old_pk_size; - if (ext_size) { - ulint cur_ext_size = sizeof(*ext) - + (ext->n_ext - 1) * sizeof ext->len; - - memcpy(b, ext, cur_ext_size); - b += cur_ext_size; - - /* Check if we need to col_map to adjust the column - number. If columns were added/removed/reordered, - adjust the column number. */ - if (const ulint* col_map = - index->online_log->col_map) { - for (ulint i = 0; i < ext->n_ext; i++) { - const_cast(ext->ext[i]) = - col_map[ext->ext[i]]; - } - } - - memcpy(b, ext->ext, ext->n_ext * sizeof(*ext->ext)); - b += ext->n_ext * sizeof(*ext->ext); - - ext_size -= cur_ext_size - + ext->n_ext * sizeof(*ext->ext); - memcpy(b, ext->buf, ext_size); - b += ext_size; - } - row_log_table_close( index->online_log, b, mrec_size, avail_size); } @@ -1601,15 +1549,13 @@ row_log_table_apply_insert( /******************************************************//** Deletes a record from a table that is being rebuilt. @return DB_SUCCESS or error code */ -static MY_ATTRIBUTE((nonnull(1, 2, 4, 5), warn_unused_result)) +static MY_ATTRIBUTE((nonnull, warn_unused_result)) dberr_t row_log_table_apply_delete_low( /*===========================*/ btr_pcur_t* pcur, /*!< in/out: B-tree cursor, will be trashed */ const ulint* offsets, /*!< in: offsets on pcur */ - const row_ext_t* save_ext, /*!< in: saved external field - info, or NULL */ mem_heap_t* heap, /*!< in/out: memory heap */ mtr_t* mtr) /*!< in/out: mini-transaction, will be committed */ @@ -1633,11 +1579,7 @@ row_log_table_apply_delete_low( /* Build a row template for purging secondary index entries. */ row = row_build( ROW_COPY_DATA, index, btr_pcur_get_rec(pcur), - offsets, NULL, NULL, NULL, - save_ext ? NULL : &ext, heap); - if (!save_ext) { - save_ext = ext; - } + offsets, NULL, NULL, NULL, &ext, heap); } else { row = NULL; } @@ -1656,7 +1598,7 @@ row_log_table_apply_delete_low( } const dtuple_t* entry = row_build_index_entry( - row, save_ext, index, heap); + row, ext, index, heap); mtr_start(mtr); btr_pcur_open(index, entry, PAGE_CUR_LE, BTR_MODIFY_TREE, pcur, mtr); @@ -1699,11 +1641,10 @@ flag_ok: /******************************************************//** Replays a delete operation on a table that was rebuilt. @return DB_SUCCESS or error code */ -static MY_ATTRIBUTE((nonnull(1, 3, 4, 5, 6, 7), warn_unused_result)) +static MY_ATTRIBUTE((nonnull, warn_unused_result)) dberr_t row_log_table_apply_delete( /*=======================*/ - que_thr_t* thr, /*!< in: query graph */ ulint trx_id_col, /*!< in: position of DB_TRX_ID in the new clustered index */ @@ -1712,9 +1653,7 @@ row_log_table_apply_delete( mem_heap_t* offsets_heap, /*!< in/out: memory heap that can be emptied */ mem_heap_t* heap, /*!< in/out: memory heap */ - const row_log_t* log, /*!< in: online log */ - const row_ext_t* save_ext) /*!< in: saved external field - info, or NULL */ + const row_log_t* log) /*!< in: online log */ { dict_table_t* new_table = log->table; dict_index_t* index = dict_table_get_first_index(new_table); @@ -1814,8 +1753,7 @@ all_done: } } - return(row_log_table_apply_delete_low(&pcur, offsets, save_ext, - heap, &mtr)); + return row_log_table_apply_delete_low(&pcur, offsets, heap, &mtr); } /******************************************************//** @@ -2026,7 +1964,7 @@ func_exit_committed: /* Some BLOBs are missing, so we are interpreting this ROW_T_UPDATE as ROW_T_DELETE (see *1). */ error = row_log_table_apply_delete_low( - &pcur, cur_offsets, NULL, heap, &mtr); + &pcur, cur_offsets, heap, &mtr); goto func_exit_committed; } @@ -2064,7 +2002,7 @@ func_exit_committed: } error = row_log_table_apply_delete_low( - &pcur, cur_offsets, NULL, heap, &mtr); + &pcur, cur_offsets, heap, &mtr); ut_ad(mtr.state == MTR_COMMITTED); if (error == DB_SUCCESS) { @@ -2210,8 +2148,6 @@ row_log_table_apply_op( ulint extra_size; const mrec_t* next_mrec; dtuple_t* old_pk; - row_ext_t* ext; - ulint ext_size; ut_ad(dict_index_is_clust(dup->index)); ut_ad(dup->index->table != log->table); @@ -2219,7 +2155,7 @@ row_log_table_apply_op( *error = DB_SUCCESS; - /* 3 = 1 (op type) + 1 (ext_size) + at least 1 byte payload */ + /* 3 = 1 (op type) + 1 (extra_size) + at least 1 byte payload */ if (mrec + 3 >= mrec_end) { return(NULL); } @@ -2269,14 +2205,12 @@ row_log_table_apply_op( break; case ROW_T_DELETE: - /* 1 (extra_size) + 4 (ext_size) + at least 1 (payload) */ - if (mrec + 6 >= mrec_end) { + /* 1 (extra_size) + at least 1 (payload) */ + if (mrec + 2 >= mrec_end) { return(NULL); } extra_size = *mrec++; - ext_size = mach_read_from_4(mrec); - mrec += 4; ut_ad(mrec < mrec_end); /* We assume extra_size < 0x100 for the PRIMARY KEY prefix. @@ -2285,40 +2219,16 @@ row_log_table_apply_op( rec_offs_set_n_fields(offsets, new_index->n_uniq + 2); rec_init_offsets_temp(mrec, new_index, offsets); - next_mrec = mrec + rec_offs_data_size(offsets) + ext_size; + next_mrec = mrec + rec_offs_data_size(offsets); if (next_mrec > mrec_end) { return(NULL); } log->head.total += next_mrec - mrec_start; - /* If there are external fields, retrieve those logged - prefix info and reconstruct the row_ext_t */ - if (ext_size) { - /* We use memcpy to avoid unaligned - access on some non-x86 platforms.*/ - ext = static_cast( - mem_heap_dup(heap, - mrec + rec_offs_data_size(offsets), - ext_size)); - - byte* ext_start = reinterpret_cast(ext); - - ulint ext_len = sizeof(*ext) - + (ext->n_ext - 1) * sizeof ext->len; - - ext->ext = reinterpret_cast(ext_start + ext_len); - ext_len += ext->n_ext * sizeof(*ext->ext); - - ext->buf = static_cast(ext_start + ext_len); - } else { - ext = NULL; - } - *error = row_log_table_apply_delete( - thr, new_trx_id_col, - mrec, offsets, offsets_heap, heap, - log, ext); + new_trx_id_col, + mrec, offsets, offsets_heap, heap, log); break; case ROW_T_UPDATE: diff --git a/storage/xtradb/row/row0log.cc b/storage/xtradb/row/row0log.cc index 52f6a963ec6..c239722e4f7 100644 --- a/storage/xtradb/row/row0log.cc +++ b/storage/xtradb/row/row0log.cc @@ -435,6 +435,8 @@ err_exit: *avail = srv_sort_buf_size - log->tail.bytes; if (size > *avail) { + /* Make sure log->tail.buf is large enough */ + ut_ad(size <= sizeof log->tail.buf); return(log->tail.buf); } else { return(log->tail.block + log->tail.bytes); @@ -528,12 +530,10 @@ row_log_table_delete( { ulint old_pk_extra_size; ulint old_pk_size; - ulint ext_size = 0; ulint mrec_size; ulint avail_size; mem_heap_t* heap = NULL; const dtuple_t* old_pk; - row_ext_t* ext; ut_ad(dict_index_is_clust(index)); ut_ad(rec_offs_validate(rec, index, offsets)); @@ -614,72 +614,20 @@ row_log_table_delete( &old_pk_extra_size); ut_ad(old_pk_extra_size < 0x100); - mrec_size = 6 + old_pk_size; - - /* Log enough prefix of the BLOB unless both the - old and new table are in COMPACT or REDUNDANT format, - which store the prefix in the clustered index record. */ - if (rec_offs_any_extern(offsets) - && (dict_table_get_format(index->table) >= UNIV_FORMAT_B - || dict_table_get_format(new_table) >= UNIV_FORMAT_B)) { - - /* Build a cache of those off-page column prefixes - that are referenced by secondary indexes. It can be - that none of the off-page columns are needed. */ - row_build(ROW_COPY_DATA, index, rec, - offsets, NULL, NULL, NULL, &ext, heap); - if (ext) { - /* Log the row_ext_t, ext->ext and ext->buf */ - ext_size = ext->n_ext * ext->max_len - + sizeof(*ext) - + ext->n_ext * sizeof(ulint) - + (ext->n_ext - 1) * sizeof ext->len; - mrec_size += ext_size; - } - } + /* 2 = 1 (extra_size) + at least 1 byte payload */ + mrec_size = 2 + old_pk_size; if (byte* b = row_log_table_open(index->online_log, mrec_size, &avail_size)) { *b++ = ROW_T_DELETE; *b++ = static_cast(old_pk_extra_size); - /* Log the size of external prefix we saved */ - mach_write_to_4(b, ext_size); - b += 4; - rec_convert_dtuple_to_temp( b + old_pk_extra_size, new_index, old_pk->fields, old_pk->n_fields); b += old_pk_size; - if (ext_size) { - ulint cur_ext_size = sizeof(*ext) - + (ext->n_ext - 1) * sizeof ext->len; - - memcpy(b, ext, cur_ext_size); - b += cur_ext_size; - - /* Check if we need to col_map to adjust the column - number. If columns were added/removed/reordered, - adjust the column number. */ - if (const ulint* col_map = - index->online_log->col_map) { - for (ulint i = 0; i < ext->n_ext; i++) { - const_cast(ext->ext[i]) = - col_map[ext->ext[i]]; - } - } - - memcpy(b, ext->ext, ext->n_ext * sizeof(*ext->ext)); - b += ext->n_ext * sizeof(*ext->ext); - - ext_size -= cur_ext_size - + ext->n_ext * sizeof(*ext->ext); - memcpy(b, ext->buf, ext_size); - b += ext_size; - } - row_log_table_close( index->online_log, b, mrec_size, avail_size); } @@ -1601,15 +1549,13 @@ row_log_table_apply_insert( /******************************************************//** Deletes a record from a table that is being rebuilt. @return DB_SUCCESS or error code */ -static MY_ATTRIBUTE((nonnull(1, 2, 4, 5), warn_unused_result)) +static MY_ATTRIBUTE((nonnull, warn_unused_result)) dberr_t row_log_table_apply_delete_low( /*===========================*/ btr_pcur_t* pcur, /*!< in/out: B-tree cursor, will be trashed */ const ulint* offsets, /*!< in: offsets on pcur */ - const row_ext_t* save_ext, /*!< in: saved external field - info, or NULL */ mem_heap_t* heap, /*!< in/out: memory heap */ mtr_t* mtr) /*!< in/out: mini-transaction, will be committed */ @@ -1633,11 +1579,7 @@ row_log_table_apply_delete_low( /* Build a row template for purging secondary index entries. */ row = row_build( ROW_COPY_DATA, index, btr_pcur_get_rec(pcur), - offsets, NULL, NULL, NULL, - save_ext ? NULL : &ext, heap); - if (!save_ext) { - save_ext = ext; - } + offsets, NULL, NULL, NULL, &ext, heap); } else { row = NULL; } @@ -1656,7 +1598,7 @@ row_log_table_apply_delete_low( } const dtuple_t* entry = row_build_index_entry( - row, save_ext, index, heap); + row, ext, index, heap); mtr_start(mtr); btr_pcur_open(index, entry, PAGE_CUR_LE, BTR_MODIFY_TREE, pcur, mtr); @@ -1699,11 +1641,10 @@ flag_ok: /******************************************************//** Replays a delete operation on a table that was rebuilt. @return DB_SUCCESS or error code */ -static MY_ATTRIBUTE((nonnull(1, 3, 4, 5, 6, 7), warn_unused_result)) +static MY_ATTRIBUTE((nonnull, warn_unused_result)) dberr_t row_log_table_apply_delete( /*=======================*/ - que_thr_t* thr, /*!< in: query graph */ ulint trx_id_col, /*!< in: position of DB_TRX_ID in the new clustered index */ @@ -1712,9 +1653,7 @@ row_log_table_apply_delete( mem_heap_t* offsets_heap, /*!< in/out: memory heap that can be emptied */ mem_heap_t* heap, /*!< in/out: memory heap */ - const row_log_t* log, /*!< in: online log */ - const row_ext_t* save_ext) /*!< in: saved external field - info, or NULL */ + const row_log_t* log) /*!< in: online log */ { dict_table_t* new_table = log->table; dict_index_t* index = dict_table_get_first_index(new_table); @@ -1814,8 +1753,7 @@ all_done: } } - return(row_log_table_apply_delete_low(&pcur, offsets, save_ext, - heap, &mtr)); + return row_log_table_apply_delete_low(&pcur, offsets, heap, &mtr); } /******************************************************//** @@ -2026,7 +1964,7 @@ func_exit_committed: /* Some BLOBs are missing, so we are interpreting this ROW_T_UPDATE as ROW_T_DELETE (see *1). */ error = row_log_table_apply_delete_low( - &pcur, cur_offsets, NULL, heap, &mtr); + &pcur, cur_offsets, heap, &mtr); goto func_exit_committed; } @@ -2064,7 +2002,7 @@ func_exit_committed: } error = row_log_table_apply_delete_low( - &pcur, cur_offsets, NULL, heap, &mtr); + &pcur, cur_offsets, heap, &mtr); ut_ad(mtr.state == MTR_COMMITTED); if (error == DB_SUCCESS) { @@ -2210,8 +2148,6 @@ row_log_table_apply_op( ulint extra_size; const mrec_t* next_mrec; dtuple_t* old_pk; - row_ext_t* ext; - ulint ext_size; ut_ad(dict_index_is_clust(dup->index)); ut_ad(dup->index->table != log->table); @@ -2219,7 +2155,7 @@ row_log_table_apply_op( *error = DB_SUCCESS; - /* 3 = 1 (op type) + 1 (ext_size) + at least 1 byte payload */ + /* 3 = 1 (op type) + 1 (extra_size) + at least 1 byte payload */ if (mrec + 3 >= mrec_end) { return(NULL); } @@ -2269,14 +2205,12 @@ row_log_table_apply_op( break; case ROW_T_DELETE: - /* 1 (extra_size) + 4 (ext_size) + at least 1 (payload) */ - if (mrec + 6 >= mrec_end) { + /* 1 (extra_size) + at least 1 (payload) */ + if (mrec + 2 >= mrec_end) { return(NULL); } extra_size = *mrec++; - ext_size = mach_read_from_4(mrec); - mrec += 4; ut_ad(mrec < mrec_end); /* We assume extra_size < 0x100 for the PRIMARY KEY prefix. @@ -2285,40 +2219,16 @@ row_log_table_apply_op( rec_offs_set_n_fields(offsets, new_index->n_uniq + 2); rec_init_offsets_temp(mrec, new_index, offsets); - next_mrec = mrec + rec_offs_data_size(offsets) + ext_size; + next_mrec = mrec + rec_offs_data_size(offsets); if (next_mrec > mrec_end) { return(NULL); } log->head.total += next_mrec - mrec_start; - /* If there are external fields, retrieve those logged - prefix info and reconstruct the row_ext_t */ - if (ext_size) { - /* We use memcpy to avoid unaligned - access on some non-x86 platforms.*/ - ext = static_cast( - mem_heap_dup(heap, - mrec + rec_offs_data_size(offsets), - ext_size)); - - byte* ext_start = reinterpret_cast(ext); - - ulint ext_len = sizeof(*ext) - + (ext->n_ext - 1) * sizeof ext->len; - - ext->ext = reinterpret_cast(ext_start + ext_len); - ext_len += ext->n_ext * sizeof(*ext->ext); - - ext->buf = static_cast(ext_start + ext_len); - } else { - ext = NULL; - } - *error = row_log_table_apply_delete( - thr, new_trx_id_col, - mrec, offsets, offsets_heap, heap, - log, ext); + new_trx_id_col, + mrec, offsets, offsets_heap, heap, log); break; case ROW_T_UPDATE: From a411910dd677f161b301c095f36373f4f5da5555 Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Thu, 3 May 2018 10:26:00 -0400 Subject: [PATCH 28/45] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 75daccdd9d4..59a439d4152 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=0 -MYSQL_VERSION_PATCH=35 +MYSQL_VERSION_PATCH=36 From 1cb7c4bfc05b85f4384f4a719568d29b83abf1da Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 3 May 2018 16:14:54 +0100 Subject: [PATCH 29/45] MDEV-16084 Calling exit() from a signal handler is unsafe. Call _exit() from signal handler. main() can just do return. --- mysql-test/lib/My/SafeProcess/safe_process.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/mysql-test/lib/My/SafeProcess/safe_process.cc b/mysql-test/lib/My/SafeProcess/safe_process.cc index feb3eb4df66..5f6544414e2 100644 --- a/mysql-test/lib/My/SafeProcess/safe_process.cc +++ b/mysql-test/lib/My/SafeProcess/safe_process.cc @@ -89,7 +89,7 @@ static void die(const char* fmt, ...) } -static void kill_child(bool was_killed) +static int kill_child(bool was_killed) { int status= 0; @@ -108,15 +108,15 @@ static void kill_child(bool was_killed) exit_code= WEXITSTATUS(status); message("Child exit: %d", exit_code); // Exit with exit status of the child - exit(exit_code); + return exit_code; } if (WIFSIGNALED(status)) message("Child killed by signal: %d", WTERMSIG(status)); - exit(exit_code); + return exit_code; } - exit(5); + return 5; } @@ -136,7 +136,7 @@ extern "C" void handle_signal(int sig) terminated= 1; if (child_pid > 0) - kill_child(sig == SIGCHLD); + _exit(kill_child(sig == SIGCHLD)); // Ignore further signals signal(SIGTERM, SIG_IGN); @@ -292,8 +292,6 @@ int main(int argc, char* const argv[] ) /* Wait for parent or child to die */ sleep(1); } - kill_child(0); - - return 4; + return kill_child(0); } From 1d58d184c2c4ddd8a3b2be6f86d76c4e57bbe14f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 4 May 2018 00:09:45 +0200 Subject: [PATCH 30/45] protocol: verify that number of rows is correct --- sql-common/client.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/sql-common/client.c b/sql-common/client.c index 00e2877bedb..6321e64bc75 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1483,7 +1483,9 @@ unpack_fields(MYSQL *mysql, MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, { uchar *pos; /* fields count may be wrong */ - DBUG_ASSERT((uint) (field - result) < fields); + if (field - result >= fields) + goto err; + cli_fetch_lengths(&lengths[0], row->data, default_value ? 8 : 7); field->catalog= strmake_root(alloc,(char*) row->data[0], lengths[0]); field->db= strmake_root(alloc,(char*) row->data[1], lengths[1]); @@ -1501,12 +1503,7 @@ unpack_fields(MYSQL *mysql, MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, /* Unpack fixed length parts */ if (lengths[6] != 12) - { - /* malformed packet. signal an error. */ - free_rows(data); /* Free old data */ - set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); - DBUG_RETURN(0); - } + goto err; pos= (uchar*) row->data[6]; field->charsetnr= uint2korr(pos); @@ -1533,6 +1530,8 @@ unpack_fields(MYSQL *mysql, MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, /* old protocol, for backward compatibility */ for (row=data->data; row ; row = row->next,field++) { + if (field - result >= fields) + goto err; cli_fetch_lengths(&lengths[0], row->data, default_value ? 6 : 5); field->org_table= field->table= strdup_root(alloc,(char*) row->data[0]); field->name= strdup_root(alloc,(char*) row->data[1]); @@ -1569,8 +1568,17 @@ unpack_fields(MYSQL *mysql, MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, } } #endif /* DELETE_SUPPORT_OF_4_0_PROTOCOL */ + if (field - result < fields) + goto err; free_rows(data); /* Free old data */ DBUG_RETURN(result); + +err: + /* malformed packet. signal an error. */ + free_rows(data); + free_root(alloc, MYF(0)); + set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate); + DBUG_RETURN(0); } /* Read all rows (fields or data) from server */ From 04b1e61d69ebfdeab196c28ef19316b27f8588bc Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 4 May 2018 15:51:13 +0200 Subject: [PATCH 31/45] compiler warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit storage/connect/tabjson.cpp:198:10: warning: converting to non-pointer type ‘int’ from NULL [-Wconversion-null] return NULL; --- storage/connect/tabjson.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index b66682e0190..9e4f5ab987d 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -195,7 +195,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); if (!(tdp->Database = SetPath(g, db))) - return NULL; + return 0; tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; @@ -243,14 +243,14 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); if (tjsp->MakeDocument(g)) - return NULL; + return 0; jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL; } else { if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) if (!mgo) { sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty); - return NULL; + return 0; } else tdp->Lrecl = 8192; // Should be enough @@ -269,14 +269,14 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); #else sprintf(g->Message, "Mongo %s Driver not available", "C"); - return NULL; + return 0; #endif } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { #if defined(JAVA_SUPPORT) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else sprintf(g->Message, "Mongo %s Driver not available", "Java"); - return NULL; + return 0; #endif } else { // Driver not specified #if defined(CMGO_SUPPORT) @@ -285,7 +285,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; + return 0; #endif } // endif Driver @@ -304,7 +304,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) tjnp->SetG(G); if (tjnp->OpenDB(g)) - return NULL; + return 0; switch (tjnp->ReadDB(g)) { case RC_EF: From 39d248fa555350756a569d766f11eec4c65c5b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 4 May 2018 22:41:36 +0300 Subject: [PATCH 32/45] MDEV-16092 Crash in encryption.create_or_replace If the tablespace is dropped or truncated after the space->is_stopping() check in fil_crypt_get_page_throttle_func(), we would proceed to request the page, and eventually report a fatal error. buf_page_get_gen(): Do not retry reading if mode==BUF_GET_POSSIBLY_FREED. lock_rec_block_validate(): Be prepared for a NULL return value when invoking buf_page_get_gen() with mode=BUF_GET_POSSIBLY_FREED. --- storage/innobase/buf/buf0buf.cc | 7 ++++++- storage/innobase/lock/lock0lock.cc | 8 ++++---- storage/xtradb/buf/buf0buf.cc | 7 ++++++- storage/xtradb/lock/lock0lock.cc | 8 ++++---- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index e3c2337659e..3b160209cf0 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2018, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -3189,6 +3189,11 @@ loop: ibuf_inside(mtr)); retries = 0; + } else if (mode == BUF_GET_POSSIBLY_FREED) { + if (err) { + *err = local_err; + } + return NULL; } else if (retries < BUF_PAGE_READ_MAX_RETRIES) { ++retries; diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc index 12c0051d09f..441fcace7c3 100644 --- a/storage/innobase/lock/lock0lock.cc +++ b/storage/innobase/lock/lock0lock.cc @@ -6895,10 +6895,10 @@ lock_rec_block_validate( page_no, RW_X_LATCH, NULL, BUF_GET_POSSIBLY_FREED, __FILE__, __LINE__, &mtr); - - buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK); - - ut_ad(lock_rec_validate_page(block)); + if (block) { + buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK); + ut_ad(lock_rec_validate_page(block)); + } mtr_commit(&mtr); fil_space_release(space); diff --git a/storage/xtradb/buf/buf0buf.cc b/storage/xtradb/buf/buf0buf.cc index 83e38fbcc98..12c5c6efb29 100644 --- a/storage/xtradb/buf/buf0buf.cc +++ b/storage/xtradb/buf/buf0buf.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2018, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -3088,6 +3088,11 @@ loop: ibuf_inside(mtr), trx); retries = 0; + } else if (mode == BUF_GET_POSSIBLY_FREED) { + if (err) { + *err = local_err; + } + return NULL; } else if (retries < BUF_PAGE_READ_MAX_RETRIES) { ++retries; diff --git a/storage/xtradb/lock/lock0lock.cc b/storage/xtradb/lock/lock0lock.cc index b8446013bc7..549cc411f69 100644 --- a/storage/xtradb/lock/lock0lock.cc +++ b/storage/xtradb/lock/lock0lock.cc @@ -6955,10 +6955,10 @@ lock_rec_block_validate( page_no, RW_X_LATCH, NULL, BUF_GET_POSSIBLY_FREED, __FILE__, __LINE__, &mtr); - - buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK); - - ut_ad(lock_rec_validate_page(block)); + if (block) { + buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK); + ut_ad(lock_rec_validate_page(block)); + } mtr_commit(&mtr); fil_space_release(space); From f214d365121f1d9b5835134f4bead929831971f5 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 17 Apr 2018 00:44:34 +0200 Subject: [PATCH 33/45] ASAN error in is_stat_table() don't memcmp beyond the first argument's end Also: use my_strcasecmp(table_alias_charset), like elsewhere, not memcmp --- sql/sql_statistics.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 1b073be361e..2a97c37e477 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -3990,11 +3990,11 @@ bool is_stat_table(const char *db, const char *table) { DBUG_ASSERT(db && table); - if (!memcmp(db, stat_tables_db_name.str, stat_tables_db_name.length)) + if (!my_strcasecmp(table_alias_charset, db, stat_tables_db_name.str)) { for (uint i= 0; i < STATISTICS_TABLES; i ++) { - if (!memcmp(table, stat_table_name[i].str, stat_table_name[i].length)) + if (!my_strcasecmp(table_alias_charset, table, stat_table_name[i].str)) return true; } } From b4e8ad5080eeeda283f93fbf7f84d7580ec829c0 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 6 May 2018 14:59:15 +0200 Subject: [PATCH 34/45] update test results --- mysql-test/suite/sys_vars/r/sysvars_innodb,32bit,xtradb.rdiff | 4 ++-- mysql-test/suite/sys_vars/r/sysvars_innodb,xtradb.rdiff | 4 ++-- mysql-test/suite/sys_vars/r/sysvars_innodb.result | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit,xtradb.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit,xtradb.rdiff index 14ab4de4f94..65439e3ae5a 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit,xtradb.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit,xtradb.rdiff @@ -1210,8 +1210,8 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_VERSION SESSION_VALUE NULL --GLOBAL_VALUE 5.6.37 -+GLOBAL_VALUE 5.6.38-83.0 +-GLOBAL_VALUE 5.6.40 ++GLOBAL_VALUE 5.6.39-83.1 GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,xtradb.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,xtradb.rdiff index 55d53713b8a..dafdde75e12 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb,xtradb.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,xtradb.rdiff @@ -684,8 +684,8 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_VERSION SESSION_VALUE NULL --GLOBAL_VALUE 5.6.37 -+GLOBAL_VALUE 5.6.38-83.0 +-GLOBAL_VALUE 5.6.40 ++GLOBAL_VALUE 5.6.39-83.1 GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index fd33338cbc8..05bb199acbf 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -2401,7 +2401,7 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_VERSION SESSION_VALUE NULL -GLOBAL_VALUE 5.6.37 +GLOBAL_VALUE 5.6.40 GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL From 7b9486d2eb3876d55edc05173235e6ccad2e6ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 7 May 2018 11:52:05 +0300 Subject: [PATCH 35/45] MDEV-14693 XA: Assertion `!clust_index->online_log' failed in rollback_inplace_alter_table ha_innobase::commit_inplace_alter_table(): Defer the freeing of ctx->trx until after the operation has been successfully committed. In this way, rollback on a partitioned table will be possible. rollback_inplace_alter_table(): Handle ctx->new_table == NULL when ctx->trx != NULL. --- .../innodb/r/alter_partitioned_xa.result | 15 ++++++ .../suite/innodb/t/alter_partitioned_xa.test | 31 +++++++++++ storage/innobase/handler/handler0alter.cc | 52 +++++++++++-------- storage/xtradb/handler/handler0alter.cc | 52 +++++++++++-------- 4 files changed, 104 insertions(+), 46 deletions(-) create mode 100644 mysql-test/suite/innodb/r/alter_partitioned_xa.result create mode 100644 mysql-test/suite/innodb/t/alter_partitioned_xa.test diff --git a/mysql-test/suite/innodb/r/alter_partitioned_xa.result b/mysql-test/suite/innodb/r/alter_partitioned_xa.result new file mode 100644 index 00000000000..4bce2f8676f --- /dev/null +++ b/mysql-test/suite/innodb/r/alter_partitioned_xa.result @@ -0,0 +1,15 @@ +# +# MDEV-14693 XA: Assertion `!clust_index->online_log' failed +# in rollback_inplace_alter_table +# +CREATE TABLE t1 (a INT, b INT) ENGINE=InnoDB PARTITION BY HASH(a) PARTITIONS 2; +XA START 'xid'; +INSERT INTO t1 VALUES (1,10); +CREATE DATABASE IF NOT EXISTS db; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the ACTIVE state +SET innodb_lock_wait_timeout= 1, lock_wait_timeout= 2; +ALTER TABLE t1 FORCE; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +XA END 'xid'; +XA ROLLBACK 'xid'; +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/alter_partitioned_xa.test b/mysql-test/suite/innodb/t/alter_partitioned_xa.test new file mode 100644 index 00000000000..f0883802cd6 --- /dev/null +++ b/mysql-test/suite/innodb/t/alter_partitioned_xa.test @@ -0,0 +1,31 @@ +--source include/have_innodb.inc +--source include/have_partition.inc + +--echo # +--echo # MDEV-14693 XA: Assertion `!clust_index->online_log' failed +--echo # in rollback_inplace_alter_table +--echo # + +# A bug in meta-data locking (MDL) for XA transactions causes +# a bug in InnoDB error handling for ALTER TABLE to be triggered. +CREATE TABLE t1 (a INT, b INT) ENGINE=InnoDB PARTITION BY HASH(a) PARTITIONS 2; +XA START 'xid'; +INSERT INTO t1 VALUES (1,10); +# XA bug: The following releases the MDL on t1! +--error ER_XAER_RMFAIL +CREATE DATABASE IF NOT EXISTS db; + +--connect (con1,localhost,root,,test) +SET innodb_lock_wait_timeout= 1, lock_wait_timeout= 2; +# Here, innodb_lock_wait_timeout would be exceeded, causing the operation +# to roll back when InnoDB is attempting to commit. +# (Instead, lock_wait_timeout should be exceeded!) +--error ER_LOCK_WAIT_TIMEOUT +ALTER TABLE t1 FORCE; + +# Cleanup +--disconnect con1 +--connection default +XA END 'xid'; +XA ROLLBACK 'xid'; +DROP TABLE t1; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 508275f091d..86935a4aa34 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -4296,12 +4296,16 @@ rollback_inplace_alter_table( row_mysql_lock_data_dictionary(ctx->trx); if (ctx->need_rebuild()) { - dberr_t err; - ulint flags = ctx->new_table->flags; - /* DML threads can access ctx->new_table via the online rebuild log. Free it first. */ innobase_online_rebuild_log_free(prebuilt->table); + } + + if (!ctx->new_table) { + ut_ad(ctx->need_rebuild()); + } else if (ctx->need_rebuild()) { + dberr_t err; + ulint flags = ctx->new_table->flags; /* Since the FTS index specific auxiliary tables has not yet registered with "table->fts" by fts_add_index(), @@ -5669,21 +5673,6 @@ ha_innobase::commit_inplace_alter_table( ut_ad(prebuilt->table == ctx0->old_table); ha_alter_info->group_commit_ctx = NULL; - /* Free the ctx->trx of other partitions, if any. We will only - use the ctx0->trx here. Others may have been allocated in - the prepare stage. */ - - for (inplace_alter_handler_ctx** pctx = &ctx_array[1]; *pctx; - pctx++) { - ha_innobase_inplace_ctx* ctx - = static_cast(*pctx); - - if (ctx->trx) { - trx_free_for_mysql(ctx->trx); - ctx->trx = NULL; - } - } - trx_start_if_not_started_xa(prebuilt->trx); for (inplace_alter_handler_ctx** pctx = ctx_array; *pctx; pctx++) { @@ -6056,10 +6045,6 @@ foreign_fail: covering all partitions. */ share->idx_trans_tbl.index_count = 0; - if (trx == ctx0->trx) { - ctx0->trx = NULL; - } - /* Tell the InnoDB server that there might be work for utility threads: */ @@ -6082,10 +6067,31 @@ foreign_fail: } row_mysql_unlock_data_dictionary(trx); - trx_free_for_mysql(trx); + if (trx != ctx0->trx) { + trx_free_for_mysql(trx); + } DBUG_RETURN(true); } + if (trx == ctx0->trx) { + ctx0->trx = NULL; + } + + /* Free the ctx->trx of other partitions, if any. We will only + use the ctx0->trx here. Others may have been allocated in + the prepare stage. */ + + for (inplace_alter_handler_ctx** pctx = &ctx_array[1]; *pctx; + pctx++) { + ha_innobase_inplace_ctx* ctx + = static_cast(*pctx); + + if (ctx->trx) { + trx_free_for_mysql(ctx->trx); + ctx->trx = NULL; + } + } + /* Release the table locks. */ trx_commit_for_mysql(prebuilt->trx); diff --git a/storage/xtradb/handler/handler0alter.cc b/storage/xtradb/handler/handler0alter.cc index 4a50b324e22..ff524e6a9be 100644 --- a/storage/xtradb/handler/handler0alter.cc +++ b/storage/xtradb/handler/handler0alter.cc @@ -4310,12 +4310,16 @@ rollback_inplace_alter_table( row_mysql_lock_data_dictionary(ctx->trx); if (ctx->need_rebuild()) { - dberr_t err; - ulint flags = ctx->new_table->flags; - /* DML threads can access ctx->new_table via the online rebuild log. Free it first. */ innobase_online_rebuild_log_free(prebuilt->table); + } + + if (!ctx->new_table) { + ut_ad(ctx->need_rebuild()); + } else if (ctx->need_rebuild()) { + dberr_t err; + ulint flags = ctx->new_table->flags; /* Since the FTS index specific auxiliary tables has not yet registered with "table->fts" by fts_add_index(), @@ -5677,21 +5681,6 @@ ha_innobase::commit_inplace_alter_table( ut_ad(prebuilt->table == ctx0->old_table); ha_alter_info->group_commit_ctx = NULL; - /* Free the ctx->trx of other partitions, if any. We will only - use the ctx0->trx here. Others may have been allocated in - the prepare stage. */ - - for (inplace_alter_handler_ctx** pctx = &ctx_array[1]; *pctx; - pctx++) { - ha_innobase_inplace_ctx* ctx - = static_cast(*pctx); - - if (ctx->trx) { - trx_free_for_mysql(ctx->trx); - ctx->trx = NULL; - } - } - trx_start_if_not_started_xa(prebuilt->trx); for (inplace_alter_handler_ctx** pctx = ctx_array; *pctx; pctx++) { @@ -6057,10 +6046,6 @@ foreign_fail: covering all partitions. */ share->idx_trans_tbl.index_count = 0; - if (trx == ctx0->trx) { - ctx0->trx = NULL; - } - /* Tell the InnoDB server that there might be work for utility threads: */ @@ -6083,10 +6068,31 @@ foreign_fail: } row_mysql_unlock_data_dictionary(trx); - trx_free_for_mysql(trx); + if (trx != ctx0->trx) { + trx_free_for_mysql(trx); + } DBUG_RETURN(true); } + if (trx == ctx0->trx) { + ctx0->trx = NULL; + } + + /* Free the ctx->trx of other partitions, if any. We will only + use the ctx0->trx here. Others may have been allocated in + the prepare stage. */ + + for (inplace_alter_handler_ctx** pctx = &ctx_array[1]; *pctx; + pctx++) { + ha_innobase_inplace_ctx* ctx + = static_cast(*pctx); + + if (ctx->trx) { + trx_free_for_mysql(ctx->trx); + ctx->trx = NULL; + } + } + /* Release the table locks. */ trx_commit_for_mysql(prebuilt->trx); From 0d429dcb37aec2c9f768b57162e9751dff5cf1f7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 6 May 2018 22:47:30 +0200 Subject: [PATCH 36/45] rename a test --- ...assign_key_cache-5405.result => assign_key_cache_debug.result} | 0 .../t/{assign_key_cache-5405.test => assign_key_cache_debug.test} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename mysql-test/r/{assign_key_cache-5405.result => assign_key_cache_debug.result} (100%) rename mysql-test/t/{assign_key_cache-5405.test => assign_key_cache_debug.test} (100%) diff --git a/mysql-test/r/assign_key_cache-5405.result b/mysql-test/r/assign_key_cache_debug.result similarity index 100% rename from mysql-test/r/assign_key_cache-5405.result rename to mysql-test/r/assign_key_cache_debug.result diff --git a/mysql-test/t/assign_key_cache-5405.test b/mysql-test/t/assign_key_cache_debug.test similarity index 100% rename from mysql-test/t/assign_key_cache-5405.test rename to mysql-test/t/assign_key_cache_debug.test From 1025363a35571d5a0ba7023287104d23c7aa61d5 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Tue, 8 May 2018 02:13:07 +0300 Subject: [PATCH 37/45] Updated list of unstable tests for 10.1.33 release --- mysql-test/unstable-tests | 136 ++++++++++++++++++++------------------ 1 file changed, 70 insertions(+), 66 deletions(-) diff --git a/mysql-test/unstable-tests b/mysql-test/unstable-tests index 4e60b356cd9..5c795bf79c8 100644 --- a/mysql-test/unstable-tests +++ b/mysql-test/unstable-tests @@ -23,64 +23,67 @@ # ############################################################################## +# Based on 10.1 0db66ab18ffef6d8920e2e6ff66e99516a458a4d + main.alter_table_trans : MDEV-12084 - timeout main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result main.auth_named_pipe : MDEV-14724 - System error 2 -main.create : Modified in 10.1.31 +main.connect : Modified in 10.1.33 +main.connect_debug : Added in 10.1.33 main.create_delayed : MDEV-10605 - failed with timeout main.ctype_latin1 : Modified in 10.1.32 +main.ctype_ucs : Modified in 10.1.33 main.ctype_utf16le : MDEV-10675: timeout or extra warnings main.ctype_utf8 : Modified in 10.1.32 -main.derived : Modified in 10.1.31 +main.ctype_utf8mb4 : Modified in 10.1.33 main.dyncol : Modified in 10.1.32 main.events_2 : MDEV-13277 - Server crash main.events_bugs : MDEV-12892 - Crash in fill_schema_processlist main.events_slowlog : MDEV-12821 - Wrong result main.events_restart : MDEV-12236 - Server shutdown problem main.fast_prefix_index_fetch_innodb : Modified in 10.1.32 -main.fulltext : Modified in 10.1.31 -main.func_concat : Modified in 10.1.31 main.func_date_add : Modified in 10.1.32 -main.func_isnull : Modified in 10.1.31 +main.func_misc : Modified in 10.1.33 +main.func_str : Modified in 10.1.33 main.func_time : Modified in 10.1.32 main.having : Modified in 10.1.32 main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown main.index_intersect_innodb : MDEV-10643 - failed with timeout main.index_merge_innodb : MDEV-7142 - Wrong execution plan, timeout with valgrind main.innodb_mysql_lock : MDEV-7861 - sporadic lock detection failure -main.join_cache : Modified in 10.1.31 main.join_outer : Modified in 10.1.32 main.kill_processlist-6619 : MDEV-10793 - wrong result in processlist -main.mdev_14586 : Added in 10.1.31 main.mdev-504 : MDEV-10607 - sporadic "can't connect" -main.mdev375 : MDEV-10607 - sporadic "can't connect" -main.merge : MDEV-10607 - sporadic "can't connect"; modified in 10.1.31 -main.myisam_optimize : Modified in 10.1.31 +main.mdev375 : MDEV-10607 - sporadic "can't connect"; modified in 10.1.33 +main.merge : MDEV-10607 - sporadic "can't connect" +main.myisam : Modified in 10.1.33 +main.myisam_recover : Modified in 10.1.33 main.mysql_client_test_nonblock : MDEV-15096 - exec failed main.mysql_upgrade_noengine : MDEV-14355 - Plugin is busy -main.mysqldump-nl : Modified in 10.1.31 main.mysqlslap : MDEV-11801 - timeout main.mysqltest : MDEV-9269 - fails on Alpha -main.order_by : Modified in 10.1.31 main.order_by_optimizer_innodb : MDEV-10683 - wrong execution plan -main.partition : Modified in 10.1.31 +main.parser : Modified in 10.1.33 main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings -main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count; modified in 10.1.31 +main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count main.ps_qc_innodb : Added in 10.1.32 main.query_cache : MDEV-12895 - Wrong result -main.query_cache_debug : MDEV-15665 - Resize or similar command in progress; modified in 10.1.31 +main.query_cache_debug : MDEV-15281 - Resize or similar command in progress main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away -main.repair : Modified in 10.1.31 +main.read_only_innodb : Modified in 10.1.33 main.set_statement : MDEV-13183 - Wrong result main.show_explain : MDEV-10674 - sporadic failure -main.sp : Modified in 10.1.31 +main.sp : Modified in 10.1.33 +main.sp-destruct : Modified in 10.1.33 +main.sp-innodb : Modified in 10.1.33 main.sp-security : MDEV-10607 - sporadic "can't connect" +main.statistics : Modified in 10.1.33 main.status : MDEV-8510 - sporadic wrong result -main.subselect : Modified in 10.1.31 -main.subselect4 : Modified in 10.1.32 +main.subselect4 : Modified in 10.1.33 main.subselect_innodb : MDEV-10614 - sporadic wrong results main.subselect_mat : Modified in 10.1.32 +main.subselect_sj : Modified in 10.1.33 main.symlink-aria-11902 : MDEV-15098 - error 40 from storage engine main.symlink-myisam-11902 : MDEV-15098 - error 40 from storage engine main.tc_heuristic_recover : MDEV-15200 - wrong error on mysqld_stub_cmd @@ -88,11 +91,8 @@ main.type_blob : MDEV-15195 - Wrong result main.type_datetime_hires : MDEV-10687 - timeout main.type_time : Modified in 10.1.32 main.type_time_6065 : Modified in 10.1.32 -main.union : Modified in 10.1.31 -main.update_innodb : Modified in 10.1.31 -main.view : Modified in 10.1.32 -main.xa : Modified in 10.1.31 -main.xml : Modified in 10.1.31 +main.variables : Modified in 10.1.33 +main.view : Modified in 10.1.33 #---------------------------------------------------------------- @@ -119,7 +119,21 @@ binlog_encryption.rpl_typeconv : MDEV-14362 - Lost connection to MySQL serve #---------------------------------------------------------------- +connect.jdbc : Included file modified in 10.1.33 +connect.jdbc_new : Included file modified in 10.1.33 +connect.jdbc_oracle : Included file modified in 10.1.33 +connect.jdbc_postgresql : Modified in 10.1.33 +connect.json_java_2 : Included file modified in 10.1.33 +connect.json_java_3 : Included file modified in 10.1.33 +connect.json_mongo_c : Included file modified in 10.1.33 +connect.json_udf : Modified in 10.1.33 +connect.mongo_c : Included file modified in 10.1.33 +connect.mongo_java_2 : Included file modified in 10.1.33 +connect.mongo_java_3 : Included file modified in 10.1.33 +connect.mongo_test : Modified in 10.1.33 connect.pivot : MDEV-14803 - failed to discover table +connect.tbl_thread : Modified in 10.1.33 +connect.vcol : Added in 10.1.33 connect.zip : MDEV-13884 - Wrong result #---------------------------------------------------------------- @@ -128,24 +142,21 @@ disks.disks : Added in 10.1.32 #---------------------------------------------------------------- -encryption.create_or_replace : MDEV-9359 - Assertion failure, MDEV-13516 - Assertion failure -encryption.debug_key_management : MDEV-13841 - Timeout on wait condition; modified in 10.1.31 -encryption.encrypt_and_grep : MDEV-13765 - Wrong result; modified in 10.1.31 +encryption.create_or_replace : MDEV-16115 - Trying to access tablespace +encryption.debug_key_management : MDEV-13841 - Timeout on wait condition +encryption.encrypt_and_grep : MDEV-13765 - Wrong result encryption.innodb-bad-key-change : Modified in 10.1.32 -encryption.innodb-bad-key-change2 : MDEV-12632 - Valgrind warnings encryption.innodb-compressed-blob : MDEV-14728 - Unable to get certificate -encryption.innodb-discard-import-change : MDEV-12632 - Valgrind warnings -encryption.innodb_encryption : Modified in 10.1.31 -encryption.innodb_encryption_discard_import : MDEV-12903 - Wrong result -encryption.innodb_encryption_filekeys : Modified in 10.1.32 +encryption.innodb_encryption_discard_import : MDEV-16116 - Wrong result; modified in 10.1.33 +encryption.innodb_encryption_filekeys : Modified in 10.1.33 encryption.innodb_encryption-page-compression : MDEV-12630 - crash or assertion failure; modified in 10.1.32 -encryption.innodb_encryption_tables : MDEV-9359 - Assertion failure -encryption.innodb_first_page : MDEV-10689 - crashes +encryption.innodb_encryption_row_compressed : MDEV-16113 - Crash +encryption.innodb_first_page : MDEV-10689 - Crash encryption.innodb-first-page-read : MDEV-14356 - Timeout on wait condition -encryption.innodb_lotoftables : MDEV-11531 - InnoDB error -encryption.innodb-missing-key : MDEV-9359 - assertion failure +encryption.innodb_lotoftables : MDEV-16111 - Wrong result encryption.innodb-page_encryption : MDEV-10641 - mutex problem encryption.innodb-redo-badkey : MDEV-12898 - Server hang on startup +encryption.innodb-remove-encryption : Added in 10.1.33 encryption.innodb_scrub : MDEV-8139 - scrubbing tests need fixing encryption.innodb_scrub_background : MDEV-8139 - scrubbing tests need fixing encryption.innodb_scrub_compressed : MDEV-8139 - scrubbing tests need fixing @@ -163,7 +174,6 @@ federated.federated_innodb : MDEV-10617, MDEV-10417 - Wrong checksum, time federated.federated_partition : MDEV-10417 - Fails on Mips federated.federated_transactions : MDEV-10617, MDEV-10417 - Wrong checksum, timeouts, fails on Mips federated.federatedx : MDEV-10617 - Wrong checksum, timeouts -federated.net_thd_crash-12951 : Added in 10.1.31 #---------------------------------------------------------------- @@ -192,6 +202,7 @@ galera.MW-328A : MDEV-13876 - Wrong result #---------------------------------------------------------------- +innodb.alter_partitioned_xa : Added in 10.1.33 innodb.binlog_consistent : MDEV-10618 - Server fails to start innodb.default_row_format_alter : Added in 10.1.32 innodb.default_row_format_compatibility : Added in 10.1.32 @@ -199,32 +210,29 @@ innodb.default_row_format_create : Added in 10.1.32 innodb.doublewrite : MDEV-12905 - Lost connection to MySQL server innodb.file_format_defaults : Added in 10.1.32 innodb_fts.fulltext2 : MDEV-14727 - Long semaphore wait -innodb.innodb : Opt file modified in 10.1.31 innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup innodb.innodb-alter-debug : MDEV-13182 - InnoDB: adjusting FSP_SPACE_FLAGS +innodb.innodb-alter-nullable : Modified in 10.1.33 innodb.innodb-alter-table : MDEV-10619 - Testcase timeout innodb.innodb-blob : MDEV-12053 - Client crash innodb.innodb_bug14147491 : MDEV-11808 - wrong error codes +innodb.innodb_bug27216817 : Added in 10.1.33 innodb.innodb_bug30423 : MDEV-7311 - Wrong number of rows in the plan innodb.innodb_bug48024 : MDEV-14352 - Assertion failure -innodb.innodb_corrupt_bit : Modified in 10.1.31 innodb.innodb-fk : MDEV-13832 - Assertion failure on shutdown -innodb.innodb-index-online : Modified in 10.1.31 -innodb.innodb-lru-force-no-free-page : Added in 10.1.31 innodb.innodb_max_recordsize_64k : MDEV-15203 - wrong result innodb.innodb-page_compression_lzma : MDEV-14353 - wrong result on Fedora 25 innodb.innodb-page_compression_zip : MDEV-10641 - mutex problem -innodb.innodb-replace-debug : Modified in 10.1.31 innodb.innodb_stats : MDEV-10682 - wrong result innodb.innodb_sys_semaphore_waits : MDEV-10331 - wrong result innodb.innodb_zip_innochecksum2 : MDEV-13882 - Warning: difficult to find free blocks innodb.log_file_size : MDEV-15668 - Not found pattern innodb.mvcc : Added in 10.1.32 innodb.read_only_recover_committed : Added in 10.1.32 -innodb.recovery_shutdown : Modified in 10.1.32 +innodb.recovery_shutdown : MDEV-15671 - Warning: database page corruption; modified in 10.1.32 innodb.restart : Added in 10.1.32 innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace -innodb.table_definition_cache_debug : MDEV-14206 - Extra warning; opt file modified in 10.1.31 +innodb.table_definition_cache_debug : MDEV-14206 - Extra warning innodb.table_flags : MDEV-14363 - Operating system error number 2 innodb_fts.fulltext_misc : MDEV-12636 - Valgrind warnings @@ -235,17 +243,14 @@ innodb_zip.innodb-zip : Modified in 10.1.32 #---------------------------------------------------------------- maria.dynamic : Added in 10.1.32 -maria.insert_select : MDEV-15666 - Timeout -maria.lock : Modified in 10.1.31 -maria.maria : MDEV-14430 - Wrong result; modified in 10.1.31 -maria.repair : Added in 10.1.31 +maria.insert_select : MDEV-12757 - Timeout +maria.maria : MDEV-14430 - Wrong result #---------------------------------------------------------------- -mariabackup.huge_lsn : Added in 10.1.31 +mariabackup.absolute_ibdata_paths : Added in 10.1.33 mariabackup.incremental_encrypted : MDEV-15667 - Timeout mariabackup.mdev-14447 : MDEV-15201 - Timeout -mariabackup.missing_ibd : Added in 10.1.31 mariabackup.undo_space_id : Added in 10.1.32 mariabackup.xb_compressed_encrypted : MDEV-14812 - Segfault @@ -273,8 +278,9 @@ multi_source.status_vars : MDEV-4632 - failed while waiting for Slave_received_h #---------------------------------------------------------------- -parts.partition_alter_maria : Modified in 10.1.32 -parts.partition_alter_myisam : Modified in 10.1.32 +parts.partition_alter_innodb : Include file modified in 10.1.33 +parts.partition_alter_maria : Include file modified in 10.1.33 +parts.partition_alter_myisam : Include file modified in 10.1.33 parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query parts.partition_auto_increment_maria : MDEV-14430 - Wrong result parts.partition_basic_symlink_innodb : Modified in 10.1.32 @@ -285,6 +291,8 @@ parts.partition_innodb_status_file : MDEV-12901 - Valgrind perfschema.func_file_io : MDEV-5708 - fails for s390x perfschema.func_mutex : MDEV-5708 - fails for s390x +perfschema.hostcache_ipv4_max_con : Modified in 10.1.33 +perfschema.hostcache_ipv6_max_con : Modified in 10.1.33 perfschema.privilege_table_io : MDEV-13184 - Extra lines perfschema.setup_actors : MDEV-10679 - rare crash perfschema.socket_summary_by_event_name_func : MDEV-10622 - Socket summary tables do not match @@ -305,6 +313,7 @@ rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log rpl.rpl_binlog_index : MDEV-9501 - Warning: failed registering on master +rpl.rpl_colSize : MDEV-16112 - Server crash rpl.rpl_ddl : MDEV-10417 - Fails on Mips rpl.rpl_domain_id_filter_io_crash : MDEV-14357 - Wrong result rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result @@ -321,7 +330,6 @@ rpl.rpl_insert_delayed : MDEV-9329 - Fails on Ubuntu/s390x rpl.rpl_insert_id : MDEV-15197 - Wrong result rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips -rpl.rpl_manual_change_index_file : Modified in 10.1.31 rpl.rpl_mariadb_slave_capability : MDEV-11018 - sporadic wrong events in binlog rpl.rpl_mdev6020 : MDEV-10630, MDEV-10417 - Timeouts, fails on Mips rpl.rpl_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed @@ -336,6 +344,7 @@ rpl.rpl_parallel_retry : MDEV-11119 - Server crash rpl.rpl_parallel_temptable : MDEV-10356 - Crash in close_thread_tables rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings +rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed rpl.rpl_row_img_eng_min : MDEV-13875 - command "diff_files" failed @@ -371,8 +380,8 @@ spider/bg.basic_sql : MDEV-12900 - Valgrind spider/bg.direct_aggregate : MDEV-7098 - Trying to unlock mutex that wasn't locked spider/bg.direct_aggregate_part : MDEV-7098 - Trying to unlock mutex that wasn't locked spider/bg.function : MDEV-12900 - Valgrind -spider/bg.ha : MDEV-7914 - Crash, MDEV-9329 - failures on s390x -spider/bg.ha_part : MDEV-7914 - Crash, MDEV-9329 - Fails on Ubuntu/s390x +spider/bg.ha : MDEV-7914 - Crash (only fixed in 10.3), MDEV-9329 - failures on s390x +spider/bg.ha_part : MDEV-7914 - Crash (only fixed in 10.3), MDEV-9329 - Fails on Ubuntu/s390x spider/bg.spider_fixes : MDEV-7098 -Mutex problem, MDEV-9329 - failures on s390x, MDEV-12900 - Valgrind spider/bg.spider3_fixes : MDEV-12639 - Packets out of order spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x @@ -396,16 +405,18 @@ stress.ddl_innodb : MDEV-10635 - Testcase timeout sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x sys_vars.keep_files_on_create_basic : MDEV-10676 - timeout sys_vars.innodb_default_row_format_basic : Added in 10.1.32 -sys_vars.innodb_print_lock_wait_timeout_info_basic : Added in 10.1.31 sys_vars.log_slow_admin_statements_func : MDEV-12235 - Server crash +sys_vars.max_prepared_stmt_count_basic : Modified in 10.1.33 sys_vars.rpl_init_slave_func : MDEV-10149 - wrong results +sys_vars.sysvars_innodb : Opt file modified in 10.1.33 +sys_vars.sysvars_server_embedded : Opt file added in 10.1.33 +sys_vars.sysvars_server_notembedded : Opt file added in 10.1.33 sys_vars.thread_cache_size_func : MDEV-11775 - Wrong result sys_vars.wait_timeout_func : MDEV-12896 - Wrong result sys_vars.wsrep_sst_receive_address_basic : Modified in 10.1.32 #---------------------------------------------------------------- -tokudb.card_scale_percent : Modified in 10.1.31 tokudb.change_column_all_1000_10 : MDEV-12640 - Crash tokudb.change_column_bin : MDEV-12640 - Crash tokudb.change_column_char : MDEV-12822 - Lost connection to MySQL server @@ -415,13 +426,10 @@ tokudb.cluster_filter_unpack_varchar : MDEV-10636 - Wrong execution plan tokudb.dir_per_db : MDEV-11537 - Wrong result tokudb.dir_per_db_rename_to_nonexisting_schema : MDEV-14359 - Directory not empty tokudb.hotindex-insert-bigchar : MDEV-12640 - Crash +tokudb.hotindex-insert-0 : MDEV-15271 - Timeout tokudb.hotindex-insert-1 : MDEV-13870 - Lost connection to MySQL server tokudb.hotindex-update-0 : MDEV-15198 - Timeout tokudb.hotindex-update-1 : MDEV-12640 - Crash -tokudb.locking-read-repeatable-read-1 : Added in 10.1.31 -tokudb.locking-read-repeatable-read-2 : Added in 10.1.31 -tokudb.nonflushing_analyze_debug : Added in 10.1.31 -tokudb.row_format : Modified in 10.1.31 tokudb.rows-32m-rand-insert : MDEV-12640 - Crash tokudb.rows-32m-seq-insert : MDEV-12640 - Crash tokudb.savepoint-5 : MDEV-15280 - Wrong result @@ -429,15 +437,11 @@ tokudb.type_datetime : MDEV-15193 - Wrong result tokudb_bugs.checkpoint_lock : MDEV-10637 - Wrong processlist output tokudb_bugs.checkpoint_lock_3 : MDEV-10637 - Wrong processlist output +tokudb_bugs.db917 : Modified in 10.1.33 tokudb_bugs.xa : MDEV-11804 - Lock wait timeout tokudb_mariadb.mdev6657 : Modified in 10.1.32 -tokudb_parts.nonflushing_analyze_debug : Added in 10.1.31 - -tokudb_perfschema.crash_tokudb : Added in 10.1.31 -tokudb_perfschema.start_server_tokudb : Added in 10.1.31 - #---------------------------------------------------------------- unit.lf : MDEV-12897 - Signal 11 thrown From 087ea8f820f46e200a2f8f84328c078555dda45f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 8 May 2018 10:31:35 +0200 Subject: [PATCH 38/45] de-obfuscate rpl_*_implicit_commit_binlog test --- .../rpl_tests/rpl_implicit_commit_binlog.test | 708 +++--------------- .../r/rpl_mixed_implicit_commit_binlog.result | 532 +++---------- .../r/rpl_row_implicit_commit_binlog.result | 531 +++---------- .../r/rpl_stm_implicit_commit_binlog.result | 519 +++---------- 4 files changed, 451 insertions(+), 1839 deletions(-) diff --git a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test index 765757c3427..20c79ed4b3b 100644 --- a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test +++ b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test @@ -32,627 +32,97 @@ INSERT INTO tt_2(ddl_case) VALUES(0); --echo # CHECK IMPLICT COMMIT --echo ######################################################################### SET AUTOCOMMIT= 0; -let $ddl_cases= 43; -while ($ddl_cases >= 1) -{ - --echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- - let $in_temporary= no; - let $ok= yes; - # - # In SBR and MIXED modes, the commit event is usually the third event in the - # binary log: - # - # 1: BEGIN - # 2: INSERT - # 3: COMMIT - # 4: DDL EVENT which triggered the previous commmit. - # - if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`) - { - let $commit_event_row_number= 3; - } - # - # In RBR mode, the commit event is usually the fourth event in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: COMMIT - # 5: DDL EVENT which triggered the previous commmit. - # - if (`select @@binlog_format = 'ROW'`) - { - let $commit_event_row_number= 4; - } - # - # In NDB (RBR and MIXED modes), the commit event is usually the seventh event - # in the binary log: - # - # 1: COMMAND - # 2: BEGIN - # 3: TABLE MAP EVENT - # 4: TABLE MAP EVENT (ndb_apply_status) - # 5: ROW EVENT - # 6: ROW EVENT - # 7: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 7; - } - - let $first_binlog_position= query_get_value("SHOW MASTER STATUS", Position, 1); - --enable_query_log - eval INSERT INTO tt_1(ddl_case) VALUES ($ddl_cases); - if ($ddl_cases == 43) - { - let $cmd= CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; - } - if ($ddl_cases == 42) - { - let $cmd= DROP FUNCTION myfunc_int; - } - if ($ddl_cases == 41) - { - let $cmd= LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; - if ($engine == NDB) - { - # This seems to be related to epochs. - # We need to check this against an updated version or avoid it. - let $ok= no; - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 40) - { - let $cmd= LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 39) - { - let $cmd= ANALYZE TABLE nt_1; - } - if ($ddl_cases == 38) - { - let $cmd= CHECK TABLE nt_1; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 37) - { - let $cmd= OPTIMIZE TABLE nt_1; - } - if ($ddl_cases == 36) - { - let $cmd= REPAIR TABLE nt_1; - } - if ($ddl_cases == 35) - { - let $cmd= LOCK TABLES tt_1 WRITE; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 34) - { - let $cmd= UNLOCK TABLES; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 33) - { - let $cmd= CREATE USER 'user'@'localhost'; - } - if ($ddl_cases == 32) - { - let $cmd= GRANT ALL ON *.* TO 'user'@'localhost'; - } - if ($ddl_cases == 31) - { - let $cmd= SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); - # - # In NDB (RBR mode), the commit event is the eleventh event - # in the binary log: - # - # 1: DDL EVENT which triggered the previous commmit. - # 2: BEGIN - # 3: TABLE MAP EVENT - # 4: ROW EVENT - # 5: COMMIT - # 6: BEGIN - # 7: TABLE MAP EVENT - # 8: TABLE MAP EVENT (ndb_apply_status) - # 9: ROW EVENT - # 10: ROW EVENT - # 11: COMMIT - # - if (`SELECT '$engine' = 'NDB' && @@binlog_format = 'ROW'`) - { - let $commit_event_row_number= 11; - } - # - # In NDB (MIXED mode), the commit event is the eighth event - # in the binary log: - # - # 1: DDL EVENT which triggered the previous commmit. - # 2: BEGIN - # 3: TABLE MAP EVENT - # 4: TABLE MAP EVENT (ndb_apply_status) - # 5: ROW EVENT - # 6: ROW EVENT - # 7: COMMIT - # - if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'`) - { - let $commit_event_row_number= 7; - } - } - if ($ddl_cases == 30) - { - let $cmd= REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; - } - if ($ddl_cases == 29) - { - let $cmd= RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; - } - if ($ddl_cases == 28) - { - let $cmd= DROP USER 'user_new'@'localhost'; - } - if ($ddl_cases == 27) - { - let $cmd= CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; - } - if ($ddl_cases == 26) - { - let $cmd= ALTER EVENT evt COMMENT 'evt'; - } - if ($ddl_cases == 25) - { - let $cmd= DROP EVENT evt; - } - if ($ddl_cases == 24) - { - let $cmd= CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; - } - if ($ddl_cases == 23) - { - let $cmd= DROP TRIGGER tr; - # - # In RBR mode, due to the trigger the tt_2 is also updated: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT - # 4: ROW EVENT - # 5: COMMIT - # 6: DDL EVENT which triggered the previous commmit. - # - if (`select @@binlog_format = 'ROW' && '$engine' != 'NDB'`) - { - let $commit_event_row_number= 5; - } - } - if ($ddl_cases == 22) - { - let $cmd= CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; - } - if ($ddl_cases == 21) - { - let $cmd= ALTER FUNCTION fc COMMENT 'fc'; - } - if ($ddl_cases == 20) - { - let $cmd= DROP FUNCTION fc; - } - if ($ddl_cases == 19) - { - let $cmd= CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; - } - if ($ddl_cases == 18) - { - let $cmd= ALTER PROCEDURE pc COMMENT 'pc'; - } - if ($ddl_cases == 17) - { - let $cmd= DROP PROCEDURE pc; - } - if ($ddl_cases == 16) - { - let $cmd= CREATE VIEW v AS SELECT * FROM tt_1; - } - if ($ddl_cases == 15) - { - let $cmd= ALTER VIEW v AS SELECT * FROM tt_1; - } - if ($ddl_cases == 14) - { - let $cmd= DROP VIEW v; - } - if ($ddl_cases == 13) - { - let $cmd= CREATE INDEX ix ON tt_1(ddl_case); - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # 7: DDL EVENT which triggered the previous commmit. - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 12) - { - let $cmd= DROP INDEX ix ON tt_1; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # 7: DDL EVENT which triggered the previous commmit. - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 11) - { - let $cmd= CREATE TEMPORARY TABLE tt_xx (a int); - let $in_temporary= yes; - # In SBR and MIXED modes, the DDL statement is written to the binary log but - # does not commit the current transaction. - # - # 1: BEGIN - # 2: CREATE TEMPORARY - # 3: INSERT - # 4: COMMIT - # - # In RBR the transaction is not committed either and the statement is not - # written to the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: COMMIT - # - if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'` ) - { - let $commit_event_row_number= 4; - } - # - # In NDB (RBR mode), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if (`SELECT '$engine' = 'NDB' && @@binlog_format = 'ROW'` ) - { - let $commit_event_row_number= 6; - } - # - # In NDB (MIXED mode), the commit event is the nineth event - # in the binary log: - # - # 1: BEGIN - # 2: DDL EVENT which triggered the previous commmit. - # 3: COMMIT - # 4: BEGIN - # 5: TABLE MAP EVENT - # 6: TABLE MAP EVENT (ndb_apply_status) - # 7: ROW EVENT - # 8: ROW EVENT - # 9: COMMIT - # - if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'` ) - { - let $commit_event_row_number= 9; - } - } - if ($ddl_cases == 10) - { - let $cmd= ALTER TABLE tt_xx ADD COLUMN (b int); - # - # In MIXED mode, the changes are logged as rows and we have what follows: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: COMMIT - # 5: DDL EVENT which triggered the previous commmit. - # - if (`select @@binlog_format = 'MIXED'`) - { - let $commit_event_row_number= 4; - } - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 9) - { - let $cmd= ALTER TABLE tt_xx RENAME new_tt_xx; - # - # In MIXED mode, the changes are logged as rows and we have what follows: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: COMMIT - # 5: DDL EVENT which triggered the previous commmit. - # - if (`select @@binlog_format = 'MIXED'`) - { - let $commit_event_row_number= 4; - } - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 8) - { - let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx; - let $in_temporary= yes; - # - # In SBR and MIXED modes, the DDL statement is written to the binary log - # but does not commit the current transaction: - # - # In SBR, we have what follows: - # - # 1: BEGIN - # 2: INSERT - # 3: DROP TEMPORARY - # 4: COMMIT - # - # In RBR the transaction is not committed either and the statement is not - # written to the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: COMMIT - # - if (`select @@binlog_format = 'STATEMENT'`) - { - let $commit_event_row_number= 4; - } - # In MIXED mode, the changes are logged as rows and we have what follows: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: ROW EVENT - # 4: DROP TEMPORARY table IF EXISTS - # 5: COMMIT - # - if (`select @@binlog_format = 'MIXED' || @@binlog_format = 'ROW'`) - { - let $commit_event_row_number= 5; - } - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: DROP TEMPORARY table IF EXISTS - # 3: COMMIT - # 4: BEGIN - # 5: TABLE MAP EVENT - # 6: TABLE MAP EVENT (ndb_apply_status) - # 7: ROW EVENT - # 8: ROW EVENT - # 9: COMMIT - # - if ($engine == NDB) - { - let $commit_event_row_number= 9; - } - # - # In NDB (MIXED mode), the commit event is the nineth event - # in the binary log: - # - # 1: BEGIN - # 2: DDL EVENT which triggered the previous commmit. - # 3: COMMIT - # 4: BEGIN - # 5: TABLE MAP EVENT - # 6: TABLE MAP EVENT (ndb_apply_status) - # 7: ROW EVENT - # 8: ROW EVENT - # 9: COMMIT - # - if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'` ) - { - let $commit_event_row_number= 9; - } - } - if ($ddl_cases == 7) - { - let $cmd= CREATE TABLE tt_xx (a int); - } - if ($ddl_cases == 6) - { - let $cmd= ALTER TABLE tt_xx ADD COLUMN (b int); - } - if ($ddl_cases == 5) - { - let $cmd= RENAME TABLE tt_xx TO new_tt_xx; - } - if ($ddl_cases == 4) - { - let $cmd= TRUNCATE TABLE new_tt_xx; - } - if ($ddl_cases == 3) - { - let $cmd= DROP TABLE IF EXISTS tt_xx, new_tt_xx; - } - if ($ddl_cases == 2) - { - let $cmd= CREATE DATABASE db; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # 7: DDL EVENT which triggered the previous commmit. - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - if ($ddl_cases == 1) - { - let $cmd= DROP DATABASE IF EXISTS db; - # - # In NDB (RBR and MIXED modes), the commit event is the sixth event - # in the binary log: - # - # 1: BEGIN - # 2: TABLE MAP EVENT - # 3: TABLE MAP EVENT (ndb_apply_status) - # 4: ROW EVENT - # 5: ROW EVENT - # 6: COMMIT - # 7: DDL EVENT which triggered the previous commmit. - # - if ($engine == NDB) - { - let $commit_event_row_number= 6; - } - } - --replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB - --eval $cmd - --disable_query_log - # - # When a temporary table is either created or dropped, there is no implicit - # commit. The flag in_temporary is used to avoid aborting the test in such - # cases. Thus we force the commit. - # - if ($in_temporary == yes) - { - --eval COMMIT - } - let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number); - if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`) - { - if ($ok == yes) - { - --echo it *does not* commit the current transaction. - --echo $cmd - --echo $event_commit - SHOW BINLOG EVENTS; - exit; - } - } +INSERT INTO tt_1(ddl_case) VALUES (43); +replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB; +eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; +INSERT INTO tt_1(ddl_case) VALUES (42); +DROP FUNCTION myfunc_int; +INSERT INTO tt_1(ddl_case) VALUES (41); +LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; +INSERT INTO tt_1(ddl_case) VALUES (40); +LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; +INSERT INTO tt_1(ddl_case) VALUES (39); +ANALYZE TABLE nt_1; +INSERT INTO tt_1(ddl_case) VALUES (38); +CHECK TABLE nt_1; +INSERT INTO tt_1(ddl_case) VALUES (37); +OPTIMIZE TABLE nt_1; +INSERT INTO tt_1(ddl_case) VALUES (36); +REPAIR TABLE nt_1; +INSERT INTO tt_1(ddl_case) VALUES (35); +LOCK TABLES tt_1 WRITE; +INSERT INTO tt_1(ddl_case) VALUES (34); +UNLOCK TABLES; +INSERT INTO tt_1(ddl_case) VALUES (33); +CREATE USER 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (32); +GRANT ALL ON *.* TO 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (31); +SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); +INSERT INTO tt_1(ddl_case) VALUES (30); +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (29); +RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (28); +DROP USER 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (27); +CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (26); +ALTER EVENT evt COMMENT 'evt'; +INSERT INTO tt_1(ddl_case) VALUES (25); +DROP EVENT evt; +INSERT INTO tt_1(ddl_case) VALUES (24); +CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (23); +DROP TRIGGER tr; +INSERT INTO tt_1(ddl_case) VALUES (22); +CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; +INSERT INTO tt_1(ddl_case) VALUES (21); +ALTER FUNCTION fc COMMENT 'fc'; +INSERT INTO tt_1(ddl_case) VALUES (20); +DROP FUNCTION fc; +INSERT INTO tt_1(ddl_case) VALUES (19); +CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (18); +ALTER PROCEDURE pc COMMENT 'pc'; +INSERT INTO tt_1(ddl_case) VALUES (17); +DROP PROCEDURE pc; +INSERT INTO tt_1(ddl_case) VALUES (16); +CREATE VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (15); +ALTER VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (14); +DROP VIEW v; +INSERT INTO tt_1(ddl_case) VALUES (13); +CREATE INDEX ix ON tt_1(ddl_case); +INSERT INTO tt_1(ddl_case) VALUES (12); +DROP INDEX ix ON tt_1; +INSERT INTO tt_1(ddl_case) VALUES (11); +CREATE TEMPORARY TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (10); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (9); +ALTER TABLE tt_xx RENAME new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (8); +DROP TEMPORARY TABLE IF EXISTS new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (7); +CREATE TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (6); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (5); +RENAME TABLE tt_xx TO new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (4); +TRUNCATE TABLE new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (3); +DROP TABLE IF EXISTS tt_xx, new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (2); +CREATE DATABASE db; +INSERT INTO tt_1(ddl_case) VALUES (1); +DROP DATABASE IF EXISTS db; + +source include/show_binlog_events.inc; - --echo -e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - let $binlog_start= $first_binlog_position; - --echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- - --source include/show_binlog_events.inc - --echo -e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --echo - dec $ddl_cases; -} SET AUTOCOMMIT= 1; --echo ################################################################################### diff --git a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result index 328c3c3423f..e272961abe9 100644 --- a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result @@ -13,612 +13,323 @@ INSERT INTO tt_2(ddl_case) VALUES(0); # CHECK IMPLICT COMMIT ######################################################################### SET AUTOCOMMIT= 0; --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (43); CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (43) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # use `test`; CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "LIB" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (42); DROP FUNCTION myfunc_int; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (42) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (41); LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; Table Op Msg_type Msg_text test.nt_1 preload_keys status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (40); LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; Table Op Msg_type Msg_text test.tt_1 preload_keys note The storage engine for the table doesn't support preload_keys test.tt_2 preload_keys note The storage engine for the table doesn't support preload_keys --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (39); ANALYZE TABLE nt_1; Table Op Msg_type Msg_text test.nt_1 analyze status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- +INSERT INTO tt_1(ddl_case) VALUES (38); +CHECK TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 check status OK +INSERT INTO tt_1(ddl_case) VALUES (37); +OPTIMIZE TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 optimize status Table is already up to date +INSERT INTO tt_1(ddl_case) VALUES (36); +REPAIR TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 repair status OK +INSERT INTO tt_1(ddl_case) VALUES (35); +LOCK TABLES tt_1 WRITE; +INSERT INTO tt_1(ddl_case) VALUES (34); +UNLOCK TABLES; +INSERT INTO tt_1(ddl_case) VALUES (33); +CREATE USER 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (32); +GRANT ALL ON *.* TO 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (31); +SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); +INSERT INTO tt_1(ddl_case) VALUES (30); +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (29); +RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (28); +DROP USER 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (27); +CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (26); +ALTER EVENT evt COMMENT 'evt'; +INSERT INTO tt_1(ddl_case) VALUES (25); +DROP EVENT evt; +INSERT INTO tt_1(ddl_case) VALUES (24); +CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (23); +DROP TRIGGER tr; +INSERT INTO tt_1(ddl_case) VALUES (22); +CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; +INSERT INTO tt_1(ddl_case) VALUES (21); +ALTER FUNCTION fc COMMENT 'fc'; +INSERT INTO tt_1(ddl_case) VALUES (20); +DROP FUNCTION fc; +INSERT INTO tt_1(ddl_case) VALUES (19); +CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (18); +ALTER PROCEDURE pc COMMENT 'pc'; +INSERT INTO tt_1(ddl_case) VALUES (17); +DROP PROCEDURE pc; +INSERT INTO tt_1(ddl_case) VALUES (16); +CREATE VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (15); +ALTER VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (14); +DROP VIEW v; +INSERT INTO tt_1(ddl_case) VALUES (13); +CREATE INDEX ix ON tt_1(ddl_case); +INSERT INTO tt_1(ddl_case) VALUES (12); +DROP INDEX ix ON tt_1; +INSERT INTO tt_1(ddl_case) VALUES (11); +CREATE TEMPORARY TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (10); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (9); +ALTER TABLE tt_xx RENAME new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (8); +DROP TEMPORARY TABLE IF EXISTS new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (7); +CREATE TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (6); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (5); +RENAME TABLE tt_xx TO new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (4); +TRUNCATE TABLE new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (3); +DROP TABLE IF EXISTS tt_xx, new_tt_xx; +Warnings: +Note 1051 Unknown table 'test.tt_xx' +INSERT INTO tt_1(ddl_case) VALUES (2); +CREATE DATABASE db; +INSERT INTO tt_1(ddl_case) VALUES (1); +DROP DATABASE IF EXISTS db; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_2 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE nt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = MyIsam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES(0) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_2(ddl_case) VALUES(0) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (43) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "LIB" +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (42) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) +master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ANALYZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (38); -CHECK TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 check status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (38) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (37); -OPTIMIZE TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 optimize status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (37) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; OPTIMIZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (36); -REPAIR TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 repair status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (36) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REPAIR TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (35); -LOCK TABLES tt_1 WRITE; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (35) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (34); -UNLOCK TABLES; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (34) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (33); -CREATE USER 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (33) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE USER 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (32); -GRANT ALL ON *.* TO 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (32) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; GRANT ALL ON *.* TO 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (31); -SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (31) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; SET PASSWORD FOR 'user'@'localhost'='*D8DECEC305209EEFEC43008E1D420E1AA06B19E0' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (30); -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (30) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (29); -RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (29) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME USER 'user'@'localhost' TO 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (28); -DROP USER 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (28) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP USER 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (27); -CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (27) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (26); -ALTER EVENT evt COMMENT 'evt'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (26) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER EVENT evt COMMENT 'evt' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (25); -DROP EVENT evt; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (25) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP EVENT evt --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (24); -CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (24) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (23); -DROP TRIGGER tr; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (23) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TRIGGER tr --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (22); -CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (22) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `fc`() RETURNS varchar(64) CHARSET latin1 RETURN "fc" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (21); -ALTER FUNCTION fc COMMENT 'fc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (21) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER FUNCTION fc COMMENT 'fc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (20); -DROP FUNCTION fc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (20) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION fc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (19); -CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (19) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `pc`() UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (18); -ALTER PROCEDURE pc COMMENT 'pc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (18) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER PROCEDURE pc COMMENT 'pc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (17); -DROP PROCEDURE pc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (17) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP PROCEDURE pc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (16); -CREATE VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (16) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (15); -ALTER VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (15) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (14); -DROP VIEW v; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (14) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP VIEW v --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (13); -CREATE INDEX ix ON tt_1(ddl_case); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (13) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE INDEX ix ON tt_1(ddl_case) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (12); -DROP INDEX ix ON tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (12) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP INDEX ix ON tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (11); -CREATE TEMPORARY TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (11) master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE tt_xx (a int) +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (10) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (10); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx ADD COLUMN (b int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test.tt_1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (9) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (9); -ALTER TABLE tt_xx RENAME new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx RENAME new_tt_xx master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test.tt_1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (8); -DROP TEMPORARY TABLE IF EXISTS new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test.tt_1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (8) master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`new_tt_xx` /* generated by server */ -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (7); -CREATE TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (7) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE tt_xx (a int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (6); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (6) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx ADD COLUMN (b int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (5); -RENAME TABLE tt_xx TO new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (5) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME TABLE tt_xx TO new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (4); -TRUNCATE TABLE new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (4) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (3); -DROP TABLE IF EXISTS tt_xx, new_tt_xx; -Warnings: -Note 1051 Unknown table 'test.tt_xx' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (3) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `tt_xx`,`new_tt_xx` /* generated by server */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (2); -CREATE DATABASE db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (2) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # CREATE DATABASE db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (1); -DROP DATABASE IF EXISTS db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (1) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # DROP DATABASE IF EXISTS db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - +SET AUTOCOMMIT= 1; ################################################################################### # CHECK CONSISTENCY ################################################################################### @@ -626,4 +337,7 @@ include/diff_tables.inc [master:tt_1,slave:tt_1] ################################################################################### # CLEAN ################################################################################### +DROP TABLE tt_1; +DROP TABLE tt_2; +DROP TABLE nt_1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result index cc537f83ca4..5d6590bd821 100644 --- a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result @@ -13,316 +13,233 @@ INSERT INTO tt_2(ddl_case) VALUES(0); # CHECK IMPLICT COMMIT ######################################################################### SET AUTOCOMMIT= 0; --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (43); CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- +INSERT INTO tt_1(ddl_case) VALUES (42); +DROP FUNCTION myfunc_int; +INSERT INTO tt_1(ddl_case) VALUES (41); +LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; +Table Op Msg_type Msg_text +test.nt_1 preload_keys status OK +INSERT INTO tt_1(ddl_case) VALUES (40); +LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; +Table Op Msg_type Msg_text +test.tt_1 preload_keys note The storage engine for the table doesn't support preload_keys +test.tt_2 preload_keys note The storage engine for the table doesn't support preload_keys +INSERT INTO tt_1(ddl_case) VALUES (39); +ANALYZE TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 analyze status Table is already up to date +INSERT INTO tt_1(ddl_case) VALUES (38); +CHECK TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 check status OK +INSERT INTO tt_1(ddl_case) VALUES (37); +OPTIMIZE TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 optimize status Table is already up to date +INSERT INTO tt_1(ddl_case) VALUES (36); +REPAIR TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 repair status OK +INSERT INTO tt_1(ddl_case) VALUES (35); +LOCK TABLES tt_1 WRITE; +INSERT INTO tt_1(ddl_case) VALUES (34); +UNLOCK TABLES; +INSERT INTO tt_1(ddl_case) VALUES (33); +CREATE USER 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (32); +GRANT ALL ON *.* TO 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (31); +SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); +INSERT INTO tt_1(ddl_case) VALUES (30); +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (29); +RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (28); +DROP USER 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (27); +CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (26); +ALTER EVENT evt COMMENT 'evt'; +INSERT INTO tt_1(ddl_case) VALUES (25); +DROP EVENT evt; +INSERT INTO tt_1(ddl_case) VALUES (24); +CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (23); +DROP TRIGGER tr; +INSERT INTO tt_1(ddl_case) VALUES (22); +CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; +INSERT INTO tt_1(ddl_case) VALUES (21); +ALTER FUNCTION fc COMMENT 'fc'; +INSERT INTO tt_1(ddl_case) VALUES (20); +DROP FUNCTION fc; +INSERT INTO tt_1(ddl_case) VALUES (19); +CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (18); +ALTER PROCEDURE pc COMMENT 'pc'; +INSERT INTO tt_1(ddl_case) VALUES (17); +DROP PROCEDURE pc; +INSERT INTO tt_1(ddl_case) VALUES (16); +CREATE VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (15); +ALTER VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (14); +DROP VIEW v; +INSERT INTO tt_1(ddl_case) VALUES (13); +CREATE INDEX ix ON tt_1(ddl_case); +INSERT INTO tt_1(ddl_case) VALUES (12); +DROP INDEX ix ON tt_1; +INSERT INTO tt_1(ddl_case) VALUES (11); +CREATE TEMPORARY TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (10); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (9); +ALTER TABLE tt_xx RENAME new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (8); +DROP TEMPORARY TABLE IF EXISTS new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (7); +CREATE TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (6); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (5); +RENAME TABLE tt_xx TO new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (4); +TRUNCATE TABLE new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (3); +DROP TABLE IF EXISTS tt_xx, new_tt_xx; +Warnings: +Note 1051 Unknown table 'test.tt_xx' +INSERT INTO tt_1(ddl_case) VALUES (2); +CREATE DATABASE db; +INSERT INTO tt_1(ddl_case) VALUES (1); +DROP DATABASE IF EXISTS db; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_2 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE nt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = MyIsam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.tt_1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.tt_2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "LIB" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (42); -DROP FUNCTION myfunc_int; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (41); -LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; -Table Op Msg_type Msg_text -test.nt_1 preload_keys status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (40); -LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; -Table Op Msg_type Msg_text -test.tt_1 preload_keys note The storage engine for the table doesn't support preload_keys -test.tt_2 preload_keys note The storage engine for the table doesn't support preload_keys --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (39); -ANALYZE TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 analyze status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ANALYZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (38); -CHECK TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 check status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (37); -OPTIMIZE TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 optimize status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; OPTIMIZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (36); -REPAIR TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 repair status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REPAIR TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (35); -LOCK TABLES tt_1 WRITE; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (34); -UNLOCK TABLES; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (33); -CREATE USER 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE USER 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (32); -GRANT ALL ON *.* TO 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; GRANT ALL ON *.* TO 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (31); -SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; SET PASSWORD FOR 'user'@'localhost'='*D8DECEC305209EEFEC43008E1D420E1AA06B19E0' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (30); -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (29); -RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME USER 'user'@'localhost' TO 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (28); -DROP USER 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP USER 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (27); -CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (26); -ALTER EVENT evt COMMENT 'evt'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER EVENT evt COMMENT 'evt' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (25); -DROP EVENT evt; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP EVENT evt --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (24); -CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (23); -DROP TRIGGER tr; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Table_map # # table_id: # (test.tt_2) @@ -330,15 +247,6 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TRIGGER tr --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (22); -CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -346,45 +254,18 @@ master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `fc`() RETURNS varchar(64) CHARSET latin1 RETURN "fc" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (21); -ALTER FUNCTION fc COMMENT 'fc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER FUNCTION fc COMMENT 'fc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (20); -DROP FUNCTION fc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION fc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (19); -CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -392,273 +273,104 @@ master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `pc`() UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (18); -ALTER PROCEDURE pc COMMENT 'pc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER PROCEDURE pc COMMENT 'pc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (17); -DROP PROCEDURE pc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP PROCEDURE pc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (16); -CREATE VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (15); -ALTER VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (14); -DROP VIEW v; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP VIEW v --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (13); -CREATE INDEX ix ON tt_1(ddl_case); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE INDEX ix ON tt_1(ddl_case) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (12); -DROP INDEX ix ON tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP INDEX ix ON tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (11); -CREATE TEMPORARY TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.tt_1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Table_map # # table_id: # (test.tt_1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (10); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test.tt_1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (9); -ALTER TABLE tt_xx RENAME new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test.tt_1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (8); -DROP TEMPORARY TABLE IF EXISTS new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`new_tt_xx` /* generated by server */ -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (7); -CREATE TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE tt_xx (a int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (6); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx ADD COLUMN (b int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (5); -RENAME TABLE tt_xx TO new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME TABLE tt_xx TO new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (4); -TRUNCATE TABLE new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (3); -DROP TABLE IF EXISTS tt_xx, new_tt_xx; -Warnings: -Note 1051 Unknown table 'test.tt_xx' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `tt_xx`,`new_tt_xx` /* generated by server */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (2); -CREATE DATABASE db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # CREATE DATABASE db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (1); -DROP DATABASE IF EXISTS db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # DROP DATABASE IF EXISTS db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - +SET AUTOCOMMIT= 1; ################################################################################### # CHECK CONSISTENCY ################################################################################### @@ -666,4 +378,7 @@ include/diff_tables.inc [master:tt_1,slave:tt_1] ################################################################################### # CLEAN ################################################################################### +DROP TABLE tt_1; +DROP TABLE tt_2; +DROP TABLE nt_1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result index cb702ad64ef..e272961abe9 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result @@ -13,613 +13,323 @@ INSERT INTO tt_2(ddl_case) VALUES(0); # CHECK IMPLICT COMMIT ######################################################################### SET AUTOCOMMIT= 0; --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (43); CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (43) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # use `test`; CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "LIB" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (42); DROP FUNCTION myfunc_int; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (42) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (41); LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES; Table Op Msg_type Msg_text test.nt_1 preload_keys status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (40); LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES; Table Op Msg_type Msg_text test.tt_1 preload_keys note The storage engine for the table doesn't support preload_keys test.tt_2 preload_keys note The storage engine for the table doesn't support preload_keys --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- INSERT INTO tt_1(ddl_case) VALUES (39); ANALYZE TABLE nt_1; Table Op Msg_type Msg_text test.nt_1 analyze status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- +INSERT INTO tt_1(ddl_case) VALUES (38); +CHECK TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 check status OK +INSERT INTO tt_1(ddl_case) VALUES (37); +OPTIMIZE TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 optimize status Table is already up to date +INSERT INTO tt_1(ddl_case) VALUES (36); +REPAIR TABLE nt_1; +Table Op Msg_type Msg_text +test.nt_1 repair status OK +INSERT INTO tt_1(ddl_case) VALUES (35); +LOCK TABLES tt_1 WRITE; +INSERT INTO tt_1(ddl_case) VALUES (34); +UNLOCK TABLES; +INSERT INTO tt_1(ddl_case) VALUES (33); +CREATE USER 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (32); +GRANT ALL ON *.* TO 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (31); +SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); +INSERT INTO tt_1(ddl_case) VALUES (30); +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (29); +RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (28); +DROP USER 'user_new'@'localhost'; +INSERT INTO tt_1(ddl_case) VALUES (27); +CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (26); +ALTER EVENT evt COMMENT 'evt'; +INSERT INTO tt_1(ddl_case) VALUES (25); +DROP EVENT evt; +INSERT INTO tt_1(ddl_case) VALUES (24); +CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (23); +DROP TRIGGER tr; +INSERT INTO tt_1(ddl_case) VALUES (22); +CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; +INSERT INTO tt_1(ddl_case) VALUES (21); +ALTER FUNCTION fc COMMENT 'fc'; +INSERT INTO tt_1(ddl_case) VALUES (20); +DROP FUNCTION fc; +INSERT INTO tt_1(ddl_case) VALUES (19); +CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; +INSERT INTO tt_1(ddl_case) VALUES (18); +ALTER PROCEDURE pc COMMENT 'pc'; +INSERT INTO tt_1(ddl_case) VALUES (17); +DROP PROCEDURE pc; +INSERT INTO tt_1(ddl_case) VALUES (16); +CREATE VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (15); +ALTER VIEW v AS SELECT * FROM tt_1; +INSERT INTO tt_1(ddl_case) VALUES (14); +DROP VIEW v; +INSERT INTO tt_1(ddl_case) VALUES (13); +CREATE INDEX ix ON tt_1(ddl_case); +INSERT INTO tt_1(ddl_case) VALUES (12); +DROP INDEX ix ON tt_1; +INSERT INTO tt_1(ddl_case) VALUES (11); +CREATE TEMPORARY TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (10); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (9); +ALTER TABLE tt_xx RENAME new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (8); +DROP TEMPORARY TABLE IF EXISTS new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (7); +CREATE TABLE tt_xx (a int); +INSERT INTO tt_1(ddl_case) VALUES (6); +ALTER TABLE tt_xx ADD COLUMN (b int); +INSERT INTO tt_1(ddl_case) VALUES (5); +RENAME TABLE tt_xx TO new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (4); +TRUNCATE TABLE new_tt_xx; +INSERT INTO tt_1(ddl_case) VALUES (3); +DROP TABLE IF EXISTS tt_xx, new_tt_xx; +Warnings: +Note 1051 Unknown table 'test.tt_xx' +INSERT INTO tt_1(ddl_case) VALUES (2); +CREATE DATABASE db; +INSERT INTO tt_1(ddl_case) VALUES (1); +DROP DATABASE IF EXISTS db; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE tt_2 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = Innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE nt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = MyIsam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES(0) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_2(ddl_case) VALUES(0) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (43) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "LIB" +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (42) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) +master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ANALYZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (38); -CHECK TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 check status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (38) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (37); -OPTIMIZE TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 optimize status Table is already up to date --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (37) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; OPTIMIZE TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (36); -REPAIR TABLE nt_1; -Table Op Msg_type Msg_text -test.nt_1 repair status OK --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (36) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REPAIR TABLE nt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (35); -LOCK TABLES tt_1 WRITE; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (35) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (34); -UNLOCK TABLES; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (34) master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (33); -CREATE USER 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (33) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE USER 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (32); -GRANT ALL ON *.* TO 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (32) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; GRANT ALL ON *.* TO 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (31); -SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (31) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; SET PASSWORD FOR 'user'@'localhost'='*D8DECEC305209EEFEC43008E1D420E1AA06B19E0' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (30); -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (30) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (29); -RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (29) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME USER 'user'@'localhost' TO 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (28); -DROP USER 'user_new'@'localhost'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (28) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP USER 'user_new'@'localhost' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (27); -CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (27) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (26); -ALTER EVENT evt COMMENT 'evt'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (26) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER EVENT evt COMMENT 'evt' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (25); -DROP EVENT evt; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (25) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP EVENT evt --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (24); -CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (24) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (23); -DROP TRIGGER tr; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (23) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TRIGGER tr --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (22); -CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (22) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `fc`() RETURNS varchar(64) CHARSET latin1 RETURN "fc" --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (21); -ALTER FUNCTION fc COMMENT 'fc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (21) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER FUNCTION fc COMMENT 'fc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (20); -DROP FUNCTION fc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (20) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION fc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (19); -CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (19) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `pc`() UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (18); -ALTER PROCEDURE pc COMMENT 'pc'; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (18) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER PROCEDURE pc COMMENT 'pc' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (17); -DROP PROCEDURE pc; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (17) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP PROCEDURE pc --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (16); -CREATE VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (16) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (15); -ALTER VIEW v AS SELECT * FROM tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (15) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS SELECT * FROM tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (14); -DROP VIEW v; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (14) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP VIEW v --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (13); -CREATE INDEX ix ON tt_1(ddl_case); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (13) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE INDEX ix ON tt_1(ddl_case) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (12); -DROP INDEX ix ON tt_1; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (12) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP INDEX ix ON tt_1 --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (11); -CREATE TEMPORARY TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (11) master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE tt_xx (a int) -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (10); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (10) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx ADD COLUMN (b int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (9); -ALTER TABLE tt_xx RENAME new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (9) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx RENAME new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (8); -DROP TEMPORARY TABLE IF EXISTS new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (8) master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`new_tt_xx` /* generated by server */ -master-bin.000001 # Xid # # COMMIT /* XID */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (7); -CREATE TABLE tt_xx (a int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (7) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE tt_xx (a int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (6); -ALTER TABLE tt_xx ADD COLUMN (b int); --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (6) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; ALTER TABLE tt_xx ADD COLUMN (b int) --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (5); -RENAME TABLE tt_xx TO new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (5) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; RENAME TABLE tt_xx TO new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (4); -TRUNCATE TABLE new_tt_xx; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (4) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE new_tt_xx --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (3); -DROP TABLE IF EXISTS tt_xx, new_tt_xx; -Warnings: -Note 1051 Unknown table 'test.tt_xx' --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (3) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `tt_xx`,`new_tt_xx` /* generated by server */ --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (2); -CREATE DATABASE db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (2) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # CREATE DATABASE db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -INSERT INTO tt_1(ddl_case) VALUES (1); -DROP DATABASE IF EXISTS db; --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- --b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b- -include/show_binlog_events.inc -Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (1) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # DROP DATABASE IF EXISTS db --e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e- - +SET AUTOCOMMIT= 1; ################################################################################### # CHECK CONSISTENCY ################################################################################### @@ -627,4 +337,7 @@ include/diff_tables.inc [master:tt_1,slave:tt_1] ################################################################################### # CLEAN ################################################################################### +DROP TABLE tt_1; +DROP TABLE tt_2; +DROP TABLE nt_1; include/rpl_end.inc From 34045af03f25fc2edd7c0c8db054e505f271513c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 6 May 2018 22:46:56 +0200 Subject: [PATCH 39/45] MDEV-15216 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status upon operation inside XA don't implicitly commit or rollback in mysql_admin_table() unless the statement has CF_IMPLICIT_COMMIT_END flag. --- mysql-test/r/assign_key_cache.result | 13 +++++++++++++ mysql-test/r/implicit_commit.result | 4 ++-- .../rpl/r/rpl_mixed_implicit_commit_binlog.result | 4 ---- .../rpl/r/rpl_row_implicit_commit_binlog.result | 4 ---- .../rpl/r/rpl_stm_implicit_commit_binlog.result | 4 ---- mysql-test/t/assign_key_cache.test | 13 +++++++++++++ sql/sql_admin.cc | 7 +++++-- sql/sql_parse.cc | 4 ++-- sql/sql_parse.h | 1 + 9 files changed, 36 insertions(+), 18 deletions(-) create mode 100644 mysql-test/r/assign_key_cache.result create mode 100644 mysql-test/t/assign_key_cache.test diff --git a/mysql-test/r/assign_key_cache.result b/mysql-test/r/assign_key_cache.result new file mode 100644 index 00000000000..4ed6170136b --- /dev/null +++ b/mysql-test/r/assign_key_cache.result @@ -0,0 +1,13 @@ +set global my_cache.key_buffer_size = 1024*1024; +create table t1 (i int) engine=myisam partition by hash (i) partitions 2; +xa start 'xid'; +cache index t1 partition (non_existing_partition) in my_cache; +Table Op Msg_type Msg_text +test.t1 assign_to_keycache error Error in list of partitions to test.t1 +cache index t1 partition (p1) in my_cache; +Table Op Msg_type Msg_text +test.t1 assign_to_keycache status OK +xa end 'xid'; +xa rollback 'xid'; +drop table t1; +set global my_cache.key_buffer_size = 0; diff --git a/mysql-test/r/implicit_commit.result b/mysql-test/r/implicit_commit.result index d568d05e7b7..0dcee1b8f06 100644 --- a/mysql-test/r/implicit_commit.result +++ b/mysql-test/r/implicit_commit.result @@ -561,7 +561,7 @@ INSERT INTO db1.trans (a) VALUES (1); cache index t3 in keycache; CALL db1.test_if_commit(); IMPLICIT COMMIT -YES +NO set global keycache.key_buffer_size=0; # # SQLCOM_PRELOAD_KEYS @@ -570,7 +570,7 @@ INSERT INTO db1.trans (a) VALUES (1); load index into cache t3; CALL db1.test_if_commit(); IMPLICIT COMMIT -YES +NO # # SQLCOM_FLUSH # diff --git a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result index e272961abe9..7efb1f7162b 100644 --- a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result @@ -140,11 +140,7 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# diff --git a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result index 5d6590bd821..e24a84e02a1 100644 --- a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result @@ -145,12 +145,8 @@ master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result index e272961abe9..7efb1f7162b 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result @@ -140,11 +140,7 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40) -master-bin.000001 # Xid # # COMMIT /* XID */ -master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# diff --git a/mysql-test/t/assign_key_cache.test b/mysql-test/t/assign_key_cache.test new file mode 100644 index 00000000000..401e7bf9138 --- /dev/null +++ b/mysql-test/t/assign_key_cache.test @@ -0,0 +1,13 @@ +# +# MDEV-15216 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status upon operation inside XA +# +--source include/have_partition.inc +set global my_cache.key_buffer_size = 1024*1024; +create table t1 (i int) engine=myisam partition by hash (i) partitions 2; +xa start 'xid'; +cache index t1 partition (non_existing_partition) in my_cache; +cache index t1 partition (p1) in my_cache; +xa end 'xid'; +xa rollback 'xid'; +drop table t1; +set global my_cache.key_buffer_size = 0; diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc index 06a453e1bb7..4fe51a2189e 100644 --- a/sql/sql_admin.cc +++ b/sql/sql_admin.cc @@ -1064,7 +1064,9 @@ send_result_message: } else { - if (trans_commit_stmt(thd) || trans_commit_implicit(thd)) + if (trans_commit_stmt(thd) || + (stmt_causes_implicit_commit(thd, CF_IMPLICIT_COMMIT_END) && + trans_commit_implicit(thd))) goto err; } close_thread_tables(thd); @@ -1098,7 +1100,8 @@ send_result_message: err: /* Make sure this table instance is not reused after the failure. */ trans_rollback_stmt(thd); - trans_rollback(thd); + if (stmt_causes_implicit_commit(thd, CF_IMPLICIT_COMMIT_END)) + trans_rollback(thd); if (table && table->table) { table->table->m_needs_reopen= true; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 4c0be4ebc8b..87edf93bb4a 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -192,7 +192,7 @@ static bool some_non_temp_table_to_be_updated(THD *thd, TABLE_LIST *tables) /* - Implicitly commit a active transaction if statement requires so. + Check whether the statement implicitly commits an active transaction. @param thd Thread handle. @param mask Bitmask used for the SQL command match. @@ -200,7 +200,7 @@ static bool some_non_temp_table_to_be_updated(THD *thd, TABLE_LIST *tables) @return 0 No implicit commit @return 1 Do a commit */ -static bool stmt_causes_implicit_commit(THD *thd, uint mask) +bool stmt_causes_implicit_commit(THD *thd, uint mask) { LEX *lex= thd->lex; bool skip= FALSE; diff --git a/sql/sql_parse.h b/sql/sql_parse.h index fa414911093..39d92e656c8 100644 --- a/sql/sql_parse.h +++ b/sql/sql_parse.h @@ -84,6 +84,7 @@ bool check_identifier_name(LEX_STRING *str, uint max_char_length, uint err_code, const char *param_for_err_msg); bool mysql_test_parse_for_slave(THD *thd,char *inBuf,uint length); bool sqlcom_can_generate_row_events(const THD *thd); +bool stmt_causes_implicit_commit(THD *thd, uint mask); bool is_update_query(enum enum_sql_command command); bool is_log_table_write_query(enum enum_sql_command command); bool alloc_query(THD *thd, const char *packet, uint packet_length); From de0e5fe17c9e59fc7e16691b00eb32162a2a1409 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Tue, 8 May 2018 13:32:40 +0400 Subject: [PATCH 40/45] MDEV-14541 - Workaround GCC ICE on ARM64 -fno-tree-loop-vectorize is only supported by gcc versions >5. --- storage/mroonga/vendor/groonga/lib/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/mroonga/vendor/groonga/lib/CMakeLists.txt b/storage/mroonga/vendor/groonga/lib/CMakeLists.txt index 2274e95aa24..64fadb8bbdd 100644 --- a/storage/mroonga/vendor/groonga/lib/CMakeLists.txt +++ b/storage/mroonga/vendor/groonga/lib/CMakeLists.txt @@ -179,6 +179,7 @@ if(GRN_WITH_MRUBY) endif() # Workaround GCC ICE on ARM64 -IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") +IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" AND + CMAKE_C_COMPILER_VERSION VERSION_GREATER "5") ADD_COMPILE_FLAGS(ts/ts_expr_node.c COMPILE_FLAGS "-fno-tree-loop-vectorize") ENDIF() From b62224e232fedf982598aa4b373962c4c3746400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 8 May 2018 22:39:14 +0300 Subject: [PATCH 41/45] Mroonga cmake failure - LZ4_LIBS = NOTFOUND The following variables are used in this project, but they are set to NOTFOUND. LZ4_LIBS The reason for the failure is that pkg_check_modules will not guarantee _LIBRARY_DIRS variable to be set, according to documentation. When it's not set, we would force find_library to look in an empty path and thus fail to correctly find LZ4_LIBS, although pck_check_modules did previously discover that the library is installed. To fix the problem and still keep the logic of first following LIBLZ4_LIBRARY_DIRS and *then* look at other paths, we call find_library twice. This is the recommended approach, according to CMake 3.11 documentation. --- storage/mroonga/vendor/groonga/CMakeLists.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/storage/mroonga/vendor/groonga/CMakeLists.txt b/storage/mroonga/vendor/groonga/CMakeLists.txt index e27070f9e0c..ee526646c09 100644 --- a/storage/mroonga/vendor/groonga/CMakeLists.txt +++ b/storage/mroonga/vendor/groonga/CMakeLists.txt @@ -361,10 +361,18 @@ if(NOT ${GRN_WITH_LZ4} STREQUAL "no") pkg_check_modules(LIBLZ4 liblz4) endif() if(LIBLZ4_FOUND) + # According to CMake documentation, this is the recommended way to force + # looking in LIBRARY_DIRS first and in regular system paths otherwise. + # + # pkg_check_modules does not guarantee that LIBLZ4_LIBRARY_DIRS will be + # set. If it's not set we won't find the library without looking through + # the regular system paths. find_library(LZ4_LIBS - NAMES ${LIBLZ4_LIBRARIES} - PATHS ${LIBLZ4_LIBRARY_DIRS} - NO_DEFAULT_PATH) + NAMES ${LIBLZ4_LIBRARIES} + PATHS ${LIBLZ4_LIBRARY_DIRS} + NO_DEFAULT_PATH) + find_library(LZ4_LIBS + NAMES ${LIBLZ4_LIBRARIES}) set(GRN_WITH_LZ4 TRUE) else() if(${GRN_WITH_LZ4} STREQUAL "yes") From f98496da969ed2b65f944f11ac11163030bc44b1 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 8 May 2018 15:08:08 +0100 Subject: [PATCH 42/45] MDEV-16105: Mariabackup does not support SSL The reason is the missing HAVE_OPENSSL define for mariabackup. --- extra/mariabackup/CMakeLists.txt | 2 +- extra/mariabackup/backup_mysql.cc | 2 +- extra/mariabackup/xtrabackup.cc | 16 +++++++++------- mysql-test/suite/mariabackup/backup_ssl.result | 9 +++++++++ mysql-test/suite/mariabackup/backup_ssl.test | 16 ++++++++++++++++ 5 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 mysql-test/suite/mariabackup/backup_ssl.result create mode 100644 mysql-test/suite/mariabackup/backup_ssl.test diff --git a/extra/mariabackup/CMakeLists.txt b/extra/mariabackup/CMakeLists.txt index 0e6336fe5e6..aa05b36153f 100644 --- a/extra/mariabackup/CMakeLists.txt +++ b/extra/mariabackup/CMakeLists.txt @@ -52,7 +52,7 @@ ELSE() SET(NT_SERVICE_SOURCE) ENDIF() -ADD_DEFINITIONS(-DPCRE_STATIC=1) +ADD_DEFINITIONS(-DPCRE_STATIC=1 -DHAVE_OPENSSL=1) MYSQL_ADD_EXECUTABLE(mariabackup xtrabackup.cc diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc index 661992a1696..7f0ad8a8361 100644 --- a/extra/mariabackup/backup_mysql.cc +++ b/extra/mariabackup/backup_mysql.cc @@ -91,7 +91,7 @@ time_t history_lock_time; MYSQL *mysql_connection; -my_bool opt_ssl_verify_server_cert; +extern my_bool opt_ssl_verify_server_cert, opt_use_ssl; MYSQL * xb_mysql_connect() diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 867e7869fcf..84f57bde64f 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -203,6 +203,10 @@ static ulong max_buf_pool_modified_pct; /* Ignored option (--log) for MySQL option compatibility */ char* log_ignored_opt = NULL; + +extern my_bool opt_use_ssl; +my_bool opt_ssl_verify_server_cert; + /* === metadata of backup === */ #define XTRABACKUP_METADATA_FILENAME "xtrabackup_checkpoints" char metadata_type[30] = ""; /*[full-backuped|log-applied| @@ -360,9 +364,6 @@ uint opt_safe_slave_backup_timeout = 0; const char *opt_history = NULL; -#if defined(HAVE_OPENSSL) -my_bool opt_ssl_verify_server_cert = FALSE; -#endif /* Whether xtrabackup_binlog_info should be created on recovery */ static bool recover_binlog_info; @@ -453,6 +454,7 @@ typedef struct { } data_thread_ctxt_t; /* ======== for option and variables ======== */ +#include <../../client/client_priv.h> enum options_xtrabackup { @@ -528,8 +530,6 @@ enum options_xtrabackup OPT_INNODB_LOG_CHECKSUM_ALGORITHM, OPT_XTRA_INCREMENTAL_FORCE_SCAN, OPT_DEFAULTS_GROUP, - OPT_OPEN_FILES_LIMIT, - OPT_PLUGIN_DIR, OPT_PLUGIN_LOAD, OPT_INNODB_ENCRYPT_LOG, OPT_CLOSE_FILES, @@ -915,9 +915,9 @@ struct my_option xb_client_options[] = {"secure-auth", OPT_XB_SECURE_AUTH, "Refuse client connecting to server if it" " uses old (pre-4.1.1) protocol.", &opt_secure_auth, &opt_secure_auth, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, - +#define MYSQL_CLIENT #include "sslopt-longopts.h" - +#undef MYSQL_CLIENT { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -1388,7 +1388,9 @@ xb_get_one_option(int optid, } } break; +#define MYSQL_CLIENT #include "sslopt-case.h" +#undef MYSQL_CLIENT case '?': usage(); diff --git a/mysql-test/suite/mariabackup/backup_ssl.result b/mysql-test/suite/mariabackup/backup_ssl.result new file mode 100644 index 00000000000..6e59da6d43a --- /dev/null +++ b/mysql-test/suite/mariabackup/backup_ssl.result @@ -0,0 +1,9 @@ +GRANT ALL PRIVILEGES on *.* TO backup_user IDENTIFIED by 'x' REQUIRE SSL; +FLUSH PRIVILEGES; +# xtrabackup backup +# xtrabackup prepare +# shutdown server +# remove datadir +# xtrabackup move back +# restart server +DROP USER backup_user; diff --git a/mysql-test/suite/mariabackup/backup_ssl.test b/mysql-test/suite/mariabackup/backup_ssl.test new file mode 100644 index 00000000000..e858c834d29 --- /dev/null +++ b/mysql-test/suite/mariabackup/backup_ssl.test @@ -0,0 +1,16 @@ +GRANT ALL PRIVILEGES on *.* TO backup_user IDENTIFIED by 'x' REQUIRE SSL; +FLUSH PRIVILEGES; +echo # xtrabackup backup; +let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; +--disable_result_log +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --user=backup_user --password=x --ssl --backup --target-dir=$targetdir; +--enable_result_log + +echo # xtrabackup prepare; +--disable_result_log +exec $XTRABACKUP --prepare --target-dir=$targetdir; +-- source include/restart_and_restore.inc +--enable_result_log +DROP USER backup_user; +rmdir $targetdir; + From b2fc197b566eb178afa09dd527f8e77a2d9b28de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Wed, 9 May 2018 09:16:20 +0300 Subject: [PATCH 43/45] MDEV-15351: wsrep_sst_xtrabackup is broken in 10.1.31 Remove the setup_ports function call. This is related to https://github.com/MariaDB/server/pull/717 Thanks to Daniel Black and Bart S. --- scripts/wsrep_sst_xtrabackup.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/wsrep_sst_xtrabackup.sh b/scripts/wsrep_sst_xtrabackup.sh index 628c1f8b06c..5bf380a8144 100644 --- a/scripts/wsrep_sst_xtrabackup.sh +++ b/scripts/wsrep_sst_xtrabackup.sh @@ -408,7 +408,6 @@ if [[ ! ${WSREP_SST_OPT_ROLE} == 'joiner' && ! ${WSREP_SST_OPT_ROLE} == 'donor' fi read_cnf -setup_ports get_stream get_transfer From 4f42f0d1eafd82adef513a1064ff44b50063db7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 9 May 2018 15:06:48 +0300 Subject: [PATCH 44/45] MDEV-16119 InnoDB lock->index refers to a freed object after failed ADD INDEX The problem is hard to repeat, and I failed to create a deterministic test case. Online index creation creates stubs for to-be-created indexes. If index creation fails, we could remove these stubs while locks exist in the indexes. (This would require that the index creation was completed, and a concurrent DML operation acquired a lock on a record in the uncommitted index. If a duplicate key error occurs in an uncommitted index, the error will be reported for the CREATE UNIQUE INDEX, not for the DML operation that tried to insert the duplicate.) dict_table_try_drop_aborted(), row_merge_drop_indexes(): If transactional locks exist on the table, keep the table->indexes intact. --- storage/innobase/dict/dict0dict.cc | 3 ++- storage/innobase/row/row0merge.cc | 3 ++- storage/xtradb/dict/dict0dict.cc | 3 ++- storage/xtradb/row/row0merge.cc | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 0c8a278586d..7575a4aed62 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -507,7 +507,8 @@ dict_table_try_drop_aborted( ut_ad(table->id == table_id); } - if (table && table->n_ref_count == ref_count && table->drop_aborted) { + if (table && table->n_ref_count == ref_count && table->drop_aborted + && !UT_LIST_GET_FIRST(table->locks)) { /* Silence a debug assertion in row_merge_drop_indexes(). */ ut_d(table->n_ref_count++); row_merge_drop_indexes(trx, table, TRUE); diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index 49c9aa4b51f..4090e388610 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -2907,7 +2907,8 @@ row_merge_drop_indexes( A concurrent purge will be prevented by dict_operation_lock. */ - if (!locked && table->n_ref_count > 1) { + if (!locked && (table->n_ref_count > 1 + || UT_LIST_GET_FIRST(table->locks))) { /* We will have to drop the indexes later, when the table is guaranteed to be no longer in use. Mark the indexes as incomplete and corrupted, so that other diff --git a/storage/xtradb/dict/dict0dict.cc b/storage/xtradb/dict/dict0dict.cc index e2aefc909f8..b76414eeea4 100644 --- a/storage/xtradb/dict/dict0dict.cc +++ b/storage/xtradb/dict/dict0dict.cc @@ -507,7 +507,8 @@ dict_table_try_drop_aborted( ut_ad(table->id == table_id); } - if (table && table->n_ref_count == ref_count && table->drop_aborted) { + if (table && table->n_ref_count == ref_count && table->drop_aborted + && !UT_LIST_GET_FIRST(table->locks)) { /* Silence a debug assertion in row_merge_drop_indexes(). */ ut_d(table->n_ref_count++); row_merge_drop_indexes(trx, table, TRUE); diff --git a/storage/xtradb/row/row0merge.cc b/storage/xtradb/row/row0merge.cc index 00da85a19dd..e15b87b8ed5 100644 --- a/storage/xtradb/row/row0merge.cc +++ b/storage/xtradb/row/row0merge.cc @@ -2911,7 +2911,8 @@ row_merge_drop_indexes( A concurrent purge will be prevented by dict_operation_lock. */ - if (!locked && table->n_ref_count > 1) { + if (!locked && (table->n_ref_count > 1 + || UT_LIST_GET_FIRST(table->locks))) { /* We will have to drop the indexes later, when the table is guaranteed to be no longer in use. Mark the indexes as incomplete and corrupted, so that other From ff579bc814551026a3271fac274f560cef3f523f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 9 May 2018 12:10:56 +0200 Subject: [PATCH 45/45] install disks plugin on debian --- debian/mariadb-server-10.1.files.in | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/mariadb-server-10.1.files.in b/debian/mariadb-server-10.1.files.in index 3baf73c5e50..cb935541186 100644 --- a/debian/mariadb-server-10.1.files.in +++ b/debian/mariadb-server-10.1.files.in @@ -1,5 +1,6 @@ usr/lib/mysql/plugin/auth_pam.so usr/lib/mysql/plugin/auth_socket.so +usr/lib/mysql/plugin/disks.so usr/lib/mysql/plugin/file_key_management.so usr/lib/mysql/plugin/ha_archive.so usr/lib/mysql/plugin/ha_blackhole.so

    Jcc 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

  • #K#E_mYIXdt2#}G#|$u;ktWBJmKOWRr2^y5DV1da0yh8;k=wZ!V0V4z zo#)h{BJH>lnTDNqT|mq}!+#!?)Vz_q*vT>vMhZEn#F~FOIibE~$zxbc@O33Y4PD`k z+AD9W&`Fe753lLnP-LiBMdo3A%|G)*)Szh*MN(nfnqo=*eYgA-C##=naO2PG443KD zUEztB&y|SOT|VR$vmYSc!PR=`0Nj62T&fP?trBBpS0-vI**9Y5Kd(~$0z_~RD~c0VD|f&e5LsfmNXXmw=jDEq zvw*&S^B>=7UF9|l>|=-RN(`1uw877;+P%E#_i!y{f3XMqf?=8J^hwDeYdb7t(?Xr) z3mE8@k_46`RB}?u&cypstE~xSw+(NU(WO2KG@KtGpK)`#GOn?vhG#1y_Uig+Dk}d^ zZc#9-ad7⁡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