andrey                                   Tue, 22 Dec 2009 17:44:42 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=292491

Log:
Fix double calls to free_contents if the connection cannot be
opened. mysqlnd have no probs, external code should not have too.
In any case, double call is not needed.

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-12-22 17:31:31 UTC 
(rev 292490)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2009-12-22 17:44:42 UTC 
(rev 292491)
@@ -737,8 +737,6 @@
                conn->scheme = NULL;
        }

-       /* This will also close conn->net->stream if it has been opened */
-       conn->m->free_contents(conn TSRMLS_CC);
        MYSQLND_INC_CONN_STATISTIC(&conn->stats, STAT_CONNECT_FAILURE);

        DBG_RETURN(FAIL);
@@ -776,6 +774,9 @@
                          object - we are free to kill it!
                        */
                        conn->m->dtor(conn TSRMLS_CC);
+               } else {
+                       /* This will also close conn->net->stream if it has 
been opened */
+                       conn->m->free_contents(conn TSRMLS_CC);
                }
                DBG_RETURN(NULL);
        }

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-12-22 17:31:31 UTC (rev 
292490)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2009-12-22 17:44:42 UTC (rev 
292491)
@@ -737,8 +737,6 @@
                conn->scheme = NULL;
        }

-       /* This will also close conn->net->stream if it has been opened */
-       conn->m->free_contents(conn TSRMLS_CC);
        MYSQLND_INC_CONN_STATISTIC(&conn->stats, STAT_CONNECT_FAILURE);

        DBG_RETURN(FAIL);
@@ -776,6 +774,9 @@
                          object - we are free to kill it!
                        */
                        conn->m->dtor(conn TSRMLS_CC);
+               } else {
+                       /* This will also close conn->net->stream if it has 
been opened */
+                       conn->m->free_contents(conn TSRMLS_CC);
                }
                DBG_RETURN(NULL);
        }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to