Resources patch

From: Date: Fri, 20 Oct 2000 03:57:48 +0000
Subject: Resources patch
Groups: php.dev 
Request: Send a blank email to php-dev+get-35612@lists.php.net to get a copy of this message
I've noticed that PHP has function get_resource_type() but it doesn't really do anything except return 'Unknown'. This was due to several reasons, main ones being that zend_rsrc_list_get_rsrc_type() was broken and that the modules did not really register their type names. This patch is supposed to fix this. I've also modified var_dump() to print resource type name. The consequence is that it is necessary to supply resource type name when calling register list destructors, and I've taken care of existing modules already. Example: <? $fp = fopen("foo", "r"); var_dump(get_resource_type($fp)); var_dump($fp); ?> string(4) "file" resource(1) of type (file) If no one objects, I'll commit it soon. -Andrei

? cscope.out ? test.php ? ext/smart_template ? ext/conffile Index: ext/aspell/aspell.c =================================================================== RCS file: /repository/php4/ext/aspell/aspell.c,v retrieving revision 1.22 diff -u -r1.22 aspell.c --- ext/aspell/aspell.c 2000/06/05 19:47:39 1.22 +++ ext/aspell/aspell.c 2000/10/20 03:52:05 @@ -60,7 +60,7 @@ 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: ext/bz2/bz2.c =================================================================== RCS file: /repository/php4/ext/bz2/bz2.c,v retrieving revision 1.1 diff -u -r1.1 bz2.c --- ext/bz2/bz2.c 2000/10/18 18:32:21 1.1 +++ ext/bz2/bz2.c 2000/10/20 03:52:05 @@ -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; } Index: ext/com/COM.c =================================================================== RCS file: /repository/php4/ext/com/COM.c,v retrieving revision 1.39 diff -u -r1.39 COM.c --- ext/com/COM.c 2000/10/09 11:48:14 1.39 +++ ext/com/COM.c 2000/10/20 03:52:05 @@ -226,7 +226,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; @@ -568,7 +568,7 @@ /* obtain i_dispatch interface */ convert_to_long(object); i_dispatch = zend_list_find(object->value.lval, &type); - if (!i_dispatch || (type!=le_idispatch)) { + if (!i_dispatch || (type!=ee_idispatch)) { php_error(E_WARNING,"%d is not a COM object handler", function_name->value.str.val); RETURN_FALSE; } Index: ext/cpdf/cpdf.c =================================================================== RCS file: /repository/php4/ext/cpdf/cpdf.c,v retrieving revision 1.19 diff -u -r1.19 cpdf.c --- ext/cpdf/cpdf.c 2000/06/24 15:31:06 1.19 +++ ext/cpdf/cpdf.c 2000/10/20 03:52:05 @@ -173,8 +173,8 @@ 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: ext/curl/curl.c =================================================================== RCS file: /repository/php4/ext/curl/curl.c,v retrieving revision 1.16 diff -u -r1.16 curl.c --- ext/curl/curl.c 2000/10/02 04:55:26 1.16 +++ ext/curl/curl.c 2000/10/20 03:52:06 @@ -130,7 +130,7 @@ PHP_MINIT_FUNCTION(curl) { CURLLS_FETCH(); - CURLG(le_curl) = register_list_destructors(_php_curl_close, NULL); + CURLG(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); Index: ext/db/db.c =================================================================== RCS file: /repository/php4/ext/db/db.c,v retrieving revision 1.43 diff -u -r1.43 db.c --- ext/db/db.c 2000/06/25 17:02:44 1.43 +++ ext/db/db.c 2000/10/20 03:52:06 @@ -1121,7 +1121,7 @@ } #endif - le_db = register_list_destructors(php_dbm_close,NULL); + le_db = register_list_destructors(php_dbm_close,NULL,"dbm"); return SUCCESS; } Index: ext/dba/dba.c =================================================================== RCS file: /repository/php4/ext/dba/dba.c,v retrieving revision 1.21 diff -u -r1.21 dba.c --- ext/dba/dba.c 2000/07/13 18:44:57 1.21 +++ ext/dba/dba.c 2000/10/20 03:52:06 @@ -189,8 +189,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; } Index: ext/dbase/dbase.c =================================================================== RCS file: /repository/php4/ext/dbase/dbase.c,v retrieving revision 1.31 diff -u -r1.31 dbase.c --- ext/dbase/dbase.c 2000/08/13 17:41:20 1.31 +++ ext/dbase/dbase.c 2000/10/20 03:52:06 @@ -80,7 +80,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: ext/domxml/php_domxml.c =================================================================== RCS file: /repository/php4/ext/domxml/php_domxml.c,v retrieving revision 1.10 diff -u -r1.10 php_domxml.c --- ext/domxml/php_domxml.c 2000/08/10 08:31:40 1.10 +++ ext/domxml/php_domxml.c 2000/10/20 03:52:06 @@ -127,12 +127,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: ext/fdf/fdf.c =================================================================== RCS file: /repository/php4/ext/fdf/fdf.c,v retrieving revision 1.33 diff -u -r1.33 fdf.c --- ext/fdf/fdf.c 2000/10/13 12:13:34 1.33 +++ ext/fdf/fdf.c 2000/10/20 03:52:06 @@ -116,7 +116,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: ext/ftp/php_ftp.c =================================================================== RCS file: /repository/php4/ext/ftp/php_ftp.c,v retrieving revision 1.28 diff -u -r1.28 php_ftp.c --- ext/ftp/php_ftp.c 2000/10/08 11:45:17 1.28 +++ ext/ftp/php_ftp.c 2000/10/20 03:52:07 @@ -91,7 +91,7 @@ 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: ext/gd/gd.c =================================================================== RCS file: /repository/php4/ext/gd/gd.c,v retrieving revision 1.89 diff -u -r1.89 gd.c --- ext/gd/gd.c 2000/10/16 13:50:30 1.89 +++ ext/gd/gd.c 2000/10/20 03:52:07 @@ -220,14 +220,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(gdImageDestroy, 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); Index: ext/hyperwave/hw.c =================================================================== RCS file: /repository/php4/ext/hyperwave/hw.c,v retrieving revision 1.63 diff -u -r1.63 hw.c --- ext/hyperwave/hw.c 2000/08/28 13:04:35 1.63 +++ ext/hyperwave/hw.c 2000/10/20 03:52:08 @@ -191,9 +191,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 socket"); + HwSG(le_psocketp) = register_list_destructors(NULL,_close_hw_plink, "hyperwave socket 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: ext/icap/php_icap.c =================================================================== RCS file: /repository/php4/ext/icap/php_icap.c,v retrieving revision 1.19 diff -u -r1.19 php_icap.c --- ext/icap/php_icap.c 2000/08/21 10:10:30 1.19 +++ ext/icap/php_icap.c 2000/10/20 03:52:08 @@ -136,7 +136,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: ext/imap/php_imap.c =================================================================== RCS file: /repository/php4/ext/imap/php_imap.c,v retrieving revision 1.48 diff -u -r1.48 php_imap.c --- ext/imap/php_imap.c 2000/10/19 01:32:50 1.48 +++ ext/imap/php_imap.c 2000/10/20 03:52:09 @@ -589,11 +589,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: ext/ingres_ii/ii.c =================================================================== RCS file: /repository/php4/ext/ingres_ii/ii.c,v retrieving revision 1.10 diff -u -r1.10 ii.c --- ext/ingres_ii/ii.c 2000/09/29 09:29:02 1.10 +++ ext/ingres_ii/ii.c 2000/10/20 03:52:09 @@ -247,8 +247,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(_close_ii_link,NULL,"ingres"); + le_ii_plink = register_list_destructors(_clean_ii_plink,_close_ii_plink,"ingres persistent"); IIG(num_persistent) = 0; Index: ext/interbase/interbase.c =================================================================== RCS file: /repository/php4/ext/interbase/interbase.c,v retrieving revision 1.45 diff -u -r1.45 interbase.c --- ext/interbase/interbase.c 2000/10/17 17:46:14 1.45 +++ ext/interbase/interbase.c 2000/10/20 03:52:10 @@ -494,12 +494,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, 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, _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); Index: ext/java/java.c =================================================================== RCS file: /repository/php4/ext/java/java.c,v retrieving revision 1.37 diff -u -r1.37 java.c --- ext/java/java.c 2000/08/17 10:14:47 1.37 +++ ext/java/java.c 2000/10/20 03:52:10 @@ -611,7 +611,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: ext/ldap/ldap.c =================================================================== RCS file: /repository/php4/ext/ldap/ldap.c,v retrieving revision 1.65 diff -u -r1.65 ldap.c --- ext/ldap/ldap.c 2000/10/18 07:47:51 1.65 +++ ext/ldap/ldap.c 2000/10/20 03:52:10 @@ -179,8 +179,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; Index: ext/mcal/php_mcal.c =================================================================== RCS file: /repository/php4/ext/mcal/php_mcal.c,v retrieving revision 1.35 diff -u -r1.35 php_mcal.c --- ext/mcal/php_mcal.c 2000/10/18 14:24:19 1.35 +++ ext/mcal/php_mcal.c 2000/10/20 03:52:11 @@ -151,7 +151,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: ext/msql/php_msql.c =================================================================== RCS file: /repository/php4/ext/msql/php_msql.c,v retrieving revision 1.22 diff -u -r1.22 php_msql.c --- ext/msql/php_msql.c 2000/08/09 17:56:36 1.22 +++ ext/msql/php_msql.c 2000/10/20 03:52:11 @@ -160,9 +160,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: ext/mssql/php_mssql.c =================================================================== RCS file: /repository/php4/ext/mssql/php_mssql.c,v retrieving revision 1.26 diff -u -r1.26 php_mssql.c --- ext/mssql/php_mssql.c 2000/08/31 19:25:31 1.26 +++ ext/mssql/php_mssql.c 2000/10/20 03:52:11 @@ -217,9 +217,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: ext/mysql/php_mysql.c =================================================================== RCS file: /repository/php4/ext/mysql/php_mysql.c,v retrieving revision 1.54 diff -u -r1.54 php_mysql.c --- ext/mysql/php_mysql.c 2000/10/11 18:27:21 1.54 +++ ext/mysql/php_mysql.c 2000/10/20 03:52:12 @@ -258,9 +258,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: ext/oci8/oci8.c =================================================================== RCS file: /repository/php4/ext/oci8/oci8.c,v retrieving revision 1.97 diff -u -r1.97 oci8.c --- ext/oci8/oci8.c 2000/10/07 09:10:54 1.97 +++ ext/oci8/oci8.c 2000/10/20 03:52:12 @@ -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(_oci_conn_list_dtor, 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); Index: ext/odbc/php_odbc.c =================================================================== RCS file: /repository/php4/ext/odbc/php_odbc.c,v retrieving revision 1.61 diff -u -r1.61 php_odbc.c --- ext/odbc/php_odbc.c 2000/09/29 19:03:23 1.61 +++ ext/odbc/php_odbc.c 2000/10/20 03:52:13 @@ -328,9 +328,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: ext/odbc/velocis.c =================================================================== RCS file: /repository/php4/ext/odbc/velocis.c,v retrieving revision 1.21 diff -u -r1.21 velocis.c --- ext/odbc/velocis.c 2000/06/05 19:47:43 1.21 +++ ext/odbc/velocis.c 2000/10/20 03:52:13 @@ -102,8 +102,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: ext/oracle/oracle.c =================================================================== RCS file: /repository/php4/ext/oracle/oracle.c,v retrieving revision 1.54 diff -u -r1.54 oracle.c --- ext/oracle/oracle.c 2000/10/10 16:58:25 1.54 +++ ext/oracle/oracle.c 2000/10/20 03:52:14 @@ -283,9 +283,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(_close_oracur, 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: ext/pdf/pdf.c =================================================================== RCS file: /repository/php4/ext/pdf/pdf.c,v retrieving revision 1.55 diff -u -r1.55 pdf.c --- ext/pdf/pdf.c 2000/10/10 07:42:53 1.55 +++ ext/pdf/pdf.c 2000/10/20 03:52:14 @@ -235,9 +235,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"); return SUCCESS; } Index: ext/pgsql/pgsql.c =================================================================== RCS file: /repository/php4/ext/pgsql/pgsql.c,v retrieving revision 1.75 diff -u -r1.75 pgsql.c --- ext/pgsql/pgsql.c 2000/10/11 18:00:18 1.75 +++ ext/pgsql/pgsql.c 2000/10/20 03:52:14 @@ -175,12 +175,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: ext/pspell/pspell.c =================================================================== RCS file: /repository/php4/ext/pspell/pspell.c,v retrieving revision 1.10 diff -u -r1.10 pspell.c --- ext/pspell/pspell.c 2000/08/10 20:57:40 1.10 +++ ext/pspell/pspell.c 2000/10/20 03:52:14 @@ -81,8 +81,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: ext/sablot/sablot.c =================================================================== RCS file: /repository/php4/ext/sablot/sablot.c,v retrieving revision 1.9 diff -u -r1.9 sablot.c --- ext/sablot/sablot.c 2000/10/11 09:17:10 1.9 +++ ext/sablot/sablot.c 2000/10/20 03:52:15 @@ -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; } Index: ext/shmop/shmop.c =================================================================== RCS file: /repository/php4/ext/shmop/shmop.c,v retrieving revision 1.5 diff -u -r1.5 shmop.c --- ext/shmop/shmop.c 2000/10/19 23:14:51 1.5 +++ ext/shmop/shmop.c 2000/10/20 03:52:15 @@ -64,7 +64,7 @@ PHP_MINIT_FUNCTION(shmop) { - shm_type = register_list_destructors(rsclean, NULL); + shm_type = register_list_destructors(rsclean, NULL, "shmop"); return SUCCESS; } Index: ext/sockets/sockets.c =================================================================== RCS file: /repository/php4/ext/sockets/sockets.c,v retrieving revision 1.14 diff -u -r1.14 sockets.c --- ext/sockets/sockets.c 2000/09/15 23:44:30 1.14 +++ ext/sockets/sockets.c 2000/10/20 03:52:15 @@ -175,8 +175,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: ext/standard/dir.c =================================================================== RCS file: /repository/php4/ext/standard/dir.c,v retrieving revision 1.45 diff -u -r1.45 dir.c --- ext/standard/dir.c 2000/10/18 14:14:13 1.45 +++ ext/standard/dir.c 2000/10/20 03:52:15 @@ -125,7 +125,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: ext/standard/file.c =================================================================== RCS file: /repository/php4/ext/standard/file.c,v retrieving revision 1.116 diff -u -r1.116 file.c --- ext/standard/file.c 2000/09/27 16:08:26 1.116 +++ ext/standard/file.c 2000/10/20 03:52:16 @@ -169,9 +169,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: ext/standard/var.c =================================================================== RCS file: /repository/php4/ext/standard/var.c,v retrieving revision 1.74 diff -u -r1.74 var.c --- ext/standard/var.c 2000/10/18 18:32:32 1.74 +++ ext/standard/var.c 2000/10/20 03:52:16 @@ -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: ext/sybase/php_sybase_db.c =================================================================== RCS file: /repository/php4/ext/sybase/php_sybase_db.c,v retrieving revision 1.6 diff -u -r1.6 php_sybase_db.c --- ext/sybase/php_sybase_db.c 2000/10/19 16:10:40 1.6 +++ ext/sybase/php_sybase_db.c 2000/10/20 03:52:16 @@ -220,9 +220,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: ext/sybase_ct/php_sybase_ct.c =================================================================== RCS file: /repository/php4/ext/sybase_ct/php_sybase_ct.c,v retrieving revision 1.35 diff -u -r1.35 php_sybase_ct.c --- ext/sybase_ct/php_sybase_ct.c 2000/10/19 17:03:25 1.35 +++ ext/sybase_ct/php_sybase_ct.c 2000/10/20 03:52:17 @@ -315,9 +315,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(_free_sybase_result,NULL, "sybase-ct result"); return SUCCESS; } Index: ext/sysvsem/sysvsem.c =================================================================== RCS file: /repository/php4/ext/sysvsem/sysvsem.c,v retrieving revision 1.24 diff -u -r1.24 sysvsem.c --- ext/sysvsem/sysvsem.c 2000/06/05 19:47:45 1.24 +++ ext/sysvsem/sysvsem.c 2000/10/20 03:52:17 @@ -116,7 +116,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: ext/sysvshm/sysvshm.c =================================================================== RCS file: /repository/php4/ext/sysvshm/sysvshm.c,v retrieving revision 1.30 diff -u -r1.30 sysvshm.c --- ext/sysvshm/sysvshm.c 2000/08/12 20:45:48 1.30 +++ ext/sysvshm/sysvshm.c 2000/10/20 03:52:17 @@ -66,7 +66,7 @@ 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: ext/wddx/wddx.c =================================================================== RCS file: /repository/php4/ext/wddx/wddx.c,v retrieving revision 1.56 diff -u -r1.56 wddx.c --- ext/wddx/wddx.c 2000/09/19 17:37:34 1.56 +++ ext/wddx/wddx.c 2000/10/20 03:52:17 @@ -237,7 +237,7 @@ /* {{{ php_minit_wddx */ PHP_MINIT_FUNCTION(wddx) { - le_wddx = register_list_destructors(php_wddx_destructor, NULL); + le_wddx = register_list_destructors(php_wddx_destructor, NULL, "wddx"); return SUCCESS; } Index: ext/xml/xml.c =================================================================== RCS file: /repository/php4/ext/xml/xml.c,v retrieving revision 1.61 diff -u -r1.61 xml.c --- ext/xml/xml.c 2000/08/31 14:09:59 1.61 +++ ext/xml/xml.c 2000/10/20 03:52:17 @@ -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); Index: ext/zlib/zlib.c =================================================================== RCS file: /repository/php4/ext/zlib/zlib.c,v retrieving revision 1.55 diff -u -r1.55 zlib.c --- ext/zlib/zlib.c 2000/10/13 00:09:31 1.55 +++ ext/zlib/zlib.c 2000/10/20 03:52:17 @@ -147,7 +147,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: main/main.c =================================================================== RCS file: /repository/php4/main/main.c,v retrieving revision 1.325 diff -u -r1.325 main.c --- main/main.c 2000/10/17 18:12:31 1.325 +++ main/main.c 2000/10/20 03:52:18 @@ -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(NULL, NULL, "index pointer", 0); FREE_MUTEX(gLock); php_ini_mstartup(); Index: Zend/zend_list.c =================================================================== RCS file: /repository/Zend/zend_list.c,v retrieving revision 1.26 diff -u -r1.26 zend_list.c --- Zend/zend_list.c 2000/07/14 20:00:24 1.26 +++ Zend/zend_list.c 2000/10/20 03:52:53 @@ -335,7 +335,7 @@ } -ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number) +ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), char *type_name, int module_number) { zend_rsrc_list_dtors_entry lde; @@ -349,7 +349,7 @@ lde.module_number = module_number; lde.resource_id = list_destructors.nNextFreeElement; lde.type = ZEND_RESOURCE_LIST_TYPE_STD; - lde.type_name = NULL; + lde.type_name = type_name; if (zend_hash_next_index_insert(&list_destructors, (void *) &lde, sizeof(zend_rsrc_list_dtors_entry), NULL)==FAILURE) { return FAILURE; @@ -397,8 +397,12 @@ char *zend_rsrc_list_get_rsrc_type(int resource) { zend_rsrc_list_dtors_entry *lde; + int rsrc_type; + + if (!zend_list_find(resource, &rsrc_type)) + return NULL; - if (zend_hash_index_find(&list_destructors, resource, (void **) &lde)==SUCCESS) { + if (zend_hash_index_find(&list_destructors, rsrc_type, (void **) &lde)==SUCCESS) { return lde->type_name; } else { return NULL; Index: Zend/zend_list.h =================================================================== RCS file: /repository/Zend/zend_list.h,v retrieving revision 1.21 diff -u -r1.21 zend_list.h --- Zend/zend_list.h 2000/07/14 20:00:24 1.21 +++ Zend/zend_list.h 2000/10/20 03:52:53 @@ -55,8 +55,8 @@ } zend_rsrc_list_dtors_entry; -#define register_list_destructors(ld, pld) zend_register_list_destructors((void (*)(void *))ld, (void (*)(void *))pld, module_number); -ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number); +#define register_list_destructors(ld, pld, name) zend_register_list_destructors((void (*)(void *))ld, (void (*)(void *))pld, name, module_number); +ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), char *type_name, int module_number); ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number); enum list_entry_type {
« previous php.dev (#35612) next »