Skip to content

Commit 1944335

Browse files
committed
MNDR:
- 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)
1 parent 3f7a783 commit 1944335

File tree

4 files changed

+22
-24
lines changed

4 files changed

+22
-24
lines changed

ext/mysqlnd/mysqlnd.c

+11-2
Original file line numberDiff line numberDiff line change
@@ -2974,7 +2974,16 @@ MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t
29742974
/* }}} */
29752975

29762976

2977-
MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn);
2977+
/* {{{ _mysqlnd_stmt_init */
2978+
MYSQLND_STMT *
2979+
MYSQLND_METHOD(mysqlnd_conn_data, stmt_init)(MYSQLND_CONN_DATA * const conn)
2980+
{
2981+
MYSQLND_STMT * ret;
2982+
DBG_ENTER("_mysqlnd_stmt_init");
2983+
ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).get_prepared_statement(conn, conn->persistent);
2984+
DBG_RETURN(ret);
2985+
}
2986+
/* }}} */
29782987

29792988

29802989
MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
@@ -2990,7 +2999,7 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
29902999
MYSQLND_METHOD(mysqlnd_conn_data, next_result),
29913000
MYSQLND_METHOD(mysqlnd_conn_data, more_results),
29923001

2993-
_mysqlnd_stmt_init,
3002+
MYSQLND_METHOD(mysqlnd_conn_data, stmt_init),
29943003

29953004
MYSQLND_METHOD(mysqlnd_conn_data, shutdown),
29963005
MYSQLND_METHOD(mysqlnd_conn_data, refresh),

ext/mysqlnd/mysqlnd_driver.c

+10-9
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ MYSQLND_METHOD(mysqlnd_object_factory, clone_connection_object)(MYSQLND * to_be_
196196

197197
/* {{{ mysqlnd_object_factory::get_prepared_statement */
198198
static MYSQLND_STMT *
199-
MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA * const conn)
199+
MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA * const conn, zend_bool persistent)
200200
{
201201
size_t alloc_size = sizeof(MYSQLND_STMT) + mysqlnd_plugin_count() * sizeof(void *);
202202
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
210210
ret->m = mysqlnd_stmt_get_methods();
211211
ret->persistent = conn->persistent;
212212

213-
stmt = ret->data = mnd_pecalloc(1, sizeof(MYSQLND_STMT_DATA), conn->persistent);
213+
stmt = ret->data = mnd_pecalloc(1, sizeof(MYSQLND_STMT_DATA), persistent);
214214
DBG_INF_FMT("stmt=%p", stmt);
215215
if (!stmt) {
216216
break;
217217
}
218-
stmt->persistent = conn->persistent;
218+
stmt->persistent = persistent;
219219
stmt->error_info = &(stmt->error_info_impl);
220220
stmt->upsert_status = &(stmt->upsert_status_impl);
221221
stmt->state = MYSQLND_STMT_INITTED;
@@ -226,18 +226,19 @@ MYSQLND_METHOD(mysqlnd_object_factory, get_prepared_statement)(MYSQLND_CONN_DATA
226226
}
227227

228228
stmt->prefetch_rows = MYSQLND_DEFAULT_PREFETCH_ROWS;
229+
stmt->error_info->error_list = mnd_pecalloc(1, sizeof(zend_llist), ret->persistent);
230+
if (!stmt->error_info->error_list) {
231+
break;
232+
}
233+
234+
zend_llist_init(stmt->error_info->error_list, sizeof(MYSQLND_ERROR_LIST_ELEMENT), (llist_dtor_func_t) mysqlnd_error_list_pdtor, persistent);
235+
229236
/*
230237
Mark that we reference the connection, thus it won't be
231238
be destructed till there is open statements. The last statement
232239
or normal query result will close it then.
233240
*/
234241
stmt->conn = conn->m->get_reference(conn);
235-
stmt->error_info->error_list = mnd_pecalloc(1, sizeof(zend_llist), ret->persistent);
236-
if (!stmt->error_info->error_list) {
237-
break;
238-
}
239-
240-
zend_llist_init(stmt->error_info->error_list, sizeof(MYSQLND_ERROR_LIST_ELEMENT), (llist_dtor_func_t) mysqlnd_error_list_pdtor, conn->persistent);
241242

242243
DBG_RETURN(ret);
243244
} while (0);

ext/mysqlnd/mysqlnd_ps.c

-12
Original file line numberDiff line numberDiff line change
@@ -2370,18 +2370,6 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_stmt)
23702370
MYSQLND_CLASS_METHODS_END;
23712371

23722372

2373-
/* {{{ _mysqlnd_stmt_init */
2374-
MYSQLND_STMT *
2375-
_mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn)
2376-
{
2377-
MYSQLND_STMT * ret;
2378-
DBG_ENTER("_mysqlnd_stmt_init");
2379-
ret = MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory).get_prepared_statement(conn);
2380-
DBG_RETURN(ret);
2381-
}
2382-
/* }}} */
2383-
2384-
23852373
/* {{{ _mysqlnd_init_ps_subsystem */
23862374
void _mysqlnd_init_ps_subsystem()
23872375
{

ext/mysqlnd/mysqlnd_structs.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ struct st_mysqlnd_protocol_payload_decoder_factory_methods
401401

402402
typedef MYSQLND * (*func_mysqlnd_object_factory__get_connection)(zend_bool persistent);
403403
typedef MYSQLND * (*func_mysqlnd_object_factory__clone_connection_object)(MYSQLND * conn);
404-
typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn);
404+
typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn, zend_bool persistent);
405405
typedef MYSQLND_NET * (*func_mysqlnd_object_factory__get_io_channel)(zend_bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info);
406406
typedef MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * (*func_mysqlnd_object_factory__get_protocol_payload_decoder_factory)(MYSQLND_CONN_DATA * conn, zend_bool persistent);
407407

0 commit comments

Comments
 (0)