From ec18c8779c6a806c6cbeb5fe12446955cd688221 Mon Sep 17 00:00:00 2001 From: Emiel Bruijntjes Date: Thu, 10 Apr 2014 12:36:50 +0200 Subject: refactored ini settings --- zend/extensionimpl.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'zend/extensionimpl.cpp') 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(); -- cgit v1.2.3