cvs: ZendEngine2 / zend_API.c

From: Date: Wed, 12 May 2004 23:05:28 +0000
Subject: cvs: ZendEngine2 / zend_API.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2637@lists.php.net to get a copy of this message
helly Wed May 12 19:05:28 2004 EDT Modified files: /ZendEngine2 zend_API.c Log: - Centralize register and hash operations for startup/register_module in new zend_register_module_ex(). http://cvs.php.net/diff.php/ZendEngine2/zend_API.c?r1=1.251&r2=1.252&ty=u Index: ZendEngine2/zend_API.c diff -u ZendEngine2/zend_API.c:1.251 ZendEngine2/zend_API.c:1.252 --- ZendEngine2/zend_API.c:1.251 Wed May 12 19:03:38 2004 +++ ZendEngine2/zend_API.c Wed May 12 19:05:28 2004 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c,v 1.251 2004/05/12 23:03:38 helly Exp $ */ +/* $Id: zend_API.c,v 1.252 2004/05/12 23:05:28 helly Exp $ */ #include "zend.h" #include "zend_execute.h" @@ -1158,27 +1158,57 @@ return SUCCESS; } -ZEND_API int zend_startup_module(zend_module_entry *module) +ZEND_API int zend_register_module_ex(zend_module_entry *module TSRMLS_DC) { - if (module) { - module->module_number = zend_next_free_module(); - if (module->module_startup_func) { - TSRMLS_FETCH(); - - EG(current_module) = module; - if (module->module_startup_func(MODULE_PERSISTENT, module->module_number TSRMLS_CC)==FAILURE) { - zend_error(E_CORE_ERROR,"Unable to start %s module", module->name); - EG(current_module) = NULL; - return FAILURE; - } + int name_len; + char *lcname; + + if (!module) { + return FAILURE; + } + +#if 0 + zend_printf("%s: Registering module %d\n", module->name, module->module_number); +#endif + name_len = strlen(module->name); + lcname = zend_str_tolower_dup(module->name, name_len); + + if (zend_hash_add(&module_registry, lcname, name_len+1, (void *)module, sizeof(zend_module_entry), NULL)==FAILURE) { + zend_error(E_CORE_WARNING, "Module '%s' already loaded", module->name); + efree(lcname); + return FAILURE; + } + efree(lcname); + + if (module->functions && zend_register_functions(NULL, module->functions, NULL, module->type TSRMLS_CC)==FAILURE) { + zend_error(E_CORE_WARNING,"%s: Unable to register functions, unable to load", module->name); + return FAILURE; + } + + if (!module->module_started && module->module_startup_func) { + EG(current_module) = module; + if (module->module_startup_func(MODULE_PERSISTENT, module->module_number TSRMLS_CC)==FAILURE) { + zend_error(E_CORE_ERROR,"Unable to start %s module", module->name); EG(current_module) = NULL; + return FAILURE; } - module->type = MODULE_PERSISTENT; - zend_register_module(module); + EG(current_module) = NULL; } + + module->module_started=1; + return SUCCESS; } +ZEND_API int zend_startup_module(zend_module_entry *module) +{ + TSRMLS_FETCH(); + + module->module_number = zend_next_free_module(); + module->type = MODULE_PERSISTENT; + return zend_register_module_ex(module TSRMLS_CC); +} + /* registers all functions in *library_functions in the function hash */ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC) @@ -1357,23 +1387,9 @@ ZEND_API int zend_register_module(zend_module_entry *module) { - int retval, name_len; - char *lcname; TSRMLS_FETCH(); - -#if 0 - zend_printf("%s: Registering module %d\n", module->name, module->module_number); -#endif - if (module->functions && zend_register_functions(NULL, module->functions, NULL, module->type TSRMLS_CC)==FAILURE) { - zend_error(E_CORE_WARNING,"%s: Unable to register functions, unable to load", module->name); - return FAILURE; - } - module->module_started=1; - name_len = strlen(module->name); - lcname = zend_str_tolower_dup(module->name, name_len); - retval = zend_hash_add(&module_registry, lcname, name_len+1, (void *)module, sizeof(zend_module_entry), NULL); - efree(lcname); - return retval; + + return zend_register_module_ex(module TSRMLS_CC); }

« previous php.zend-engine.cvs (#2637) next »