List:Commits« Previous MessageNext Message »
From:ahristov Date:June 18 2007 10:37am
Subject:PHP mysqlnd svn commit: r383 - trunk/mysqlnd
View as plain text  
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/mysqlndahristov18 Jun