diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-04-10 12:36:50 +0200 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-04-10 12:36:50 +0200 |
commit | ec18c8779c6a806c6cbeb5fe12446955cd688221 (patch) | |
tree | ddc704bac5574d4727560469874019ecc07aed9e /zend/extensionimpl.cpp | |
parent | f0dec5907bd49bb468089b0fe50d8cbf2979272e (diff) |
refactored ini settings
Diffstat (limited to 'zend/extensionimpl.cpp')
-rw-r--r-- | zend/extensionimpl.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/zend/extensionimpl.cpp b/zend/extensionimpl.cpp index 0308c63..5e03736 100644 --- a/zend/extensionimpl.cpp +++ b/zend/extensionimpl.cpp @@ -111,16 +111,31 @@ int ExtensionImpl::processStartup(int type, int module_number TSRMLS_DC) // initialize and allocate the "global" variables ZEND_INIT_MODULE_GLOBALS(phpcpp, init_globals, NULL); - // get the extension auto *extension = find(module_number TSRMLS_CC); // array contains ini settings - static zend_ini_entry *ini_entries = new zend_ini_entry[ extension->_data->ini_size()+1 ]; + zend_ini_entry *ini_entries = new zend_ini_entry[extension->_data->iniVariables()+1]; + + // the entry that we're filling + int i=0; - // Filling ini entries - extension->_data->fill_ini(ini_entries, module_number); + // Fill the php.ini entries + extension->_data->iniVariables([ini_entries, &i, module_number](Ini &ini) { + // initialize the function + zend_ini_entry *entry = &ini_entries[i]; + + // fill the property + ini.fill(entry, module_number); + + // move on to the next iteration + i++; + }); + + // last entry should be set to all zero's + memset(&ini_entries[i], 0, sizeof(zend_ini_entry)); + // register ini entries in Zend core REGISTER_INI_ENTRIES(); |