diff options
author | Andrey Hristov <andrey@php.net> | 2015-10-12 18:50:58 +0200 |
---|---|---|
committer | Andrey Hristov <andrey@php.net> | 2015-11-12 16:19:16 +0100 |
commit | 784a371829f286efe214a14f195a07cb1b3f9cc1 (patch) | |
tree | 521a28b5b47aa5cf3ce12b8dfa36983d4b946a4a /ext/mysqlnd/mysqlnd.c | |
parent | f16686faa7077c75bc025657e4464d96a0df8ae6 (diff) | |
download | php-git-784a371829f286efe214a14f195a07cb1b3f9cc1.tar.gz |
MNDR:
- Inject the object factory
Diffstat (limited to 'ext/mysqlnd/mysqlnd.c')
-rw-r--r-- | ext/mysqlnd/mysqlnd.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index 0a7fe8d859..27b258cf5d 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -1166,7 +1166,7 @@ PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * conn_handle, if (!conn_handle) { self_alloced = TRUE; - if (!(conn_handle = mysqlnd_connection_init(client_api_flags, FALSE))) { + if (!(conn_handle = mysqlnd_connection_init(client_api_flags, FALSE, NULL))) { /* OOM */ DBG_RETURN(NULL); } @@ -2979,8 +2979,8 @@ 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_ENTER("mysqlnd_conn_data::stmt_init"); + ret = conn->object_factory.get_prepared_statement(conn, conn->persistent); DBG_RETURN(ret); } /* }}} */ @@ -3086,7 +3086,7 @@ MYSQLND_METHOD(mysqlnd_conn, clone_object)(MYSQLND * const conn) { MYSQLND * ret; DBG_ENTER("mysqlnd_conn::get_reference"); - ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).clone_connection_object(conn); + ret = conn->data->object_factory.clone_connection_object(conn); DBG_RETURN(ret); } /* }}} */ @@ -3155,11 +3155,12 @@ MYSQLND_CLASS_METHODS_END; /* {{{ mysqlnd_connection_init */ PHPAPI MYSQLND * -mysqlnd_connection_init(unsigned int client_flags, zend_bool persistent) +mysqlnd_connection_init(unsigned int client_flags, zend_bool persistent, struct st_mysqlnd_object_factory_methods * object_factory) { + struct st_mysqlnd_object_factory_methods * factory = object_factory? object_factory : &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory); MYSQLND * ret; DBG_ENTER("mysqlnd_connection_init"); - ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).get_connection(persistent); + ret = factory->get_connection(factory, persistent); if (ret && ret->data) { ret->data->m->negotiate_client_api_capabilities(ret->data, client_flags); } |