Diff for /embedaddon/php/ext/mysqlnd/mysqlnd_result.c between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2013/07/22 01:31:56 version 1.1.1.4, 2014/06/15 20:03:52
Line 2 Line 2
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
   | PHP Version 5                                                        |    | PHP Version 5                                                        |
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
  | Copyright (c) 2006-2013 The PHP Group                                |  | Copyright (c) 2006-2014 The PHP Group                                |
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |    | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |    | that is bundled with this package in the file LICENSE, and is        |
Line 198  MYSQLND_METHOD(mysqlnd_res, free_buffered_data)(MYSQLN Line 198  MYSQLND_METHOD(mysqlnd_res, free_buffered_data)(MYSQLN
         if (set->data) {          if (set->data) {
                 unsigned int copy_on_write_performed = 0;                  unsigned int copy_on_write_performed = 0;
                 unsigned int copy_on_write_saved = 0;                  unsigned int copy_on_write_saved = 0;
                   zval **data = set->data;
                   set->data = NULL; /* prevent double free if following loop is interrupted */
   
                 for (row = set->row_count - 1; row >= 0; row--) {                  for (row = set->row_count - 1; row >= 0; row--) {
                        zval **current_row = set->data + row * field_count;                        zval **current_row = data + row * field_count;
                         MYSQLND_MEMORY_POOL_CHUNK *current_buffer = set->row_buffers[row];                          MYSQLND_MEMORY_POOL_CHUNK *current_buffer = set->row_buffers[row];
                         int64_t col;                          int64_t col;
   
Line 222  MYSQLND_METHOD(mysqlnd_res, free_buffered_data)(MYSQLN Line 224  MYSQLND_METHOD(mysqlnd_res, free_buffered_data)(MYSQLN
   
                 MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(STAT_COPY_ON_WRITE_PERFORMED, copy_on_write_performed,                  MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(STAT_COPY_ON_WRITE_PERFORMED, copy_on_write_performed,
                                                                                           STAT_COPY_ON_WRITE_SAVED, copy_on_write_saved);                                                                                            STAT_COPY_ON_WRITE_SAVED, copy_on_write_saved);
                mnd_efree(set->data);                mnd_efree(data);
                set->data = NULL; 
         }          }
   
         if (set->row_buffers) {          if (set->row_buffers) {
Line 426  mysqlnd_query_read_result_set_header(MYSQLND_CONN_DATA Line 427  mysqlnd_query_read_result_set_header(MYSQLND_CONN_DATA
                                 DBG_INF("UPSERT");                                  DBG_INF("UPSERT");
                                 conn->last_query_type = QUERY_UPSERT;                                  conn->last_query_type = QUERY_UPSERT;
                                 conn->field_count = rset_header->field_count;                                  conn->field_count = rset_header->field_count;
                                   memset(conn->upsert_status, 0, sizeof(*conn->upsert_status));
                                 conn->upsert_status->warning_count = rset_header->warning_count;                                  conn->upsert_status->warning_count = rset_header->warning_count;
                                 conn->upsert_status->server_status = rset_header->server_status;                                  conn->upsert_status->server_status = rset_header->server_status;
                                 conn->upsert_status->affected_rows = rset_header->affected_rows;                                  conn->upsert_status->affected_rows = rset_header->affected_rows;
Line 714  mysqlnd_fetch_row_unbuffered_c(MYSQLND_RES * result TS Line 716  mysqlnd_fetch_row_unbuffered_c(MYSQLND_RES * result TS
                 /* Mark the connection as usable again */                  /* Mark the connection as usable again */
                 DBG_INF_FMT("warnings=%u server_status=%u", row_packet->warning_count, row_packet->server_status);                  DBG_INF_FMT("warnings=%u server_status=%u", row_packet->warning_count, row_packet->server_status);
                 result->unbuf->eof_reached = TRUE;                  result->unbuf->eof_reached = TRUE;
                   memset(result->conn->upsert_status, 0, sizeof(*result->conn->upsert_status));
                 result->conn->upsert_status->warning_count = row_packet->warning_count;                  result->conn->upsert_status->warning_count = row_packet->warning_count;
                 result->conn->upsert_status->server_status = row_packet->server_status;                  result->conn->upsert_status->server_status = row_packet->server_status;
                 /*                  /*
Line 849  mysqlnd_fetch_row_unbuffered(MYSQLND_RES * result, voi Line 852  mysqlnd_fetch_row_unbuffered(MYSQLND_RES * result, voi
                 /* Mark the connection as usable again */                  /* Mark the connection as usable again */
                 DBG_INF_FMT("warnings=%u server_status=%u", row_packet->warning_count, row_packet->server_status);                  DBG_INF_FMT("warnings=%u server_status=%u", row_packet->warning_count, row_packet->server_status);
                 result->unbuf->eof_reached = TRUE;                  result->unbuf->eof_reached = TRUE;
                   memset(result->conn->upsert_status, 0, sizeof(*result->conn->upsert_status));
                 result->conn->upsert_status->warning_count = row_packet->warning_count;                  result->conn->upsert_status->warning_count = row_packet->warning_count;
                 result->conn->upsert_status->server_status = row_packet->server_status;                  result->conn->upsert_status->server_status = row_packet->server_status;
                 /*                  /*
Line 1206  MYSQLND_METHOD(mysqlnd_res, store_result_fetch_data)(M Line 1210  MYSQLND_METHOD(mysqlnd_res, store_result_fetch_data)(M
   
         /* Finally clean */          /* Finally clean */
         if (row_packet->eof) {           if (row_packet->eof) { 
                   memset(conn->upsert_status, 0, sizeof(*conn->upsert_status));
                 conn->upsert_status->warning_count = row_packet->warning_count;                  conn->upsert_status->warning_count = row_packet->warning_count;
                 conn->upsert_status->server_status = row_packet->server_status;                  conn->upsert_status->server_status = row_packet->server_status;
         }          }

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>