Author: ahristov
Date: 2007-06-18 12:37:31 +0200 (Mon, 18 Jun 2007)
New Revision: 383
Modified:
trunk/mysqlnd/mysqlnd.c
trunk/mysqlnd/mysqlnd.h
trunk/mysqlnd/mysqlnd_ps.c
trunk/mysqlnd/mysqlnd_result.c
trunk/mysqlnd/mysqlnd_result.h
Log:
Moved two functions to callbacks.
Fixed a bug found by the MS compiler
Modified: trunk/mysqlnd/mysqlnd.c
===================================================================
--- trunk/mysqlnd/mysqlnd.c 2007-06-18 09:43:24 UTC (rev 382)
+++ trunk/mysqlnd/mysqlnd.c 2007-06-18 10:37:31 UTC (rev 383)
@@ -105,7 +105,7 @@
mysqlnd_local_infile_default(conn);
if (conn->current_result) {
- mysqlnd_internal_free_result_contents(conn->current_result TSRMLS_CC);
+ conn->current_result->m.free_result_contents(conn->current_result TSRMLS_CC);
efree(conn->current_result);
conn->current_result = NULL;
}
Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h 2007-06-18 09:43:24 UTC (rev 382)
+++ trunk/mysqlnd/mysqlnd.h 2007-06-18 10:37:31 UTC (rev 383)
@@ -385,6 +385,8 @@
unsigned long * (*fetch_lengths)(MYSQLND_RES * const result);
void (*free_result_buffers)(MYSQLND_RES * result TSRMLS_DC); /* private */
enum_func_status (*free_result)(MYSQLND_RES * result, zend_bool implicit TSRMLS_DC);
+ void (*free_result_internal)(MYSQLND_RES *result TSRMLS_DC);
+ void (*free_result_contents)(MYSQLND_RES *result TSRMLS_DC);
};
Modified: trunk/mysqlnd/mysqlnd_ps.c
===================================================================
--- trunk/mysqlnd/mysqlnd_ps.c 2007-06-18 09:43:24 UTC (rev 382)
+++ trunk/mysqlnd/mysqlnd_ps.c 2007-06-18 10:37:31 UTC (rev 383)
@@ -66,7 +66,6 @@
MYSQLND *conn = stmt->conn;
MYSQLND_RES *result;
zend_bool to_cache = FALSE;
- MYSQLND_RES_BUFFERED *set;
/* be compliant with libmysql - NULL will turn */
if (!stmt->field_count) {
@@ -118,8 +117,8 @@
stmt->state = MYSQLND_STMT_USE_OR_STORE_CALLED;
} else {
- conn->error_info = set->error_info;
- mysqlnd_internal_free_result_contents(stmt->result TSRMLS_CC);
+ conn->error_info = result->data->error_info;
+ stmt->result->m.free_result_contents(stmt->result TSRMLS_CC);
efree(stmt->result);
stmt->result = NULL;
stmt->state = MYSQLND_STMT_PREPARED;
@@ -190,7 +189,7 @@
PACKET_INIT_ALLOCA(fields_eof, PROT_EOF_PACKET);
if (FAIL == (ret = PACKET_READ_ALLOCA(fields_eof, stmt->conn))) {
if (stmt->result) {
- mysqlnd_internal_free_result_contents(stmt->result TSRMLS_CC);
+ stmt->result->m.free_result_contents(stmt->result TSRMLS_CC);
efree(stmt->result);
memset(stmt, 0, sizeof(MYSQLND_STMT));
stmt->state = MYSQLND_STMT_INITTED;
@@ -1359,7 +1358,7 @@
mysqlnd_stmt_separate_result_bind(stmt);
/* Not every statement has a result set attached */
if (stmt->result) {
- mysqlnd_internal_free_result(stmt->result TSRMLS_CC);
+ stmt->result->m.free_result_internal(stmt->result TSRMLS_CC);
stmt->result = NULL;
}
if (stmt->cmd_buffer.buffer) {
Modified: trunk/mysqlnd/mysqlnd_result.c
===================================================================
--- trunk/mysqlnd/mysqlnd_result.c 2007-06-18 09:43:24 UTC (rev 382)
+++ trunk/mysqlnd/mysqlnd_result.c 2007-06-18 10:37:31 UTC (rev 383)
@@ -179,7 +179,7 @@
result->conn = NULL;
}
- mysqlnd_internal_free_result_contents(result TSRMLS_CC);
+ result->m.free_result_contents(result TSRMLS_CC);
efree(result);
}
/* }}} */
@@ -205,7 +205,7 @@
/* It's safe to reread without freeing */
if (FAIL == result->meta->m->read_metadata(result->meta, conn TSRMLS_CC)) {
- mysqlnd_internal_free_result_contents(result TSRMLS_CC);
+ result->m.free_result_contents(result TSRMLS_CC);
return FAIL;
}
@@ -342,7 +342,7 @@
/* Check for SERVER_STATUS_MORE_RESULTS if needed */
PACKET_INIT_ALLOCA(fields_eof, PROT_EOF_PACKET);
if (FAIL == (ret = PACKET_READ_ALLOCA(fields_eof, conn))) {
- mysqlnd_internal_free_result_contents(result TSRMLS_CC);
+ result->m.free_result_contents(result TSRMLS_CC);
efree(result);
if (!stmt) {
conn->current_result = NULL;
@@ -560,7 +560,7 @@
/* }}} */
-/* {{{ _mysqlnd_use_result */
+/* {{{ mysqlnd_res::use_result */
MYSQLND_RES *
MYSQLND_METHOD(mysqlnd_res, use_result)(MYSQLND_RES * const result TSRMLS_DC)
{
@@ -796,7 +796,7 @@
conn->upsert_status.affected_rows = result->data->row_count;
} else {
conn->error_info = result->data->error_info;
- mysqlnd_internal_free_result(result TSRMLS_CC);
+ result->m.free_result_internal(result TSRMLS_CC);
result = NULL;
}
@@ -844,7 +844,7 @@
implicit == TRUE? STAT_FREE_RESULT_EXPLICIT:
STAT_FREE_RESULT_IMPLICIT);
- mysqlnd_internal_free_result(result TSRMLS_CC);
+ result->m.free_result_internal(result TSRMLS_CC);
return PASS;
}
/* }}} */
@@ -1017,6 +1017,8 @@
ret->m.skip_result = MYSQLND_METHOD(mysqlnd_res, skip_result);
ret->m.free_result_buffers = MYSQLND_METHOD(mysqlnd_res, free_result_buffers);
+ ret->m.free_result_internal = mysqlnd_internal_free_result;
+ ret->m.free_result_contents = mysqlnd_internal_free_result_contents;
ret->m.read_result_metadata = MYSQLND_METHOD(mysqlnd_res, read_result_metadata);
ret->m.fetch_row_normal_buffered = mysqlnd_fetch_row_buffered;
Modified: trunk/mysqlnd/mysqlnd_result.h
===================================================================
--- trunk/mysqlnd/mysqlnd_result.h 2007-06-18 09:43:24 UTC (rev 382)
+++ trunk/mysqlnd/mysqlnd_result.h 2007-06-18 10:37:31 UTC (rev 383)
@@ -26,10 +26,6 @@
MYSQLND_RES *mysqlnd_result_init(unsigned int field_count, MYSQLND_THD_ZVAL_PCACHE
*cache);
void mysqlnd_unbuffered_free_last_data(MYSQLND_RES *result TSRMLS_DC);
-MYSQLND_RES *mysqlnd_result_init(unsigned int field_count, MYSQLND_THD_ZVAL_PCACHE
*cache);
-void mysqlnd_internal_free_result_contents(MYSQLND_RES *result TSRMLS_DC);
-void mysqlnd_internal_free_result_buffers(MYSQLND_RES *result TSRMLS_DC);
-void mysqlnd_internal_free_result(MYSQLND_RES *result TSRMLS_DC);
enum_func_status
mysqlnd_store_result_fetch_data(MYSQLND * const conn, MYSQLND_RES *result,
@@ -40,10 +36,6 @@
enum_func_status mysqlnd_query_read_result_set_header(MYSQLND *conn, MYSQLND_STMT *stmt
TSRMLS_DC);
-MYSQLND_RES * _mysqlnd_use_result(MYSQLND * const conn TSRMLS_DC);
-MYSQLND_RES * _mysqlnd_store_result(MYSQLND * const conn TSRMLS_DC);
-
-
#endif /* MYSQLND_RESULT_H */
/*
| Thread |
|---|
| • PHP mysqlnd svn commit: r383 - trunk/mysqlnd | ahristov | 18 Jun |