summaryrefslogtreecommitdiff
path: root/ext/sybase_ct/php_sybase_ct.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sybase_ct/php_sybase_ct.c')
-rw-r--r--ext/sybase_ct/php_sybase_ct.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/sybase_ct/php_sybase_ct.c b/ext/sybase_ct/php_sybase_ct.c
index f0c95ba7c5..d93a980457 100644
--- a/ext/sybase_ct/php_sybase_ct.c
+++ b/ext/sybase_ct/php_sybase_ct.c
@@ -687,10 +687,14 @@ PHP_FUNCTION(sybase_close)
ZEND_FETCH_RESOURCE2(sybase_ptr, sybase_link *, &sybase_link_index, id, "Sybase-Link", le_link, le_plink);
- if (sybase_link_index) {
- zend_list_delete(sybase_link_index->value.lval);
- } else {
- zend_list_delete(id);
+ if (id==-1) { /* explicit resource number */
+ zend_list_delete(Z_RESVAL_P(sybase_link_index));
+ }
+
+ if (id!=-1
+ || (sybase_link_index && Z_RESVAL_P(sybase_link_index)==SybCtG(default_link))) {
+ zend_list_delete(SybCtG(default_link));
+ SybCtG(default_link) = -1;
}
RETURN_TRUE;