diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-02-26 12:49:58 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-02-27 21:08:26 +0300 |
commit | baa9890112a863f10e62bbb4c5a1623642a5db3c (patch) | |
tree | ee93f9ad978ab285a124c91fef3bd4ce4900552d /Zend/zend.c | |
parent | ef255c9f0f2c2ad1ea224ed215edb00f5bc205bd (diff) | |
download | php-git-baa9890112a863f10e62bbb4c5a1623642a5db3c.tar.gz |
Completely hide GC implementation details into zend_gc.c
Diffstat (limited to 'Zend/zend.c')
-rw-r--r-- | Zend/zend.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index efe51b7b47..a714f04786 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -101,16 +101,35 @@ static ZEND_INI_MH(OnUpdateErrorReporting) /* {{{ */ static ZEND_INI_MH(OnUpdateGCEnabled) /* {{{ */ { - OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage); - - if (GC_G(gc_enabled)) { - gc_init(); + zend_bool val; + + if (ZSTR_LEN(new_value) == 2 && strcasecmp("on", ZSTR_VAL(new_value)) == 0) { + val = 1; + } else if (ZSTR_LEN(new_value) == 3 && strcasecmp("yes", ZSTR_VAL(new_value)) == 0) { + val = 1; + }else if (ZSTR_LEN(new_value) == 4 && strcasecmp("true", ZSTR_VAL(new_value)) == 0) { + val = 1; + } else { + val = (zend_bool) atoi(ZSTR_VAL(new_value)); } + gc_set_enabled(val); + return SUCCESS; } /* }}} */ +static ZEND_INI_DISP(zend_gc_enabled_displayer_cb) /* {{{ */ +{ + if (gc_enabled()) { + ZEND_PUTS("On"); + } else { + ZEND_PUTS("Off"); + } +} +/* }}} */ + + static ZEND_INI_MH(OnUpdateScriptEncoding) /* {{{ */ { if (!CG(multibyte)) { @@ -154,7 +173,7 @@ static ZEND_INI_MH(OnUpdateAssertions) /* {{{ */ ZEND_INI_BEGIN() ZEND_INI_ENTRY("error_reporting", NULL, ZEND_INI_ALL, OnUpdateErrorReporting) STD_ZEND_INI_ENTRY("zend.assertions", "1", ZEND_INI_ALL, OnUpdateAssertions, assertions, zend_executor_globals, executor_globals) - STD_ZEND_INI_BOOLEAN("zend.enable_gc", "1", ZEND_INI_ALL, OnUpdateGCEnabled, gc_enabled, zend_gc_globals, gc_globals) + ZEND_INI_ENTRY3_EX("zend.enable_gc", "1", ZEND_INI_ALL, OnUpdateGCEnabled, NULL, NULL, NULL, zend_gc_enabled_displayer_cb) STD_ZEND_INI_BOOLEAN("zend.multibyte", "0", ZEND_INI_PERDIR, OnUpdateBool, multibyte, zend_compiler_globals, compiler_globals) ZEND_INI_ENTRY("zend.script_encoding", NULL, ZEND_INI_ALL, OnUpdateScriptEncoding) STD_ZEND_INI_BOOLEAN("zend.detect_unicode", "1", ZEND_INI_ALL, OnUpdateBool, detect_unicode, zend_compiler_globals, compiler_globals) |