cvs: php4 /ext/aspell aspell.c /ext/bz2 bz2.c /ext/com COM.c /ext/cpdf cpdf.c /ext/curl curl.c /ext/db db.c /ext/dba dba.c /ext/dbase dbase.c
/ext/domxml php_domxml.c /ext/fdf fdf.c /ext/ftp php_ftp.c /ext/gd gd.c /ext/hyperwave hw.c /ext/icap php_icap.c /ext/imap php_imap.c
/ext/ingres_ii ii.c /ext/interbase interbase.c /ext/java java.c /ext/ldap ldap.c /ext/mcal php_mcal.c /ext/msql php_msql.c /ext/mssql
php_mssql.c /ext/mysql php_mysql.c /ext/oci8 oci8.c /ext/odbc php_odbc.c velocis.c /ext/oracle oracle.c /ext/pdf pdf.c /ext/pgsql pgsql.c
/ext/pspell pspell.c /ext/sablot sablot.c /ext/shmop shmop.c /ext/sockets sockets.c /ext/standard dir.c file.c var.c /ext/sybase php_sybase_db.c
/ext/sybase_ct php_sybase_ct.c /ext/sysvsem sysvsem.c /ext/sysvshm sysvshm.c /ext/wddx wddx.c /ext/xml xml.c /ext/zlib zlib.c /main main.c

From: Date: Fri, 20 Oct 2000 18:25:18 +0000
Subject: cvs: php4 /ext/aspell aspell.c /ext/bz2 bz2.c /ext/com COM.c /ext/cpdf cpdf.c /ext/curl curl.c /ext/db db.c /ext/dba dba.c /ext/dbase dbase.c
/ext/domxml php_domxml.c /ext/fdf fdf.c /ext/ftp php_ftp.c /ext/gd gd.c /ext/hyperwave hw.c /ext/icap php_icap.c /ext/imap php_imap.c
/ext/ingres_ii ii.c /ext/interbase interbase.c /ext/java java.c /ext/ldap ldap.c /ext/mcal php_mcal.c /ext/msql php_msql.c /ext/mssql
php_mssql.c /ext/mysql php_mysql.c /ext/oci8 oci8.c /ext/odbc php_odbc.c velocis.c /ext/oracle oracle.c /ext/pdf pdf.c /ext/pgsql pgsql.c
/ext/pspell pspell.c /ext/sablot sablot.c /ext/shmop shmop.c /ext/sockets sockets.c /ext/standard dir.c file.c var.c /ext/sybase php_sybase_db.c
/ext/sybase_ct php_sybase_ct.c /ext/sysvsem sysvsem.c /ext/sysvshm sysvshm.c /ext/wddx wddx.c /ext/xml xml.c /ext/zlib zlib.c /main main.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-2166@lists.php.net to get a copy of this message
andrei Fri Oct 20 11:25:18 2000 EDT Modified files: /php4/ext/aspell aspell.c /php4/ext/bz2 bz2.c /php4/ext/com COM.c /php4/ext/cpdf cpdf.c /php4/ext/curl curl.c /php4/ext/db db.c /php4/ext/dba dba.c /php4/ext/dbase dbase.c /php4/ext/domxml php_domxml.c /php4/ext/fdf fdf.c /php4/ext/ftp php_ftp.c /php4/ext/gd gd.c /php4/ext/hyperwave hw.c /php4/ext/icap php_icap.c /php4/ext/imap php_imap.c /php4/ext/ingres_ii ii.c /php4/ext/interbase interbase.c /php4/ext/java java.c /php4/ext/ldap ldap.c /php4/ext/mcal php_mcal.c /php4/ext/msql php_msql.c /php4/ext/mssql php_mssql.c /php4/ext/mysql php_mysql.c /php4/ext/oci8 oci8.c /php4/ext/odbc php_odbc.c velocis.c /php4/ext/oracle oracle.c /php4/ext/pdf pdf.c /php4/ext/pgsql pgsql.c /php4/ext/pspell pspell.c /php4/ext/sablot sablot.c /php4/ext/shmop shmop.c /php4/ext/sockets sockets.c /php4/ext/standard dir.c file.c var.c /php4/ext/sybase php_sybase_db.c /php4/ext/sybase_ct php_sybase_ct.c /php4/ext/sysvsem sysvsem.c /php4/ext/sysvshm sysvshm.c /php4/ext/wddx wddx.c /php4/ext/xml xml.c /php4/ext/zlib zlib.c /php4/main main.c Log: Mega-patch to get better resource information for modules. * Fixed a bug in zend_rsrc_list_get_rsrc_type() * Switched register_list_destructors() to use zend_register_list_destructors_ex() instead * Updated all relevant modules to provide the resource type name to register_list_destructors() call * Updated var_dump() to output resource type name instead of number @- Made resource type names visible, e.g. var_dump() and @ get_resource_type() display "file" for file resources. (Andrei) Index: php4/ext/aspell/aspell.c diff -u php4/ext/aspell/aspell.c:1.22 php4/ext/aspell/aspell.c:1.23 --- php4/ext/aspell/aspell.c:1.22 Mon Jun 5 12:47:39 2000 +++ php4/ext/aspell/aspell.c Fri Oct 20 11:24:55 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: aspell.c,v 1.22 2000/06/05 19:47:39 andi Exp $ */ +/* $Id: aspell.c,v 1.23 2000/10/20 18:24:55 andrei Exp $ */ #include "php.h" @@ -52,15 +52,16 @@ ZEND_GET_MODULE(aspell) #endif -static void php_aspell_close(aspell *sc) +static void php_aspell_close(zend_rsrc_list_entry *rsrc) { + aspell *sc = (aspell *)rsrc->ptr; aspell_free(sc); } PHP_MINIT_FUNCTION(aspell) { - le_aspell = register_list_destructors(php_aspell_close,NULL); + le_aspell = register_list_destructors(php_aspell_close,NULL,"aspell"); return SUCCESS; } Index: php4/ext/bz2/bz2.c diff -u php4/ext/bz2/bz2.c:1.1 php4/ext/bz2/bz2.c:1.2 --- php4/ext/bz2/bz2.c:1.1 Wed Oct 18 11:32:21 2000 +++ php4/ext/bz2/bz2.c Fri Oct 20 11:24:55 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: bz2.c,v 1.1 2000/10/18 18:32:21 sterling Exp $ */ +/* $Id: bz2.c,v 1.2 2000/10/20 18:24:55 andrei Exp $ */ #include "php.h" @@ -69,7 +69,7 @@ PHP_MINIT_FUNCTION(bz2) { - le_bz2 = register_list_destructors(_php_bz2_close_handle, NULL); + le_bz2 = register_list_destructors(_php_bz2_close_handle, NULL,"bzip2"); return SUCCESS; } @@ -336,8 +336,9 @@ /* }}} */ /* {{{ _php_bz2_close_handle() */ -static void _php_bz2_close_handle(BZFILE *bz) +static void _php_bz2_close_handle(zend_rsrc_list_entry *rsrc) { + BZFILE *bz = (BZFILE *)rsrc->ptr; BZ2_bzclose(bz); } /* }}} */ Index: php4/ext/com/COM.c diff -u php4/ext/com/COM.c:1.39 php4/ext/com/COM.c:1.40 --- php4/ext/com/COM.c:1.39 Mon Oct 9 04:48:14 2000 +++ php4/ext/com/COM.c Fri Oct 20 11:24:57 2000 @@ -148,8 +148,9 @@ } -static void php_idispatch_destructor(IDispatch *i_dispatch) +static void php_idispatch_destructor(zend_rsrc_list_entry *rsrc) { + IDispatch *i_dispatch = (IDispatch *)rsrc->ptr; i_dispatch->lpVtbl->Release(i_dispatch); } @@ -226,7 +227,7 @@ PHP_MINIT_FUNCTION(COM) { CoInitialize(NULL); - le_idispatch = register_list_destructors(php_idispatch_destructor, NULL); + le_idispatch = register_list_destructors(php_idispatch_destructor, NULL,"COM"); php_register_COM_class(); REGISTER_INI_ENTRIES(); return SUCCESS; Index: php4/ext/cpdf/cpdf.c diff -u php4/ext/cpdf/cpdf.c:1.19 php4/ext/cpdf/cpdf.c:1.20 --- php4/ext/cpdf/cpdf.c:1.19 Sat Jun 24 08:31:06 2000 +++ php4/ext/cpdf/cpdf.c Fri Oct 20 11:24:58 2000 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: cpdf.c,v 1.19 2000/06/24 15:31:06 sas Exp $ */ +/* $Id: cpdf.c,v 1.20 2000/10/20 18:24:58 andrei Exp $ */ /* cpdflib.h -- C language API definitions for ClibPDF library * Copyright (C) 1998 FastIO Systems, All Rights Reserved. */ @@ -162,19 +162,20 @@ ZEND_GET_MODULE(cpdf) #endif -static void _free_outline(CPDFoutlineEntry *outline) +static void _free_outline(zend_rsrc_list_entry *rsrc) { } -static void _free_doc(CPDFdoc *pdf) +static void _free_doc(zend_rsrc_list_entry *rsrc) { + CPDFdoc *pdf = (CPDFdoc *)rsrc->ptr; cpdf_close(pdf); } PHP_MINIT_FUNCTION(cpdf) { - CPDF_GLOBAL(le_outline) = register_list_destructors(_free_outline, NULL); - CPDF_GLOBAL(le_cpdf) = register_list_destructors(_free_doc, NULL); + CPDF_GLOBAL(le_outline) = register_list_destructors(_free_outline, NULL,"cpdf outline"); + CPDF_GLOBAL(le_cpdf) = register_list_destructors(_free_doc, NULL,"cpdf"); return SUCCESS; } Index: php4/ext/curl/curl.c diff -u php4/ext/curl/curl.c:1.17 php4/ext/curl/curl.c:1.18 --- php4/ext/curl/curl.c:1.17 Thu Oct 19 21:57:14 2000 +++ php4/ext/curl/curl.c Fri Oct 20 11:24:58 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: curl.c,v 1.17 2000/10/20 04:57:14 sterling Exp $ */ +/* $Id: curl.c,v 1.18 2000/10/20 18:24:58 andrei Exp $ */ #include "php.h" @@ -134,7 +134,7 @@ PHP_MINIT_FUNCTION(curl) { - le_curl = register_list_destructors(_php_curl_close, NULL); + le_curl = register_list_destructors(_php_curl_close, NULL, "curl"); /* Constants for curl_setopt() */ REGISTER_LONG_CONSTANT("CURLOPT_PORT", CURLOPT_PORT, CONST_CS | CONST_PERSISTENT); @@ -785,8 +785,9 @@ /* {{{ _php_curl_close() List destructor for curl handles */ -static void _php_curl_close(php_curl *curl_handle) +static void _php_curl_close(zend_rsrc_list_entry *rsrc) { + php_curl *curl_handle = (php_curl *)rsrc->ptr; curl_easy_cleanup(curl_handle->cp); efree(curl_handle); } Index: php4/ext/db/db.c diff -u php4/ext/db/db.c:1.43 php4/ext/db/db.c:1.44 --- php4/ext/db/db.c:1.43 Sun Jun 25 10:02:44 2000 +++ php4/ext/db/db.c Fri Oct 20 11:24:58 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: db.c,v 1.43 2000/06/25 17:02:44 zeev Exp $ */ +/* $Id: db.c,v 1.44 2000/10/20 18:24:58 andrei Exp $ */ #define IS_EXT_MODULE #if 1 @@ -423,8 +423,9 @@ } /* }}} */ -int php_dbm_close(dbm_info *info) { +int php_dbm_close(zend_rsrc_list_entry *rsrc) { int ret = 0; + dbm_info *info = (dbm_info *)rsrc->ptr; DBM_TYPE dbf; int lockfd; @@ -1121,7 +1122,7 @@ } #endif - le_db = register_list_destructors(php_dbm_close,NULL); + le_db = register_list_destructors(php_dbm_close,NULL,"dbm"); return SUCCESS; } Index: php4/ext/dba/dba.c diff -u php4/ext/dba/dba.c:1.21 php4/ext/dba/dba.c:1.22 --- php4/ext/dba/dba.c:1.21 Thu Jul 13 11:44:57 2000 +++ php4/ext/dba/dba.c Fri Oct 20 11:24:58 2000 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dba.c,v 1.21 2000/07/13 18:44:57 eschmid Exp $ */ +/* $Id: dba.c,v 1.22 2000/10/20 18:24:58 andrei Exp $ */ #include "php.h" @@ -178,8 +178,9 @@ /* {{{ helper routines */ /* {{{ dba_close */ -static void dba_close(dba_info *info) +static void dba_close(zend_rsrc_list_entry *rsrc) { + dba_info *info = (dba_info *)rsrc->ptr; if(info->hnd) info->hnd->close(info); if(info->path) free(info->path); free(info); @@ -189,8 +190,8 @@ static PHP_MINIT_FUNCTION(dba) { zend_hash_init(&ht_keys, 0, NULL, NULL, 1); - GLOBAL(le_db) = register_list_destructors(dba_close, NULL); - GLOBAL(le_pdb) = register_list_destructors(NULL, dba_close); + GLOBAL(le_db) = register_list_destructors(dba_close, NULLi,"dba"); + GLOBAL(le_pdb) = register_list_destructors(NULL, dba_close,"dba persistent"); return SUCCESS; } @@ -206,7 +207,7 @@ dba_handler *hptr; php_info_print_box_start(0); - PUTS("V1 ($Id: dba.c,v 1.21 2000/07/13 18:44:57 eschmid Exp $)"); + PUTS("V1 ($Id: dba.c,v 1.22 2000/10/20 18:24:58 andrei Exp $)"); for(hptr = handler; hptr->name; hptr++) { PUTS(" "); PUTS(hptr->name); Index: php4/ext/dbase/dbase.c diff -u php4/ext/dbase/dbase.c:1.31 php4/ext/dbase/dbase.c:1.32 --- php4/ext/dbase/dbase.c:1.31 Sun Aug 13 10:41:20 2000 +++ php4/ext/dbase/dbase.c Fri Oct 20 11:24:59 2000 @@ -55,8 +55,9 @@ #include <errno.h> -static void _close_dbase(dbhead_t *dbhead) +static void _close_dbase(zend_rsrc_list_entry *rsrc) { + dbhead_t *dbhead = (dbhead_t *)rsrc->ptr; close(dbhead->db_fd); free_dbf_head(dbhead); } @@ -80,7 +81,8 @@ dbase_globals = (dbase_global_struct *) LocalAlloc(LPTR, sizeof(dbase_global_struct)); TlsSetValue(DbaseTls, (void *) dbase_globals); #endif - DBase_GLOBAL(le_dbhead) = register_list_destructors(_close_dbase,NULL); + DBase_GLOBAL(le_dbhead) = + register_list_destructors(_close_dbase,NULL,"dbase"); return SUCCESS; } Index: php4/ext/domxml/php_domxml.c diff -u php4/ext/domxml/php_domxml.c:1.10 php4/ext/domxml/php_domxml.c:1.11 --- php4/ext/domxml/php_domxml.c:1.10 Thu Aug 10 01:31:40 2000 +++ php4/ext/domxml/php_domxml.c Fri Oct 20 11:24:59 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_domxml.c,v 1.10 2000/08/10 08:31:40 hholzgra Exp $ */ +/* $Id: php_domxml.c,v 1.11 2000/10/20 18:24:59 andrei Exp $ */ #include "php.h" @@ -111,7 +111,13 @@ ZEND_GET_MODULE(domxml) #endif -void _free_node(xmlNode *tmp) { +static void php_free_xml_doc(zend_rsrc_list_entry *rsrc) +{ + xmlDoc *doc = (xmlDoc *)rsrc->ptr; + xmlFreeDoc(doc); +} + +void _free_node(zend_rsrc_list_entry *rsrc) { /*fprintf(stderr, "Freeing node: %s\n", tmp->name);*/ } @@ -127,12 +133,12 @@ domxmltestnode_class_startup(); #endif - le_domxmldocp = register_list_destructors(xmlFreeDoc, NULL); + le_domxmldocp = register_list_destructors(xmlFreeDoc, NULL, "domxml document"); /* Freeing the document contains freeing the complete tree. Therefore nodes, attributes etc. may not be freed seperately. */ - le_domxmlnodep = register_list_destructors(_free_node, NULL); - le_domxmlattrp = register_list_destructors(NULL, NULL); + le_domxmlnodep = register_list_destructors(_free_node, NULL, "domxml node"); + le_domxmlattrp = register_list_destructors(NULL, NULL, "domxml attribute"); /* le_domxmlnsp = register_list_destructors(NULL, NULL); */ INIT_CLASS_ENTRY(domxmldoc_class_entry, "DomDocument", php_domxmldoc_class_functions); Index: php4/ext/fdf/fdf.c diff -u php4/ext/fdf/fdf.c:1.33 php4/ext/fdf/fdf.c:1.34 --- php4/ext/fdf/fdf.c:1.33 Fri Oct 13 05:13:34 2000 +++ php4/ext/fdf/fdf.c Fri Oct 20 11:24:59 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: fdf.c,v 1.33 2000/10/13 12:13:34 hholzgra Exp $ */ +/* $Id: fdf.c,v 1.34 2000/10/20 18:24:59 andrei Exp $ */ /* FdfTk lib 2.0 is a Complete C/C++ FDF Toolkit available from http://beta1.adobe.com/ada/acrosdk/forms.html. */ @@ -100,7 +100,9 @@ ZEND_GET_MODULE(fdf) #endif -static void phpi_FDFClose(FDFDoc fdf) { +static void phpi_FDFClose(zend_rsrc_list_entry *rsrc) +{ + FDFDoc fdf = (FDFDoc)rsrc->ptr; (void)FDFClose(fdf); } @@ -116,7 +118,7 @@ PHP_MINIT_FUNCTION(fdf) { FDFErc err; - FDF_GLOBAL(le_fdf) = register_list_destructors(phpi_FDFClose, NULL); + FDF_GLOBAL(le_fdf) = register_list_destructors(phpi_FDFClose, NULL, "fdf"); /* add handler for Acrobat FDF form post requests */ sapi_add_post_entry("application/vnd.fdf", php_default_post_reader, fdf_post_handler); Index: php4/ext/ftp/php_ftp.c diff -u php4/ext/ftp/php_ftp.c:1.28 php4/ext/ftp/php_ftp.c:1.29 --- php4/ext/ftp/php_ftp.c:1.28 Sun Oct 8 04:45:17 2000 +++ php4/ext/ftp/php_ftp.c Fri Oct 20 11:25:00 2000 @@ -28,7 +28,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_ftp.c,v 1.28 2000/10/08 11:45:17 dbeu Exp $ */ +/* $Id: php_ftp.c,v 1.29 2000/10/20 18:25:00 andrei Exp $ */ #include "php.h" @@ -84,14 +84,15 @@ ZEND_GET_MODULE(php_ftp) #endif -static void ftp_destructor_ftpbuf(ftpbuf_t *ftp) +static void ftp_destructor_ftpbuf(zend_rsrc_list_entry *rsrc) { + ftpbuf_t *ftp = (ftpbuf_t *)rsrc->ptr; ftp_close(ftp); } PHP_MINIT_FUNCTION(ftp) { - le_ftpbuf = register_list_destructors(ftp_destructor_ftpbuf, NULL); + le_ftpbuf = register_list_destructors(ftp_destructor_ftpbuf, NULL, "ftp"); REGISTER_MAIN_LONG_CONSTANT("FTP_ASCII", FTPTYPE_ASCII, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("FTP_BINARY", FTPTYPE_IMAGE, Index: php4/ext/gd/gd.c diff -u php4/ext/gd/gd.c:1.89 php4/ext/gd/gd.c:1.90 --- php4/ext/gd/gd.c:1.89 Mon Oct 16 06:50:30 2000 +++ php4/ext/gd/gd.c Fri Oct 20 11:25:00 2000 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: gd.c,v 1.89 2000/10/16 13:50:30 hirokawa Exp $ */ +/* $Id: gd.c,v 1.90 2000/10/20 18:25:00 andrei Exp $ */ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center, Cold Spring Harbor Labs. */ @@ -187,9 +187,14 @@ ZEND_GET_MODULE(gd) #endif +static void php_free_gd_image(zend_rsrc_list_entry *rsrc) +{ + gdImageDestroy((gdImagePtr)rsrc->ptr); +} -static void php_free_gd_font(gdFontPtr fp) +static void php_free_gd_font(zend_rsrc_list_entry *rsrc) { + gdFontPtr fp = (gdFontPtr)rsrc->ptr; if (fp->data) { efree(fp->data); } @@ -220,14 +225,14 @@ return FAILURE; } #endif - GDG(le_gd) = register_list_destructors(gdImageDestroy, NULL); - GDG(le_gd_font) = register_list_destructors(php_free_gd_font, NULL); + GDG(le_gd) = register_list_destructors(php_free_gd_image, NULL, "gd"); + GDG(le_gd_font) = register_list_destructors(php_free_gd_font, NULL, "gd font"); #if HAVE_LIBT1 T1_SetBitmapPad(8); T1_InitLib(NO_LOGFILE|IGNORE_CONFIGFILE|IGNORE_FONTDATABASE); T1_SetLogLevel(T1LOG_DEBUG); - GDG(le_ps_font) = register_list_destructors(php_free_ps_font, NULL); - GDG(le_ps_enc) = register_list_destructors(php_free_ps_enc, NULL); + GDG(le_ps_font) = register_list_destructors(php_free_ps_font, NULL, "gd PS font"); + GDG(le_ps_enc) = register_list_destructors(php_free_ps_enc, NULL, "gd PS encoding"); #endif REGISTER_LONG_CONSTANT("IMG_GIF", 1, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IMG_JPG", 2, CONST_CS | CONST_PERSISTENT); @@ -2068,14 +2073,16 @@ #if HAVE_LIBT1 -void php_free_ps_font(int *font) +void php_free_ps_font(zend_rsrc_list_entry *rsrc) { + int *font = (int *)rsrc->ptr; T1_DeleteFont(*font); efree(font); } -void php_free_ps_enc(char **enc) +void php_free_ps_enc(zend_rsrc_list_entry *rsrc) { + char **enc = (char **)rsrc->ptr; T1_DeleteEncoding(enc); } Index: php4/ext/hyperwave/hw.c diff -u php4/ext/hyperwave/hw.c:1.63 php4/ext/hyperwave/hw.c:1.64 --- php4/ext/hyperwave/hw.c:1.63 Mon Aug 28 06:04:35 2000 +++ php4/ext/hyperwave/hw.c Fri Oct 20 11:25:00 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: hw.c,v 1.63 2000/08/28 13:04:35 steinm Exp $ */ +/* $Id: hw.c,v 1.64 2000/10/20 18:25:00 andrei Exp $ */ #include <stdlib.h> #include <errno.h> @@ -132,8 +132,9 @@ void print_msg(hg_msg *msg, char *str, int txt); -void _close_hw_link(hw_connection *conn) +void _close_hw_link(zend_rsrc_list_entry *rsrc) { + hw_connection *conn = (hw_connection *)rsrc->ptr; if(conn->hostname) free(conn->hostname); if(conn->username) @@ -143,8 +144,9 @@ HwSG(num_links)--; } -void _close_hw_plink(hw_connection *conn) +void _close_hw_plink(zend_rsrc_list_entry *rsrc) { + hw_connection *conn = (hw_connection *)rsrc->ptr; if(conn->hostname) free(conn->hostname); if(conn->username) @@ -155,8 +157,9 @@ HwSG(num_persistent)--; } -void _free_hw_document(hw_document *doc) +void _free_hw_document(zend_rsrc_list_entry *rsrc) { + hw_document *doc = (hw_document *)rsrc->ptr; if(doc->data) free(doc->data); if(doc->attributes) @@ -191,9 +194,9 @@ ZEND_INIT_MODULE_GLOBALS(hw, php_hw_init_globals, NULL); REGISTER_INI_ENTRIES(); - HwSG(le_socketp) = register_list_destructors(_close_hw_link,NULL); - HwSG(le_psocketp) = register_list_destructors(NULL,_close_hw_plink); - HwSG(le_document) = register_list_destructors(_free_hw_document,NULL); + HwSG(le_socketp) = register_list_destructors(_close_hw_link,NULL, "hyperwave link"); + HwSG(le_psocketp) = register_list_destructors(NULL,_close_hw_plink, "hyperwave link persistent"); + HwSG(le_document) = register_list_destructors(_free_hw_document,NULL, "hyperwave document"); hw_module_entry.type = type; REGISTER_LONG_CONSTANT("HW_ATTR_LANG", HW_ATTR_LANG, CONST_CS | CONST_PERSISTENT); Index: php4/ext/icap/php_icap.c diff -u php4/ext/icap/php_icap.c:1.19 php4/ext/icap/php_icap.c:1.20 --- php4/ext/icap/php_icap.c:1.19 Mon Aug 21 03:10:30 2000 +++ php4/ext/icap/php_icap.c Fri Oct 20 11:25:01 2000 @@ -116,8 +116,9 @@ char icap_user[80]=""; char icap_password[80]=""; -CALSTREAM *cal_close_it (pils *icap_le_struct) +CALSTREAM *cal_close_it (zend_rsrc_list_entry *rsrc) { + pils *icap_le_struct = (pils *)rsrc->ptr; CALSTREAM *ret; ret = cal_close (icap_le_struct->icap_stream,0); efree(icap_le_struct); @@ -136,7 +137,7 @@ PHP_MINIT_FUNCTION(icap) { - le_icap = register_list_destructors(cal_close_it,NULL); + le_icap = register_list_destructors(cal_close_it,NULL,"icap"); return SUCCESS; } Index: php4/ext/imap/php_imap.c diff -u php4/ext/imap/php_imap.c:1.48 php4/ext/imap/php_imap.c:1.49 --- php4/ext/imap/php_imap.c:1.48 Wed Oct 18 18:32:50 2000 +++ php4/ext/imap/php_imap.c Fri Oct 20 11:25:03 2000 @@ -25,7 +25,7 @@ | PHP 4.0 updates: Zeev Suraski <zeev@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_imap.c,v 1.48 2000/10/19 01:32:50 chagenbu Exp $ */ +/* $Id: php_imap.c,v 1.49 2000/10/20 18:25:03 andrei Exp $ */ #define IMAP41 @@ -71,11 +71,11 @@ int imap_mail(char *to, char *subject, char *message, char *headers, char *cc, char *bcc, char *rpath); -void mail_close_it(pils *imap_le_struct); +void mail_close_it(zend_rsrc_list_entry *rsrc); #ifdef OP_RELOGIN /* AJS: close persistent connection */ -void mail_userlogout_it(pils *imap_le_struct); -void mail_nuke_chain(pils **headp); +void mail_userlogout_it(zend_rsrc_list_entry *rsrc); +void mail_nuke_chain(zend_rsrc_list_entry *rsrc); #endif function_entry imap_functions[] = { @@ -180,16 +180,18 @@ #endif -void mail_close_it(pils *imap_le_struct) +void mail_close_it(zend_rsrc_list_entry *rsrc) { + pils *imap_le_struct = (pils *)rsrc->ptr; mail_close_full(imap_le_struct->imap_stream, imap_le_struct->flags); efree(imap_le_struct); } #ifdef OP_RELOGIN /* AJS: stream close functions for persistent connections */ -void mail_userlogout_it(pils *imap_le_struct) +void mail_userlogout_it(zend_rsrc_list_entry *rsrc) { + pils *imap_le_struct = (pils *)rsrc->ptr; /* Close this user's session, putting the stream back * into AUTHENTICATE state. (Note that IMAP does not * support this behavior... yet) @@ -198,8 +200,9 @@ mail_close_full(imap_le_struct->imap_stream, imap_le_struct->flags | CL_HALF); } -void mail_nuke_chain(pils **headp) +void mail_nuke_chain(zend_rsrc_list_entry *rsrc) { + pils **headp = (pils **)rsrc->ptr; pils *node, *next; for (node = *headp; node; node = next) { @@ -589,11 +592,11 @@ ENCOTHER unknown */ - le_imap = register_list_destructors(mail_close_it,NULL); + le_imap = register_list_destructors(mail_close_it,NULL,"imap"); #ifdef OP_RELOGIN /* AJS: destructors for persistent connections */ - le_pimap = register_list_destructors(mail_userlogout_it, NULL); - le_pimapchain = register_list_destructors(NULL, mail_nuke_chain); + le_pimap = register_list_destructors(mail_userlogout_it, NULL, "imap persistent"); + le_pimapchain = register_list_destructors(NULL, mail_nuke_chain, "imap chain persistent"); #endif return SUCCESS; } Index: php4/ext/ingres_ii/ii.c diff -u php4/ext/ingres_ii/ii.c:1.10 php4/ext/ingres_ii/ii.c:1.11 --- php4/ext/ingres_ii/ii.c:1.10 Fri Sep 29 02:29:02 2000 +++ php4/ext/ingres_ii/ii.c Fri Oct 20 11:25:03 2000 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ii.c,v 1.10 2000/09/29 09:29:02 henot Exp $ */ +/* $Id: ii.c,v 1.11 2000/10/20 18:25:03 andrei Exp $ */ #include "php.h" #include "php_globals.h" @@ -138,11 +138,7 @@ return 0; } -/* closes the given link, actually disconnecting from server - and releasing associated resources after rolling back the - active transaction (if any) -*/ -static void _close_ii_link(II_LINK *link) +static void close_ii_link(II_LINK *link) { IIAPI_DISCONNPARM disconnParm; IILS_FETCH(); @@ -162,13 +158,25 @@ IIG(num_links)--; } +/* closes the given link, actually disconnecting from server + and releasing associated resources after rolling back the + active transaction (if any) +*/ +static void php_close_ii_link(zend_rsrc_list_entry *rsrc) +{ + II_LINK *link = (II_LINK *)rsrc->ptr; + close_ii_link(link); +} + + /* closes the given persistent link, see _close_ii_link */ -static void _close_ii_plink(II_LINK *link) +static void _close_ii_plink(zend_rsrc_list_entry *rsrc) { + II_LINK *link = (II_LINK *)rsrc->ptr; IILS_FETCH(); - _close_ii_link(link); + close_ii_link(link); IIG(num_persistent)--; } @@ -176,8 +184,9 @@ used when the request ends to 'refresh' the link for use by the next request */ -static void _clean_ii_plink(II_LINK *link) +static void _clean_ii_plink(zend_rsrc_list_entry *rsrc) { + II_LINK *link = (II_LINK *)rsrc->ptr; IIAPI_AUTOPARM autoParm; IILS_FETCH(); @@ -247,8 +256,8 @@ REGISTER_INI_ENTRIES(); - le_ii_link = register_list_destructors(_close_ii_link,NULL); - le_ii_plink = register_list_destructors(_clean_ii_plink,_close_ii_plink); + le_ii_link = register_list_destructors(php_close_ii_link,NULL,"ingres"); + le_ii_plink = register_list_destructors(_clean_ii_plink,php_close_ii_plink,"ingres persistent"); IIG(num_persistent) = 0; Index: php4/ext/interbase/interbase.c diff -u php4/ext/interbase/interbase.c:1.45 php4/ext/interbase/interbase.c:1.46 --- php4/ext/interbase/interbase.c:1.45 Tue Oct 17 10:46:14 2000 +++ php4/ext/interbase/interbase.c Fri Oct 20 11:25:04 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: interbase.c,v 1.45 2000/10/17 17:46:14 jah Exp $ */ +/* $Id: interbase.c,v 1.46 2000/10/20 18:25:04 andrei Exp $ */ /* TODO: Arrays, roles? @@ -332,10 +332,16 @@ } /* }}} */ +static void php_ibase_commit_link_rsrc(zend_rsrc_list_entry *rsrc) +{ + ibase_db_link *link = (ibase_db_link *)rsrc->ptr; + _php_ibase_commit_link(link); +} /* {{{ _php_ibase_close_link() */ -static void _php_ibase_close_link(ibase_db_link *link) +static void _php_ibase_close_link(zend_rsrc_list_entry *rsrc) { + ibase_db_link *link = (ibase_db_link *)rsrc->ptr; IBLS_FETCH(); _php_ibase_commit_link(link); @@ -348,8 +354,9 @@ /* {{{ _php_ibase_close_plink() */ -static void _php_ibase_close_plink(ibase_db_link *link) +static void _php_ibase_close_plink(zend_rsrc_list_entry *rsrc) { + ibase_db_link *link = (ibase_db_link *)rsrc->ptr; IBLS_FETCH(); _php_ibase_commit_link(link); @@ -363,8 +370,9 @@ /* {{{ _php_ibase_free_result() */ -static void _php_ibase_free_result(ibase_result *ib_result) +static void _php_ibase_free_result(zend_rsrc_list_entry *rsrc) { + ibase_result *ib_result = (ibase_result *)rsrc->ptr; IBLS_FETCH(); IBDEBUG("Freeing result..."); @@ -426,10 +434,16 @@ } /* }}} */ +static void php_ibase_free_query_rsrc(zend_rsrc_list_entry *rsrc) +{ + ibase_query *query = (ibase_auery *)rsrc->ptr; + _php_ibase_free_query(query); +} /* {{{ _php_ibase_free_blob() */ -static void _php_ibase_free_blob(ibase_blob_handle *ib_blob) +static void _php_ibase_free_blob(zend_rsrc_list_entry *rsrc) { + ibase_blob_handle *ib_blob = (ibase_blob_handle *)rsrc->ptr; IBLS_FETCH(); if (ib_blob->bl_handle != NULL) { /* blob open*/ @@ -443,8 +457,9 @@ /* {{{ _php_ibase_free_trans() */ -static void _php_ibase_free_trans(ibase_tr_link *ib_trans) +static void _php_ibase_free_trans(zend_rsrc_list_entry *rsrc) { + ibase_tr_link *ib_trans = (ibase_tr_link *)rsrc->ptr; ibase_db_link *ib_link; IBLS_FETCH(); @@ -494,12 +509,12 @@ REGISTER_INI_ENTRIES(); - le_result = register_list_destructors(_php_ibase_free_result, NULL); - le_query = register_list_destructors(_php_ibase_free_query, NULL); - le_blob = register_list_destructors(_php_ibase_free_blob, NULL); - le_link = register_list_destructors(_php_ibase_close_link, NULL); - le_plink = register_list_destructors(_php_ibase_commit_link, _php_ibase_close_plink); - le_trans = register_list_destructors(_php_ibase_free_trans, NULL); + le_result = register_list_destructors(_php_ibase_free_result, NULL, "interbase result"); + le_query = register_list_destructors(php_ibase_free_query_rsrc, NULL, "interbase query"); + le_blob = register_list_destructors(_php_ibase_free_blob, NULL, "interbase blob"); + le_link = register_list_destructors(_php_ibase_close_link, NULL, "interbase link"); + le_plink = register_list_destructors(php_ibase_commit_link_rsrc, _php_ibase_close_plink, "interbase link persistent"); + le_trans = register_list_destructors(_php_ibase_free_trans, NULL, "interbase transaction"); REGISTER_LONG_CONSTANT("IBASE_DEFAULT", PHP_IBASE_DEFAULT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IBASE_TEXT", PHP_IBASE_TEXT, CONST_PERSISTENT); @@ -581,7 +596,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "Interbase Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.45 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.46 $"); #ifdef COMPILE_DL_INTERBASE php_info_print_table_row(2, "Dynamic Module", "yes"); #endif Index: php4/ext/java/java.c diff -u php4/ext/java/java.c:1.37 php4/ext/java/java.c:1.38 --- php4/ext/java/java.c:1.37 Thu Aug 17 03:14:47 2000 +++ php4/ext/java/java.c Fri Oct 20 11:25:04 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: java.c,v 1.37 2000/08/17 10:14:47 rubys Exp $ */ +/* $Id: java.c,v 1.38 2000/10/20 18:25:04 andrei Exp $ */ /* * This module implements Zend OO syntax overloading support for Java @@ -592,7 +592,9 @@ /***************************************************************************/ -static void _php_java_destructor(void *jobject) { +static void _php_java_destructor(zend_rsrc_list_entry *rsrc) +{ + void *jobject = (void *)rsrc->ptr; JG_FETCH(); if (JG(jenv)) (*JG(jenv))->DeleteGlobalRef(JG(jenv), jobject); } @@ -611,7 +613,7 @@ zend_register_internal_class(&java_class_entry); - le_jobject = register_list_destructors(_php_java_destructor,NULL); + le_jobject = register_list_destructors(_php_java_destructor,NULL,"java"); REGISTER_INI_ENTRIES(); Index: php4/ext/ldap/ldap.c diff -u php4/ext/ldap/ldap.c:1.65 php4/ext/ldap/ldap.c:1.66 --- php4/ext/ldap/ldap.c:1.65 Wed Oct 18 00:47:51 2000 +++ php4/ext/ldap/ldap.c Fri Oct 20 11:25:04 2000 @@ -23,7 +23,7 @@ */ -/* $Id: ldap.c,v 1.65 2000/10/18 07:47:51 venaas Exp $ */ +/* $Id: ldap.c,v 1.66 2000/10/20 18:25:04 andrei Exp $ */ #define IS_EXT_MODULE #include "php.h" @@ -118,8 +118,9 @@ #endif -static void _close_ldap_link(LDAP *ld) +static void _close_ldap_link(zend_rsrc_list_entry *rsrc) { + LDAP *ld = (LDAP *)rsrc->ptr; LDAPLS_FETCH(); ldap_unbind_s(ld); @@ -128,8 +129,9 @@ } -static void _free_ldap_result(LDAPMessage *result) +static void _free_ldap_result(zend_rsrc_list_entry *rsrc) { + LDAPMessage *result = (LDAPMessage *)rsrc->ptr; ldap_msgfree(result); } @@ -179,8 +181,8 @@ REGISTER_MAIN_LONG_CONSTANT("GSLC_SSL_TWOWAY_AUTH", GSLC_SSL_TWOWAY_AUTH, CONST_PERSISTENT | CONST_CS); #endif - le_result = register_list_destructors(_free_ldap_result, NULL); - le_link = register_list_destructors(_close_ldap_link, NULL); + le_result = register_list_destructors(_free_ldap_result, NULL, "ldap result"); + le_link = register_list_destructors(_close_ldap_link, NULL, "ldap link"); ldap_module_entry.type = type; @@ -222,7 +224,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "LDAP Support", "enabled" ); - php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.65 2000/10/18 07:47:51 venaas Exp $" ); + php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.66 2000/10/20 18:25:04 andrei Exp $" ); php_info_print_table_row(2, "Total Links", maxl ); #ifdef LDAP_API_VERSION snprintf(ldapapiversion, 31, "%ld", LDAP_API_VERSION); Index: php4/ext/mcal/php_mcal.c diff -u php4/ext/mcal/php_mcal.c:1.35 php4/ext/mcal/php_mcal.c:1.36 --- php4/ext/mcal/php_mcal.c:1.35 Wed Oct 18 07:24:19 2000 +++ php4/ext/mcal/php_mcal.c Fri Oct 20 11:25:04 2000 @@ -125,8 +125,9 @@ char *mcal_user; char *mcal_password; -CALSTREAM *cal_close_it (pils *mcal_le_struct) +CALSTREAM *cal_close_it (zend_rsrc_list_entry *rsrc) { + pils *mcal_le_struct = (pils *)rsrc->ptr; CALSTREAM *ret; ret = cal_close (mcal_le_struct->mcal_stream,0); efree(mcal_le_struct); @@ -151,7 +152,7 @@ PHP_MINIT_FUNCTION(mcal) { - le_mcal = register_list_destructors(cal_close_it,NULL); + le_mcal = register_list_destructors(cal_close_it,NULL,"mcal"); REGISTER_MAIN_LONG_CONSTANT("MCAL_SUNDAY",SUNDAY, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_MONDAY",MONDAY, CONST_PERSISTENT | CONST_CS); Index: php4/ext/msql/php_msql.c diff -u php4/ext/msql/php_msql.c:1.22 php4/ext/msql/php_msql.c:1.23 --- php4/ext/msql/php_msql.c:1.22 Wed Aug 9 10:56:36 2000 +++ php4/ext/msql/php_msql.c Fri Oct 20 11:25:05 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_msql.c,v 1.22 2000/08/09 17:56:36 thies Exp $ */ +/* $Id: php_msql.c,v 1.23 2000/10/20 18:25:05 andrei Exp $ */ #include "php.h" #include "php_msql.h" @@ -116,9 +116,9 @@ ZEND_FETCH_RESOURCE(msql_query, m_query *, &res, -1, "mSQL result", msql_globals.le_query); \ msql_result = msql_query->result -static void _delete_query(void *arg) +static void _delete_query(zend_rsrc_list_entry *rsrc) { - m_query *query = (m_query *) arg; + m_query *query = (m_query *)rsrc->ptr; if(query->result) msqlFreeResult(query->result); efree(arg); @@ -134,15 +134,17 @@ return query; } -static void _close_msql_link(int link) +static void _close_msql_link(zend_rsrc_list_entry *rsrc) { + int link = (int)rsrc->ptr; msqlClose(link); msql_globals.num_links--; } -static void _close_msql_plink(int link) +static void _close_msql_plink(zend_rsrc_list_entry *rsrc) { + int link = (int)rsrc->ptr; msqlClose(link); msql_globals.num_persistent--; msql_globals.num_links--; @@ -160,9 +162,9 @@ msql_globals.max_links=-1; } msql_globals.num_persistent=0; - msql_globals.le_query = register_list_destructors(_delete_query,NULL); - msql_globals.le_link = register_list_destructors(_close_msql_link,NULL); - msql_globals.le_plink = register_list_destructors(NULL,_close_msql_plink); + msql_globals.le_query = register_list_destructors(_delete_query,NULL,"msql query"); + msql_globals.le_link = register_list_destructors(_close_msql_link,NULL,"msql link"); + msql_globals.le_plink = register_list_destructors(NULL,_close_msql_plink, "msql link persistent"); msql_module_entry.type = type; Index: php4/ext/mssql/php_mssql.c diff -u php4/ext/mssql/php_mssql.c:1.26 php4/ext/mssql/php_mssql.c:1.27 --- php4/ext/mssql/php_mssql.c:1.26 Thu Aug 31 12:25:31 2000 +++ php4/ext/mssql/php_mssql.c Fri Oct 20 11:25:05 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mssql.c,v 1.26 2000/08/31 19:25:31 fmk Exp $ */ +/* $Id: php_mssql.c,v 1.27 2000/10/20 18:25:05 andrei Exp $ */ #ifdef COMPILE_DL_MSSQL #define HAVE_MSSQL 1 @@ -133,8 +133,9 @@ return 0; } -static void _free_mssql_result(mssql_result *result) +static void _free_mssql_result(zend_rsrc_list_entry *rsrc) { + mssql_result *result = (mssql_result *)rsrc->ptr; int i,j; if (result->data) { @@ -168,8 +169,9 @@ zend_list_addref(id); } -static void _close_mssql_link(mssql_link *mssql_ptr) +static void _close_mssql_link(zend_rsrc_list_entry *rsrc) { + mssql_link *mssql_ptr = (mssql_link *)rsrc->ptr; MSSQLLS_FETCH(); ELS_FETCH(); @@ -182,8 +184,9 @@ } -static void _close_mssql_plink(mssql_link *mssql_ptr) +static void _close_mssql_plink(zend_rsrc_list_entry *rsrc) { + mssql_link *mssql_ptr = (mssql_link *)rsrc->ptr; MSSQLLS_FETCH(); dbclose(mssql_ptr->link); @@ -217,9 +220,9 @@ #endif REGISTER_INI_ENTRIES(); - le_result = register_list_destructors(_free_mssql_result, NULL); - le_link = register_list_destructors(_close_mssql_link, NULL); - le_plink = register_list_destructors(NULL, _close_mssql_plink); + le_result = register_list_destructors(_free_mssql_result, NULL, "mssql result"); + le_link = register_list_destructors(_close_mssql_link, NULL, "mssql link"); + le_plink = register_list_destructors(NULL, _close_mssql_plink, "mssql link persistent"); mssql_module_entry.type = type; if (dbinit()==FAIL) { Index: php4/ext/mysql/php_mysql.c diff -u php4/ext/mysql/php_mysql.c:1.54 php4/ext/mysql/php_mysql.c:1.55 --- php4/ext/mysql/php_mysql.c:1.54 Wed Oct 11 11:27:21 2000 +++ php4/ext/mysql/php_mysql.c Fri Oct 20 11:25:05 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mysql.c,v 1.54 2000/10/11 18:27:21 zeev Exp $ */ +/* $Id: php_mysql.c,v 1.55 2000/10/20 18:25:05 andrei Exp $ */ /* TODO: @@ -164,8 +164,9 @@ * This wrapper is required since mysql_free_result() returns an integer, and * thus, cannot be used directly */ -static void _free_mysql_result(MYSQL_RES *mysql_result) +static void _free_mysql_result(zend_rsrc_list_entry *rsrc) { + MYSQL_RES *mysql_result = (MYSQL_RES *)rsrc->ptr; mysql_free_result(mysql_result); } @@ -182,8 +183,9 @@ } -static void _close_mysql_link(MYSQL *link) +static void _close_mysql_link(zend_rsrc_list_entry *rsrc) { + MYSQL *link = (MYSQL *)rsrc->ptr; void (*handler) (int); MySLS_FETCH(); @@ -194,8 +196,9 @@ MySG(num_links)--; } -static void _close_mysql_plink(MYSQL *link) +static void _close_mysql_plink(zend_rsrc_list_entry *rsrc) { + MYSQL *link = (MYSQL *)rsrc->ptr; void (*handler) (int); MySLS_FETCH(); @@ -258,9 +261,9 @@ ZEND_INIT_MODULE_GLOBALS(mysql, php_mysql_init_globals, NULL); REGISTER_INI_ENTRIES(); - le_result = register_list_destructors(_free_mysql_result,NULL); - le_link = register_list_destructors(_close_mysql_link,NULL); - le_plink = register_list_destructors(NULL,_close_mysql_plink); + le_result = register_list_destructors(_free_mysql_result,NULL,"mysql result"); + le_link = register_list_destructors(_close_mysql_link,NULL, "mysql link"); + le_plink = register_list_destructors(NULL,_close_mysql_plink, "mysql link persistent"); mysql_module_entry.type = type; REGISTER_LONG_CONSTANT("MYSQL_ASSOC", MYSQL_ASSOC, CONST_CS | CONST_PERSISTENT); Index: php4/ext/oci8/oci8.c diff -u php4/ext/oci8/oci8.c:1.97 php4/ext/oci8/oci8.c:1.98 --- php4/ext/oci8/oci8.c:1.97 Sat Oct 7 02:10:54 2000 +++ php4/ext/oci8/oci8.c Fri Oct 20 11:25:06 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8.c,v 1.97 2000/10/07 09:10:54 thies Exp $ */ +/* $Id: oci8.c,v 1.98 2000/10/20 18:25:06 andrei Exp $ */ /* TODO list: * @@ -114,10 +114,10 @@ static void oci_debug(const char *format, ...); static void _oci_conn_list_dtor(oci_connection *connection); -static void _oci_stmt_list_dtor(oci_statement *statement); -static void _oci_descriptor_list_dtor(oci_descriptor *descriptor); -static void _oci_server_list_dtor(oci_server *server); -static void _oci_session_list_dtor(oci_session *session); +static void _oci_stmt_list_dtor(zend_rsrc_list_entry *rsrc); +static void _oci_descriptor_list_dtor(zend_rsrc_list_entry *rsrc); +static void _oci_server_list_dtor(zend_rsrc_list_entry *rsrc); +static void _oci_session_list_dtor(zend_rsrc_list_entry *rsrc); static void _oci_column_hash_dtor(void *data); static void _oci_define_hash_dtor(void *data); @@ -361,11 +361,11 @@ php_oci_init_globals(OCILS_C); #endif - le_stmt = register_list_destructors(_oci_stmt_list_dtor, NULL); - le_conn = register_list_destructors(_oci_conn_list_dtor, NULL); - le_desc = register_list_destructors(_oci_descriptor_list_dtor, NULL); - le_server = register_list_destructors(_oci_server_list_dtor, NULL); - le_session = register_list_destructors(_oci_session_list_dtor, NULL); + le_stmt = register_list_destructors(_oci_stmt_list_dtor, NULL, "oci8 statement"); + le_conn = register_list_destructors(php_oci_free_conn_list, NULL, "oci8 connection"); + le_desc = register_list_destructors(_oci_descriptor_list_dtor, NULL, "oci8 descriptor"); + le_server = register_list_destructors(_oci_server_list_dtor, NULL, "oci8 server"); + le_session = register_list_destructors(_oci_session_list_dtor, NULL, "oci8 session"); INIT_CLASS_ENTRY(oci_lob_class_entry, "OCI-Lob", php_oci_lob_class_functions); @@ -490,7 +490,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "OCI8 Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.97 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.98 $"); #ifndef PHP_WIN32 php_info_print_table_row(2, "Oracle Version", PHP_OCI8_VERSION ); php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_OCI8_DIR ); @@ -596,8 +596,9 @@ /* {{{ _oci_stmt_list_dtor() */ static void -_oci_stmt_list_dtor(oci_statement *statement) +_oci_stmt_list_dtor(zend_rsrc_list_entry *rsrc) { + oci_statement *statement = (oci_statement *)rsrc->ptr; oci_debug("START _oci_stmt_list_dtor: id=%d last_query=\"%s\"",statement->id,SAFE_STRING(statement->last_query)); if (statement->pStmt) { @@ -677,12 +678,20 @@ } /* }}} */ + +static void php_oci_free_conn_list(zend_rsrc_list_entry *rsrc) +{ + oci_connection *conn = (oci_connection *)rsrc->ptr; + _oci_conn_list_dtor(conn); +} + /* {{{ _oci_descriptor_list_dtor() */ static void -_oci_descriptor_list_dtor(oci_descriptor *descr) +_oci_descriptor_list_dtor(zend_rsrc_list_entry *rsrc) { + oci_descriptor *descr = (oci_descriptor *)rsrc->ptr; oci_debug("START _oci_descriptor_list_dtor: %d",descr->id); zend_list_delete(descr->conn->id); @@ -699,8 +708,9 @@ */ static void -_oci_server_list_dtor(oci_server *server) +_oci_server_list_dtor(zend_rsrc_list_entry *rsrc) { + oci_server *server = (oci_server *)rsrc->ptr; if (server->persistent) return; @@ -712,8 +722,9 @@ */ static void -_oci_session_list_dtor(oci_session *session) +_oci_session_list_dtor(zend_rsrc_list_entry *rsrc) { + oci_session *session = (oci_session *)rsrc->ptr; if (session->persistent) return; Index: php4/ext/odbc/php_odbc.c diff -u php4/ext/odbc/php_odbc.c:1.61 php4/ext/odbc/php_odbc.c:1.62 --- php4/ext/odbc/php_odbc.c:1.61 Fri Sep 29 12:03:23 2000 +++ php4/ext/odbc/php_odbc.c Fri Oct 20 11:25:08 2000 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.c,v 1.61 2000/09/29 19:03:23 kalowsky Exp $ */ +/* $Id: php_odbc.c,v 1.62 2000/10/20 18:25:08 andrei Exp $ */ #include "php.h" #include "php_globals.h" @@ -137,8 +137,9 @@ ZEND_GET_MODULE(odbc) #endif -static void _free_odbc_result(odbc_result *res) +static void _free_odbc_result(zend_rsrc_list_entry *rsrc) { + odbc_result *res = (odbc_result *)rsrc->ptr; int i; if (res) { @@ -165,8 +166,9 @@ } } -static void _close_odbc_conn(odbc_connection *conn) +static void _close_odbc_conn(zend_rsrc_list_entry *rsrc) { + odbc_connection *conn = (odbc_connection *)rsrc->ptr; /* FIXME * Closing a connection will fail if there are * pending transactions. It is in the responsibility @@ -181,8 +183,9 @@ ODBCG(num_links)--; } -static void _close_odbc_pconn(odbc_connection *conn) +static void _close_odbc_pconn(zend_rsrc_list_entry *rsrc) { + odbc_connection *conn = (odbc_connection *)rsrc->ptr; ODBCLS_FETCH(); SQLDisconnect(conn->hdbc); @@ -328,9 +331,9 @@ #endif REGISTER_INI_ENTRIES(); - le_result = register_list_destructors(_free_odbc_result, NULL); - le_conn = register_list_destructors(_close_odbc_conn, NULL); - le_pconn = register_list_destructors(NULL, _close_odbc_pconn); + le_result = register_list_destructors(_free_odbc_result, NULL, "odbc result"); + le_conn = register_list_destructors(_close_odbc_conn, NULL, "odbc link"); + le_pconn = register_list_destructors(NULL, _close_odbc_pconn, "odbc link persistent"); odbc_module_entry.type = type; REGISTER_LONG_CONSTANT("ODBC_BINMODE_PASSTHRU", 0, CONST_CS | CONST_PERSISTENT); Index: php4/ext/odbc/velocis.c diff -u php4/ext/odbc/velocis.c:1.21 php4/ext/odbc/velocis.c:1.22 --- php4/ext/odbc/velocis.c:1.21 Mon Jun 5 12:47:43 2000 +++ php4/ext/odbc/velocis.c Fri Oct 20 11:25:09 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: velocis.c,v 1.21 2000/06/05 19:47:43 andi Exp $ */ +/* $Id: velocis.c,v 1.22 2000/10/20 18:25:09 andrei Exp $ */ /* * TODO: @@ -73,15 +73,17 @@ THREAD_LS velocis_module php_velocis_module; THREAD_LS static HENV henv; -static void _close_velocis_link(VConn *conn) +static void _close_velocis_link(zend_rsrc_list_entry *rsrc) { + VConn *conn = (VConn *)rsrc->ptr; if ( conn ) { efree(conn); } } -static void _free_velocis_result(Vresult *res) +static void _free_velocis_result(zend_rsrc_list_entry *rsrc) { + Vresult *res = (Vresult *)rsrc->ptr; if ( res && res->values ) { register int i; for ( i=0; i < res->numcols; i++ ) { @@ -102,8 +104,8 @@ php_velocis_module.max_links = -1; } php_velocis_module.num_links = 0; - php_velocis_module.le_link = register_list_destructors(_close_velocis_link,NULL); - php_velocis_module.le_result = register_list_destructors(_free_velocis_result,NULL); + php_velocis_module.le_link = register_list_destructors(_close_velocis_link,NULL,"velocis link"); + php_velocis_module.le_result = register_list_destructors(_free_velocis_result,NULL,"velocis result"); return SUCCESS; } Index: php4/ext/oracle/oracle.c diff -u php4/ext/oracle/oracle.c:1.54 php4/ext/oracle/oracle.c:1.55 --- php4/ext/oracle/oracle.c:1.54 Tue Oct 10 09:58:25 2000 +++ php4/ext/oracle/oracle.c Fri Oct 20 11:25:09 2000 @@ -65,7 +65,7 @@ static oraCursor *ora_get_cursor(HashTable *, pval **); static char *ora_error(Cda_Def *); static int ora_describe_define(oraCursor *); -static int _close_oraconn(oraConnection *conn); +static int _close_oraconn(zend_rsrc_list_entry *rsrc); static int _close_oracur(oraCursor *cur); static int _ora_ping(oraConnection *conn); int ora_set_param_values(oraCursor *cursor, int isout); @@ -181,8 +181,9 @@ ZEND_GET_MODULE(oracle) #endif -static int _close_oraconn(oraConnection *conn) +static int _close_oraconn(zend_rsrc_list_entry *rsrc) { + oraConnection *conn = (oraConnection *)rsrc->ptr; ORALS_FETCH(); conn->open = 0; @@ -248,6 +249,12 @@ return 1; } +static void php_close_ora_cursor(zend_rsrc_list_entry *rsrc) +{ + oraCursor *cur = (oraCursor *)rsrc->ptr; + _close_oracur(cur); +} + static void php_ora_init_globals(ORALS_D) { if (cfg_get_long("oracle.allow_persistent", @@ -283,9 +290,9 @@ php_ora_init_globals(ORALS_C); #endif - le_cursor = register_list_destructors(_close_oracur, NULL); - le_conn = register_list_destructors(_close_oraconn, NULL); - le_pconn = register_list_destructors(NULL, _close_oraconn); + le_cursor = register_list_destructors(php_close_ora_cursor, NULL, "oracle cursor"); + le_conn = register_list_destructors(_close_oraconn, NULL, "oracle link"); + le_pconn = register_list_destructors(NULL, _close_oraconn, "oracle link persistent"); REGISTER_LONG_CONSTANT("ORA_BIND_INOUT", 0, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("ORA_BIND_IN", 1, CONST_CS | CONST_PERSISTENT); Index: php4/ext/pdf/pdf.c diff -u php4/ext/pdf/pdf.c:1.55 php4/ext/pdf/pdf.c:1.56 --- php4/ext/pdf/pdf.c:1.55 Tue Oct 10 00:42:53 2000 +++ php4/ext/pdf/pdf.c Fri Oct 20 11:25:10 2000 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdf.c,v 1.55 2000/10/10 07:42:53 steinm Exp $ */ +/* $Id: pdf.c,v 1.56 2000/10/20 18:25:10 andrei Exp $ */ /* pdflib 2.02 is subject to the ALADDIN FREE PUBLIC LICENSE. Copyright (C) 1997 Thomas Merz. */ @@ -178,18 +178,20 @@ ZEND_GET_MODULE(pdf) #endif -static void _free_pdf_image(int image) +static void _free_pdf_image(zend_rsrc_list_entry *rsrc) { } -static void _free_pdf_doc(PDF *pdf) +static void _free_pdf_doc(zend_rsrc_list_entry *rsrc) { + PDF *pdf = (PDF *)rsrc->ptr; PDF_close(pdf); PDF_delete(pdf); } -static void _free_outline(int *outline) +static void _free_outline(zend_rsrc_list_entry *rsrc) { + int *outline = (int *)rsrc->ptr; if(outline) efree(outline); } @@ -235,9 +237,9 @@ PHP_MINIT_FUNCTION(pdf) { - PDF_GLOBAL(le_pdf_image) = register_list_destructors(_free_pdf_image, NULL); - PDF_GLOBAL(le_outline) = register_list_destructors(_free_outline, NULL); - PDF_GLOBAL(le_pdf) = register_list_destructors(_free_pdf_doc, NULL); + PDF_GLOBAL(le_pdf_image) = register_list_destructors(_free_pdf_image, NULL, "pdf image"); + PDF_GLOBAL(le_outline) = register_list_destructors(_free_outline, NULL, "pdf outline"); + PDF_GLOBAL(le_pdf) = register_list_destructors(_free_pdf_doc, NULL, "pdf document"); return SUCCESS; } Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.75 php4/ext/pgsql/pgsql.c:1.76 --- php4/ext/pgsql/pgsql.c:1.75 Wed Oct 11 11:00:18 2000 +++ php4/ext/pgsql/pgsql.c Fri Oct 20 11:25:10 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.75 2000/10/11 18:00:18 zeev Exp $ */ +/* $Id: pgsql.c,v 1.76 2000/10/20 18:25:10 andrei Exp $ */ #include <stdlib.h> @@ -122,8 +122,9 @@ } -static void _close_pgsql_link(PGconn *link) +static void _close_pgsql_link(zend_rsrc_list_entry *rsrc) { + PGconn *link = (PGconn *)rsrc->ptr; PGLS_FETCH(); PQfinish(link); @@ -131,8 +132,9 @@ } -static void _close_pgsql_plink(PGconn *link) +static void _close_pgsql_plink(zend_rsrc_list_entry *rsrc) { + PGconn *link = (PGconn *)rsrc->ptr; PGLS_FETCH(); PQfinish(link); @@ -141,14 +143,16 @@ } -static void _free_ptr(pgLofp *lofp) +static void _free_ptr(zend_rsrc_list_entry *rsrc) { + pgLofp *lofp = (pgLofp *)rsrc->ptr; efree(lofp); } -static void _free_result(pgsql_result_handle *pg_result) +static void _free_result(zend_rsrc_list_entry *rsrc) { + pgsql_result_handle *pg_result = (pgsql_result_handle *)rsrc->ptr; PQclear(pg_result->result); efree(pg_result); } @@ -175,12 +179,12 @@ REGISTER_INI_ENTRIES(); - le_link = register_list_destructors(_close_pgsql_link,NULL); - le_plink = register_list_destructors(NULL,_close_pgsql_plink); + le_link = register_list_destructors(_close_pgsql_link,NULL, "pgsql link"); + le_plink = register_list_destructors(NULL,_close_pgsql_plink, "pgsql link persistent"); /* PGG(le_result = register_list_destructors(PQclear,NULL); */ - le_result = register_list_destructors(_free_result,NULL); - le_lofp = register_list_destructors(_free_ptr,NULL); - le_string = register_list_destructors(_free_ptr,NULL); + le_result = register_list_destructors(_free_result,NULL, "pgsql result"); + le_lofp = register_list_destructors(_free_ptr,NULL, "pgsql large object"); + le_string = register_list_destructors(_free_ptr,NULL, "pgsql string"); REGISTER_LONG_CONSTANT("PGSQL_ASSOC", PGSQL_ASSOC, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_NUM", PGSQL_NUM, CONST_CS | CONST_PERSISTENT); Index: php4/ext/pspell/pspell.c diff -u php4/ext/pspell/pspell.c:1.10 php4/ext/pspell/pspell.c:1.11 --- php4/ext/pspell/pspell.c:1.10 Thu Aug 10 13:57:40 2000 +++ php4/ext/pspell/pspell.c Fri Oct 20 11:25:10 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pspell.c,v 1.10 2000/08/10 20:57:40 vlad Exp $ */ +/* $Id: pspell.c,v 1.11 2000/10/20 18:25:10 andrei Exp $ */ #define IS_EXT_MODULE @@ -68,11 +68,15 @@ ZEND_GET_MODULE(pspell) #endif -static void php_pspell_close(PspellManager *manager){ +static void php_pspell_close(zend_rsrc_list_entry *rsrc) +{ + PspellManager *manager = (PspellManager *)rsrc->ptr; delete_pspell_manager(manager); } -static void php_pspell_close_config(PspellConfig *config){ +static void php_pspell_close_config(zend_rsrc_list_entry *rsrc) +{ + PspellConfig *config = (PspellConfig *)rsrc->ptr; delete_pspell_config(config); } @@ -81,8 +85,8 @@ REGISTER_MAIN_LONG_CONSTANT("PSPELL_NORMAL", PSPELL_NORMAL, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("PSPELL_BAD_SPELLERS", PSPELL_BAD_SPELLERS, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("PSPELL_RUN_TOGETHER", PSPELL_RUN_TOGETHER, CONST_PERSISTENT | CONST_CS); - le_pspell = register_list_destructors(php_pspell_close,NULL); - le_pspell_config = register_list_destructors(php_pspell_close_config,NULL); + le_pspell = register_list_destructors(php_pspell_close,NULL,"pspell"); + le_pspell_config = register_list_destructors(php_pspell_close_config,NULL,"pspell config"); return SUCCESS; } Index: php4/ext/sablot/sablot.c diff -u php4/ext/sablot/sablot.c:1.9 php4/ext/sablot/sablot.c:1.10 --- php4/ext/sablot/sablot.c:1.9 Wed Oct 11 02:17:10 2000 +++ php4/ext/sablot/sablot.c Fri Oct 20 11:25:11 2000 @@ -32,7 +32,7 @@ #include "php_sablot.h" /* Functions related to PHP's list handling */ -static void _php_sablot_free_processor(php_sablot *); +static void _php_sablot_free_processor(zend_rsrc_list_entry *rsrc); /* SAX Handlers */ static void _php_sablot_handler_pair(php_sablot *, zval **, zval **, zval **); @@ -140,7 +140,7 @@ PHP_MINIT_FUNCTION(sablot) { SABLOTLS_FETCH(); - SABLOTG(le_sablot) = register_list_destructors(_php_sablot_free_processor, NULL); + SABLOTG(le_sablot) = register_list_destructors(_php_sablot_free_processor, NULL, "sablotron"); return SUCCESS; } @@ -1058,8 +1058,9 @@ /* {{{ _php_sablot_free_processor() Free a Sablot handle */ -static void _php_sablot_free_processor(php_sablot *handle) +static void _php_sablot_free_processor(zend_rsrc_list_entry *rsrc) { + php_sablot *handle = (php_sablot *)rsrc->ptr; if (handle->p) { SablotUnregHandler(handle->p, HLR_MESSAGE, NULL, NULL); SablotUnregHandler(handle->p, HLR_SAX, NULL, NULL); Index: php4/ext/shmop/shmop.c diff -u php4/ext/shmop/shmop.c:1.5 php4/ext/shmop/shmop.c:1.6 --- php4/ext/shmop/shmop.c:1.5 Thu Oct 19 16:14:51 2000 +++ php4/ext/shmop/shmop.c Fri Oct 20 11:25:11 2000 @@ -60,19 +60,18 @@ ZEND_GET_MODULE(shmop) #endif -static void rsclean(struct php_shmop *shmop); +static void rsclean(zend_rsrc_list_entry *rsrc) +{ + struct php_shmop *shmop = (struct php_shmop *)rsrc->ptr; + shmdt(shmop->addr); + efree(shmop); +} PHP_MINIT_FUNCTION(shmop) { - shm_type = register_list_destructors(rsclean, NULL); + shm_type = register_list_destructors(rsclean, NULL, "shmop"); return SUCCESS; -} - -static void rsclean(struct php_shmop *shmop) -{ - shmdt(shmop->addr); - efree(shmop); } PHP_MSHUTDOWN_FUNCTION(shmop) Index: php4/ext/sockets/sockets.c diff -u php4/ext/sockets/sockets.c:1.14 php4/ext/sockets/sockets.c:1.15 --- php4/ext/sockets/sockets.c:1.14 Fri Sep 15 16:44:30 2000 +++ php4/ext/sockets/sockets.c Fri Oct 20 11:25:12 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sockets.c,v 1.14 2000/09/15 23:44:30 chrisv Exp $ */ +/* $Id: sockets.c,v 1.15 2000/10/20 18:25:12 andrei Exp $ */ #include "php.h" @@ -149,17 +149,15 @@ ZEND_GET_MODULE(sockets) #endif -static void destroy_fd_sets(fd_set *set); -static void destroy_iovec(php_iovec_t *iov); - - -static void destroy_fd_sets(fd_set *set) +static void destroy_fd_sets(zend_rsrc_list_entry *rsrc) { + fd_set *set = (fd_set *)rsrc->ptr; efree(set); } -static void destroy_iovec(php_iovec_t *iov) +static void destroy_iovec(zend_rsrc_list_entry *rsrc) { + php_iovec_t *iov = (php_iovec_t *)rsrc->ptr; int i; if (iov->count && iov->iov_array) { @@ -175,8 +173,8 @@ PHP_MINIT_FUNCTION(sockets) { SOCKETSLS_FETCH(); - SOCKETSG(le_destroy) = register_list_destructors(destroy_fd_sets, NULL); - SOCKETSG(le_iov) = register_list_destructors(destroy_iovec, NULL); + SOCKETSG(le_destroy) = register_list_destructors(destroy_fd_sets, NULL, "sockets file descriptor set"); + SOCKETSG(le_iov) = register_list_destructors(destroy_iovec, NULL, "sockets i/o vector"); REGISTER_LONG_CONSTANT("AF_UNIX", AF_UNIX, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("AF_INET", AF_INET, CONST_CS | CONST_PERSISTENT); Index: php4/ext/standard/dir.c diff -u php4/ext/standard/dir.c:1.45 php4/ext/standard/dir.c:1.46 --- php4/ext/standard/dir.c:1.45 Wed Oct 18 07:14:13 2000 +++ php4/ext/standard/dir.c Fri Oct 20 11:25:12 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dir.c,v 1.45 2000/10/18 14:14:13 sniper Exp $ */ +/* $Id: dir.c,v 1.46 2000/10/20 18:25:12 andrei Exp $ */ /* {{{ includes/startup/misc */ @@ -107,8 +107,9 @@ } -static void _dir_dtor(php_dir *dirp) +static void _dir_dtor(zend_rsrc_list_entry *rsrc) { + php_dir *dirp = (php_dir *)rsrc->ptr; closedir(dirp->dir); efree(dirp); } @@ -125,7 +126,7 @@ { zend_class_entry dir_class_entry; - le_dirp = register_list_destructors(_dir_dtor,NULL); + le_dirp = register_list_destructors(_dir_dtor,NULL, "dir"); INIT_CLASS_ENTRY(dir_class_entry, "Directory", php_dir_class_functions); dir_class_entry_ptr = zend_register_internal_class(&dir_class_entry); Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.116 php4/ext/standard/file.c:1.117 --- php4/ext/standard/file.c:1.116 Wed Sep 27 09:08:26 2000 +++ php4/ext/standard/file.c Fri Oct 20 11:25:12 2000 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.116 2000/09/27 16:08:26 sas Exp $ */ +/* $Id: file.c,v 1.117 2000/10/20 18:25:12 andrei Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -108,10 +108,6 @@ php_file_globals file_globals; #endif -static void _file_fopen_dtor(FILE *pipe); -static void _file_popen_dtor(FILE *pipe); -static void _file_socket_dtor(int *sock); - /* sharing globals is *evil* */ static int le_fopen, le_popen, le_socket; @@ -119,15 +115,17 @@ /* }}} */ /* {{{ Module-Stuff */ -static void _file_popen_dtor(FILE *pipe) +static void _file_popen_dtor(zend_rsrc_list_entry *rsrc) { + FILE *pipe = (FILE *)rsrc->ptr; FIL_FETCH(); FIL(pclose_ret) = pclose(pipe); } -static void _file_socket_dtor(int *sock) +static void _file_socket_dtor(zend_rsrc_list_entry *rsrc) { + int *sock = (int *)rsrc->ptr; SOCK_FCLOSE(*sock); #if HAVE_SHUTDOWN shutdown(*sock, 0); @@ -136,8 +134,9 @@ } -static void _file_fopen_dtor(FILE *fp) +static void _file_fopen_dtor(zend_rsrc_list_entry *rsrc) { + FILE *fp = (FILE *)rsrc->ptr; fclose(fp); } @@ -169,9 +168,9 @@ PHP_MINIT_FUNCTION(file) { - le_fopen = register_list_destructors(_file_fopen_dtor, NULL); - le_popen = register_list_destructors(_file_popen_dtor, NULL); - le_socket = register_list_destructors(_file_socket_dtor, NULL); + le_fopen = register_list_destructors(_file_fopen_dtor, NULL, "file"); + le_popen = register_list_destructors(_file_popen_dtor, NULL, "pipe"); + le_socket = register_list_destructors(_file_socket_dtor, NULL, "socket"); #ifdef ZTS file_globals_id = ts_allocate_id(sizeof(php_file_globals), (ts_allocate_ctor) php_file_init_globals, NULL); Index: php4/ext/standard/var.c diff -u php4/ext/standard/var.c:1.74 php4/ext/standard/var.c:1.75 --- php4/ext/standard/var.c:1.74 Wed Oct 18 11:32:32 2000 +++ php4/ext/standard/var.c Fri Oct 20 11:25:12 2000 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var.c,v 1.74 2000/10/18 18:32:32 sas Exp $ */ +/* $Id: var.c,v 1.75 2000/10/20 18:25:12 andrei Exp $ */ /* {{{ includes @@ -97,9 +97,9 @@ PUTS("}\n"); break; case IS_RESOURCE: { - int type; - zend_list_find((*struc)->value.lval, &type); - php_printf("%sresource(%ld) of type %d\n", COMMON, (*struc)->value.lval, type); + char *type_name; + type_name = zend_rsrc_list_get_rsrc_type((*struc)->value.lval); + php_printf("%sresource(%ld) of type (%s)\n", COMMON, (*struc)->value.lval, type_name ? type_name : "Unknown"); break; } default: Index: php4/ext/sybase/php_sybase_db.c diff -u php4/ext/sybase/php_sybase_db.c:1.6 php4/ext/sybase/php_sybase_db.c:1.7 --- php4/ext/sybase/php_sybase_db.c:1.6 Thu Oct 19 09:10:40 2000 +++ php4/ext/sybase/php_sybase_db.c Fri Oct 20 11:25:12 2000 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_db.c,v 1.6 2000/10/19 16:10:40 joey Exp $ */ +/* $Id: php_sybase_db.c,v 1.7 2000/10/20 18:25:12 andrei Exp $ */ #include "php.h" @@ -132,8 +132,9 @@ } -static void _free_sybase_result(sybase_result *result) +static void _free_sybase_result(zend_rsrc_list_entry *rsrc) { + sybase_result *result = (sybase_result *)rsrc->ptr; int i,j; if (result->data) { @@ -157,8 +158,9 @@ } -static void _close_sybase_link(sybase_link *sybase_ptr) +static void _close_sybase_link(zend_rsrc_list_entry *rsrc) { + sybase_link *sybase_ptr = (sybase_link *)rsrc->ptr; ELS_FETCH(); sybase_ptr->valid = 0; @@ -177,8 +179,9 @@ } -static void _close_sybase_plink(sybase_link *sybase_ptr) +static void _close_sybase_plink(zend_rsrc_list_entry *rsrc) { + sybase_link *sybase_ptr = (sybase_link *)rsrc->ptr; dbclose(sybase_ptr->link); dbloginfree(sybase_ptr->login); free(sybase_ptr); @@ -220,9 +223,9 @@ } php_sybase_module.num_persistent=0; - php_sybase_module.le_link = register_list_destructors(_close_sybase_link,NULL); - php_sybase_module.le_plink = register_list_destructors(NULL,_close_sybase_plink); - php_sybase_module.le_result = register_list_destructors(_free_sybase_result,NULL); + php_sybase_module.le_link = register_list_destructors(_close_sybase_link,NULL, "sybase-db link"); + php_sybase_module.le_plink = register_list_destructors(NULL,_close_sybase_plink, "sybase-db link persistent"); + php_sybase_module.le_result = register_list_destructors(_free_sybase_result,NULL, "sybase-db result"); return SUCCESS; } Index: php4/ext/sybase_ct/php_sybase_ct.c diff -u php4/ext/sybase_ct/php_sybase_ct.c:1.35 php4/ext/sybase_ct/php_sybase_ct.c:1.36 --- php4/ext/sybase_ct/php_sybase_ct.c:1.35 Thu Oct 19 10:03:25 2000 +++ php4/ext/sybase_ct/php_sybase_ct.c Fri Oct 20 11:25:13 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_ct.c,v 1.35 2000/10/19 17:03:25 joey Exp $ */ +/* $Id: php_sybase_ct.c,v 1.36 2000/10/20 18:25:13 andrei Exp $ */ #include "php.h" @@ -127,9 +127,15 @@ efree(result); } +static void php_free_sybase_result(zend_rsrc_list_entry *rsrc) +{ + sybase_result *result = (sybase_result *)rsrc->ptr; + _free_sybase_result(result); +} -static void _close_sybase_link(sybase_link *sybase_ptr) +static void _close_sybase_link(zend_rsrc_list_entry *rsrc) { + sybase_link *sybase_ptr = (sybase_link *)rsrc->ptr; CS_INT con_status; ELS_FETCH(); SybCtLS_FETCH(); @@ -160,8 +166,9 @@ } -static void _close_sybase_plink(sybase_link *sybase_ptr) +static void _close_sybase_plink(zend_rsrc_list_entry *rsrc) { + sybase_link *sybase_ptr = (sybase_link *)rsrc->ptr; CS_INT con_status; SybCtLS_FETCH(); @@ -315,9 +322,9 @@ REGISTER_INI_ENTRIES(); - le_link = register_list_destructors(_close_sybase_link,NULL); - le_plink = register_list_destructors(NULL,_close_sybase_plink); - le_result = register_list_destructors(_free_sybase_result,NULL); + le_link = register_list_destructors(_close_sybase_link,NULL, "sybase-ct link"); + le_plink = register_list_destructors(NULL,_close_sybase_plink, "sybase-ct link persistent"); + le_result = register_list_destructors(php_free_sybase_result,NULL, "sybase-ct result"); return SUCCESS; } Index: php4/ext/sysvsem/sysvsem.c diff -u php4/ext/sysvsem/sysvsem.c:1.24 php4/ext/sysvsem/sysvsem.c:1.25 --- php4/ext/sysvsem/sysvsem.c:1.24 Mon Jun 5 12:47:45 2000 +++ php4/ext/sysvsem/sysvsem.c Fri Oct 20 11:25:13 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sysvsem.c,v 1.24 2000/06/05 19:47:45 andi Exp $ */ +/* $Id: sysvsem.c,v 1.25 2000/10/20 18:25:13 andrei Exp $ */ /* This has been built and tested on Solaris 2.6 and Linux 2.1.122. * It may not compile or execute correctly on other systems. @@ -87,8 +87,9 @@ #define SYSVSEM_SETVAL 2 -static void release_sysvsem_sem(sysvsem_sem *sem_ptr) +static void release_sysvsem_sem(zend_rsrc_list_entry *rsrc) { + sysvsem_sem *sem_ptr = (sysvsem_sem *)rsrc->ptr; struct sembuf sop[2]; /* Decrement the usage count. */ @@ -116,7 +117,7 @@ PHP_MINIT_FUNCTION(sysvsem) { - php_sysvsem_module.le_sem = register_list_destructors(release_sysvsem_sem, NULL); + php_sysvsem_module.le_sem = register_list_destructors(release_sysvsem_sem, NULL, "sysvsem"); return SUCCESS; } Index: php4/ext/sysvshm/sysvshm.c diff -u php4/ext/sysvshm/sysvshm.c:1.30 php4/ext/sysvshm/sysvshm.c:1.31 --- php4/ext/sysvshm/sysvshm.c:1.30 Sat Aug 12 13:45:48 2000 +++ php4/ext/sysvshm/sysvshm.c Fri Oct 20 11:25:13 2000 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sysvshm.c,v 1.30 2000/08/12 20:45:48 eschmid Exp $ */ +/* $Id: sysvshm.c,v 1.31 2000/10/20 18:25:13 andrei Exp $ */ /* This has been built and tested on Solaris 2.6. * It may not compile or execute correctly on other systems. @@ -58,15 +58,16 @@ THREAD_LS sysvshm_module php_sysvshm; -static void php_release_sysvshm(sysvshm_shm *shm_ptr) +static void php_release_sysvshm(zend_rsrc_list_entry *rsrc) { + sysvshm_shm *shm_ptr = (sysvshm_shm *)rsrc->ptr; shmdt((void*)shm_ptr->ptr); efree(shm_ptr); } PHP_MINIT_FUNCTION(sysvshm) { - php_sysvshm.le_shm = register_list_destructors(php_release_sysvshm, NULL); + php_sysvshm.le_shm = register_list_destructors(php_release_sysvshm, NULL, "sysvshm"); if (cfg_get_long("sysvshm.init_mem", &php_sysvshm.init_mem)==FAILURE) { php_sysvshm.init_mem=10000; Index: php4/ext/wddx/wddx.c diff -u php4/ext/wddx/wddx.c:1.56 php4/ext/wddx/wddx.c:1.57 --- php4/ext/wddx/wddx.c:1.56 Tue Sep 19 10:37:34 2000 +++ php4/ext/wddx/wddx.c Fri Oct 20 11:25:14 2000 @@ -27,7 +27,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: wddx.c,v 1.56 2000/09/19 17:37:34 zeev Exp $ */ +/* $Id: wddx.c,v 1.57 2000/10/20 18:25:14 andrei Exp $ */ #include "php.h" #include "php_wddx.h" @@ -223,6 +223,11 @@ } /* }}} */ +static void php_free_wddx_packet(zend_rsrc_list_entry *rsrc) +{ + wddx_packet *packet = (wddx_packet *)rsrc->ptr; + php_wddx_destructor(packet); +} /* {{{ php_wddx_destructor */ void php_wddx_destructor(wddx_packet *packet) @@ -237,7 +242,7 @@ /* {{{ php_minit_wddx */ PHP_MINIT_FUNCTION(wddx) { - le_wddx = register_list_destructors(php_wddx_destructor, NULL); + le_wddx = register_list_destructors(php_free_wddx_packet, NULL, "wddx"); return SUCCESS; } Index: php4/ext/xml/xml.c diff -u php4/ext/xml/xml.c:1.61 php4/ext/xml/xml.c:1.62 --- php4/ext/xml/xml.c:1.61 Thu Aug 31 07:09:59 2000 +++ php4/ext/xml/xml.c Fri Oct 20 11:25:15 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xml.c,v 1.61 2000/08/31 14:09:59 andrei Exp $ */ +/* $Id: xml.c,v 1.62 2000/10/20 18:25:15 andrei Exp $ */ #define IS_EXT_MODULE #include "php.h" @@ -69,7 +69,7 @@ PHP_RSHUTDOWN_FUNCTION(xml); PHP_MINFO_FUNCTION(xml); -static void xml_parser_dtor(xml_parser *); +static void xml_parser_dtor(zend_rsrc_list_entry *rsrc); static void xml_set_handler(zval **, zval **); inline static unsigned short xml_encode_iso_8859_1(unsigned char); inline static char xml_decode_iso_8859_1(unsigned short); @@ -159,7 +159,7 @@ PHP_MINIT_FUNCTION(xml) { - le_xml_parser = register_list_destructors(xml_parser_dtor, NULL); + le_xml_parser = register_list_destructors(xml_parser_dtor, NULL, "xml"); #ifdef ZTS xml_globals_id = ts_allocate_id(sizeof(php_xml_globals), (ts_allocate_ctor) php_xml_init_globals, NULL); @@ -276,8 +276,9 @@ /* {{{ xml_parser_dtor() */ static void -xml_parser_dtor(xml_parser *parser) +xml_parser_dtor(zend_rsrc_list_entry *rsrc) { + xml_parser *parser = (xml_parser *)rsrc->ptr; if (parser->object) { zval_del_ref(&parser->object); Index: php4/ext/zlib/zlib.c diff -u php4/ext/zlib/zlib.c:1.55 php4/ext/zlib/zlib.c:1.56 --- php4/ext/zlib/zlib.c:1.55 Thu Oct 12 17:09:31 2000 +++ php4/ext/zlib/zlib.c Fri Oct 20 11:25:15 2000 @@ -16,7 +16,7 @@ | Stefan Röhrich <sr@linux.de> | +----------------------------------------------------------------------+ */ -/* $Id: zlib.c,v 1.55 2000/10/13 00:09:31 hholzgra Exp $ */ +/* $Id: zlib.c,v 1.56 2000/10/20 18:25:15 andrei Exp $ */ #define IS_EXT_MODULE #include "php_config.h" @@ -127,7 +127,9 @@ ZEND_GET_MODULE(php_zlib) #endif -static void phpi_destructor_gzclose(gzFile *zp) { +static void phpi_destructor_gzclose(zend_rsrc_list_entry *rsrc) +{ + gzFile *zp = (gzFile *)rsrc->ptr; (void)gzclose(zp); } @@ -147,7 +149,7 @@ #else ZLIBG(gzgetss_state)=0; #endif - le_zp = register_list_destructors(phpi_destructor_gzclose,NULL); + le_zp = register_list_destructors(phpi_destructor_gzclose,NULL,"zlib"); #if HAVE_FOPENCOOKIE Index: php4/main/main.c diff -u php4/main/main.c:1.325 php4/main/main.c:1.326 --- php4/main/main.c:1.325 Tue Oct 17 11:12:31 2000 +++ php4/main/main.c Fri Oct 20 11:25:16 2000 @@ -19,7 +19,7 @@ */ -/* $Id: main.c,v 1.325 2000/10/17 18:12:31 zeev Exp $ */ +/* $Id: main.c,v 1.326 2000/10/20 18:25:16 andrei Exp $ */ #include <stdio.h> @@ -854,7 +854,7 @@ #endif SET_MUTEX(gLock); - le_index_ptr = zend_register_list_destructors(NULL, NULL, 0); + le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0); FREE_MUTEX(gLock); php_ini_mstartup();

« previous php.cvs (#2166) next »