summaryrefslogtreecommitdiff
path: root/zend/extensionimpl.cpp
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-10 12:36:50 +0200
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-10 12:36:50 +0200
commitec18c8779c6a806c6cbeb5fe12446955cd688221 (patch)
treeddc704bac5574d4727560469874019ecc07aed9e /zend/extensionimpl.cpp
parentf0dec5907bd49bb468089b0fe50d8cbf2979272e (diff)
refactored ini settings
Diffstat (limited to 'zend/extensionimpl.cpp')
-rw-r--r--zend/extensionimpl.cpp23
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();