pg_close was undefining default_conn even if a ref to it was still there.

This commit is contained in:
Romolo Manfredini 2001-03-26 08:00:43 +00:00
parent 5a0056842d
commit 99e5dfd00e

View File

@ -501,7 +501,8 @@ PHP_FUNCTION(pg_pconnect)
PHP_FUNCTION(pg_close) PHP_FUNCTION(pg_close)
{ {
zval **pgsql_link = NULL; zval **pgsql_link = NULL;
int id; void *ptr;
int id, type;
PGconn *pgsql; PGconn *pgsql;
PGLS_FETCH(); PGLS_FETCH();
@ -527,12 +528,15 @@ PHP_FUNCTION(pg_close)
if (id==-1) { /* explicit resource number */ if (id==-1) { /* explicit resource number */
zend_list_delete(Z_RESVAL_PP(pgsql_link)); zend_list_delete(Z_RESVAL_PP(pgsql_link));
ptr = zend_list_find(Z_RESVAL_PP(pgsql_link),&type);
if (ptr && (type==le_link || type==le_plink)) {
RETURN_TRUE;
}
} }
if (id!=-1 if (id!=-1
|| (pgsql_link && Z_RESVAL_PP(pgsql_link)==PGG(default_link))) { || (pgsql_link && Z_RESVAL_PP(pgsql_link)==PGG(default_link))) {
if (id!=-1) zend_list_delete(PGG(default_link));
zend_list_delete(PGG(default_link));
PGG(default_link) = -1; PGG(default_link) = -1;
} }