]> granicus.if.org Git - php/commitdiff
MNDR:
authorAndrey Hristov <andrey@php.net>
Mon, 12 Oct 2015 14:29:50 +0000 (16:29 +0200)
committerAndrey Hristov <andrey@php.net>
Thu, 12 Nov 2015 15:19:16 +0000 (16:19 +0100)
- remove static function and make it a method. The function doesn't need to
  be in mysqlnd_ps.c as it doesn't use any resources anymore from it (it used
  in the past)

ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_driver.c
ext/mysqlnd/mysqlnd_ps.c
ext/mysqlnd/mysqlnd_structs.h

index 56f3396974965c5f7958e2a103a94283a9b48849..0a7fe8d859b2b3bcadcafd286769078ae9ee898e 100644 (file)
@@ -2974,7 +2974,16 @@ MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t
 /* }}} */
 
 
-MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn);
+/* {{{ _mysqlnd_stmt_init */
+MYSQLND_STMT *
+MYSQLND_METHOD(mysqlnd_conn_data, stmt_init)(MYSQLND_CONN_DATA * const conn)
+{
+       MYSQLND_STMT * ret;
+       DBG_ENTER("_mysqlnd_stmt_init");
+       ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).get_prepared_statement(conn, conn->persistent);
+       DBG_RETURN(ret);
+}
+/* }}} */
 
 
 MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
@@ -2990,7 +2999,7 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
        MYSQLND_METHOD(mysqlnd_conn_data, next_result),
        MYSQLND_METHOD(mysqlnd_conn_data, more_results),
 
-       _mysqlnd_stmt_init,
+       MYSQLND_METHOD(mysqlnd_conn_data, stmt_init),
 
        MYSQLND_METHOD(mysqlnd_conn_data, shutdown),
        MYSQLND_METHOD(mysqlnd_conn_data, refresh),
index 859aba7f6e7069e42f434e613c2123b70f35d625..e3c126c5c56971f0e133a730af17caa5b0b081d8 100644 (file)
@@ -196,7 +196,7 @@ MYSQLND_METHOD(mysqlnd_object_factory, clone_connection_object)(MYSQLND * to_be_
 
 /* {{{ mysqlnd_object_factory::get_prepared_statement */
 static MYSQLND_STMT *
-MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA * const conn)
+MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA * const conn, zend_bool persistent)
 {
        size_t alloc_size = sizeof(MYSQLND_STMT) + mysqlnd_plugin_count() * sizeof(void *);
        MYSQLND_STMT * ret = mnd_pecalloc(1, alloc_size, conn->persistent);
@@ -210,12 +210,12 @@ MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA
                ret->m = mysqlnd_stmt_get_methods();
                ret->persistent = conn->persistent;
 
-               stmt = ret->data = mnd_pecalloc(1, sizeof(MYSQLND_STMT_DATA), conn->persistent);
+               stmt = ret->data = mnd_pecalloc(1, sizeof(MYSQLND_STMT_DATA), persistent);
                DBG_INF_FMT("stmt=%p", stmt);
                if (!stmt) {
                        break;
                }
-               stmt->persistent = conn->persistent;
+               stmt->persistent = persistent;
                stmt->error_info = &(stmt->error_info_impl);
                stmt->upsert_status = &(stmt->upsert_status_impl);
                stmt->state = MYSQLND_STMT_INITTED;
@@ -226,18 +226,19 @@ MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA
                }
 
                stmt->prefetch_rows = MYSQLND_DEFAULT_PREFETCH_ROWS;
+               stmt->error_info->error_list = mnd_pecalloc(1, sizeof(zend_llist), ret->persistent);
+               if (!stmt->error_info->error_list) {
+                       break;
+               }
+
+               zend_llist_init(stmt->error_info->error_list, sizeof(MYSQLND_ERROR_LIST_ELEMENT), (llist_dtor_func_t) mysqlnd_error_list_pdtor, persistent);
+
                /*
                  Mark that we reference the connection, thus it won't be
                  be destructed till there is open statements. The last statement
                  or normal query result will close it then.
                */
                stmt->conn = conn->m->get_reference(conn);
-               stmt->error_info->error_list = mnd_pecalloc(1, sizeof(zend_llist), ret->persistent);
-               if (!stmt->error_info->error_list) {
-                       break;
-               }
-
-               zend_llist_init(stmt->error_info->error_list, sizeof(MYSQLND_ERROR_LIST_ELEMENT), (llist_dtor_func_t) mysqlnd_error_list_pdtor, conn->persistent);
 
                DBG_RETURN(ret);
        } while (0);
index 461b078808bad316e4a7933f16bfd986ec05b833..cc4eaedfdcc136cdd55a7551b12bdbece5ed8991 100644 (file)
@@ -2370,18 +2370,6 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_stmt)
 MYSQLND_CLASS_METHODS_END;
 
 
-/* {{{ _mysqlnd_stmt_init */
-MYSQLND_STMT *
-_mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn)
-{
-       MYSQLND_STMT * ret;
-       DBG_ENTER("_mysqlnd_stmt_init");
-       ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).get_prepared_statement(conn);
-       DBG_RETURN(ret);
-}
-/* }}} */
-
-
 /* {{{ _mysqlnd_init_ps_subsystem */
 void _mysqlnd_init_ps_subsystem()
 {
index cfd8c1e4f407796317c35b1b78adc656720adbba..4413ccbda53481f7426017d8ea0c7f5989ed76a6 100644 (file)
@@ -401,7 +401,7 @@ struct st_mysqlnd_protocol_payload_decoder_factory_methods
 
 typedef MYSQLND * (*func_mysqlnd_object_factory__get_connection)(zend_bool persistent);
 typedef MYSQLND * (*func_mysqlnd_object_factory__clone_connection_object)(MYSQLND * conn);
-typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn);
+typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn, zend_bool persistent);
 typedef MYSQLND_NET * (*func_mysqlnd_object_factory__get_io_channel)(zend_bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info);
 typedef MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * (*func_mysqlnd_object_factory__get_protocol_payload_decoder_factory)(MYSQLND_CONN_DATA * conn, zend_bool persistent);