cvs: ZendEngine2 / zend.c zend.h zend_builtin_functions.c zend_execute.c zend_execute_API.c
| From: | Zeev Suraski | Date: | Tue, 19 Nov 2002 17:51:30 +0000 |
| Subject: | cvs: ZendEngine2 / zend.c zend.h zend_builtin_functions.c zend_execute.c zend_execute_API.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-638@lists.php.net to get a copy of this message | ||
zeev Tue Nov 19 12:51:30 2002 EDT
Modified files:
/ZendEngine2 zend.c zend.h zend_builtin_functions.c zend_execute.c
zend_execute_API.c
Log:
MFZE1 - error_reporting fix
Index: ZendEngine2/zend.c
diff -u ZendEngine2/zend.c:1.189 ZendEngine2/zend.c:1.190
--- ZendEngine2/zend.c:1.189 Tue Nov 5 01:10:05 2002
+++ ZendEngine2/zend.c Tue Nov 19 12:51:30 2002
@@ -58,6 +58,22 @@
static int (*zend_get_configuration_directive_p)(char *name, uint name_length, zval *contents);
+static ZEND_INI_MH(OnUpdateErrorReporting)
+{
+ if (!new_value) {
+ EG(error_reporting) = E_ALL & ~E_NOTICE;
+ } else {
+ EG(error_reporting) = atoi(new_value);
+ }
+ return SUCCESS;
+}
+
+
+ZEND_INI_BEGIN()
+ ZEND_INI_ENTRY("error_reporting", NULL, ZEND_INI_ALL, OnUpdateErrorReporting)
+ZEND_INI_END()
+
+
#ifdef ZTS
ZEND_API int compiler_globals_id;
ZEND_API int executor_globals_id;
@@ -505,6 +521,14 @@
#endif
return SUCCESS;
+}
+
+
+void zend_register_standard_ini_entries(TSRMLS_D)
+{
+ int module_number = 0;
+
+ REGISTER_INI_ENTRIES();
}
Index: ZendEngine2/zend.h
diff -u ZendEngine2/zend.h:1.185 ZendEngine2/zend.h:1.186
--- ZendEngine2/zend.h:1.185 Mon Nov 11 11:32:57 2002
+++ ZendEngine2/zend.h Tue Nov 19 12:51:30 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.h,v 1.185 2002/11/11 16:32:57 iliaa Exp $ */
+/* $Id: zend.h,v 1.186 2002/11/19 17:51:30 zeev Exp $ */
#ifndef ZEND_H
#define ZEND_H
@@ -396,6 +396,7 @@
int zend_startup(zend_utility_functions *utility_functions, char **extensions, int
start_builtin_functions);
void zend_shutdown(TSRMLS_D);
+void zend_register_standard_ini_entries(TSRMLS_D);
#ifdef ZTS
void zend_post_startup(TSRMLS_D);
Index: ZendEngine2/zend_builtin_functions.c
diff -u ZendEngine2/zend_builtin_functions.c:1.154 ZendEngine2/zend_builtin_functions.c:1.155
--- ZendEngine2/zend_builtin_functions.c:1.154 Mon Oct 21 04:48:55 2002
+++ ZendEngine2/zend_builtin_functions.c Tue Nov 19 12:51:30 2002
@@ -22,7 +22,7 @@
#include "zend_API.h"
#include "zend_builtin_functions.h"
#include "zend_constants.h"
-
+#include "zend_ini.h"
#undef ZEND_TEST_EXCEPTIONS
static ZEND_FUNCTION(zend_version);
@@ -408,8 +408,8 @@
if (zend_get_parameters_ex(1, &arg) == FAILURE) {
RETURN_FALSE;
}
- convert_to_long_ex(arg);
- EG(error_reporting)=(*arg)->value.lval;
+ convert_to_string_ex(arg);
+ zend_alter_ini_entry("error_reporting", sizeof("error_reporting"),
Z_STRVAL_PP(arg), Z_STRLEN_PP(arg), ZEND_INI_USER, ZEND_INI_STAGE_RUNTIME);
break;
default:
ZEND_WRONG_PARAM_COUNT();
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.393 ZendEngine2/zend_execute.c:1.394
--- ZendEngine2/zend_execute.c:1.393 Sun Nov 17 12:57:57 2002
+++ ZendEngine2/zend_execute.c Tue Nov 19 12:51:30 2002
@@ -31,6 +31,7 @@
#include "zend_extensions.h"
#include "zend_fast_cache.h"
#include "zend_execute_locks.h"
+#include "zend_ini.h"
#define get_zval_ptr(node, Ts, should_free, type) _get_zval_ptr(node, Ts, should_free TSRMLS_CC)
#define get_zval_ptr_ptr(node, Ts, type) _get_zval_ptr_ptr(node, Ts TSRMLS_CC)
@@ -3566,16 +3567,21 @@
int zend_begin_silence_handler(ZEND_OPCODE_HANDLER_ARGS)
{
- EX_T(EX(opline)->result.u.var).tmp_var.value.lval = EG(error_reporting);
- EX_T(EX(opline)->result.u.var).tmp_var.type = IS_LONG; /* shouldn't be necessary */
- EG(error_reporting) = 0;
+ EX(Ts)[EX(opline)->result.u.var].tmp_var.value.lval = EG(error_reporting);
+ EX(Ts)[EX(opline)->result.u.var].tmp_var.type = IS_LONG; /* shouldn't be necessary */
+ zend_alter_ini_entry("error_reporting", sizeof("error_reporting"),
"0", 1, ZEND_INI_USER, ZEND_INI_STAGE_RUNTIME);
NEXT_OPCODE();
}
int zend_end_silence_handler(ZEND_OPCODE_HANDLER_ARGS)
{
- EG(error_reporting) = EX_T(EX(opline)->op1.u.var).tmp_var.value.lval;
- NEXT_OPCODE();
+ zval restored_error_reporting;
+
+ restored_error_reporting.type = IS_LONG;
+ restored_error_reporting.value.lval = EX(Ts)[EX(opline)->op1.u.var].tmp_var.value.lval;
+ convert_to_string(&restored_error_reporting);
+ zend_alter_ini_entry("error_reporting", sizeof("error_reporting"),
Z_STRVAL(restored_error_reporting), Z_STRLEN(restored_error_reporting), ZEND_INI_USER,
ZEND_INI_STAGE_RUNTIME);
+ zendi_zval_dtor(restored_error_reporting);
}
int zend_qm_assign_handler(ZEND_OPCODE_HANDLER_ARGS)
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.182 ZendEngine2/zend_execute_API.c:1.183
--- ZendEngine2/zend_execute_API.c:1.182 Tue Nov 5 14:06:40 2002
+++ ZendEngine2/zend_execute_API.c Tue Nov 19 12:51:30 2002
@@ -162,7 +162,6 @@
zend_ptr_stack_init(&EG(user_error_handlers));
zend_ptr_stack_init(&EG(user_exception_handlers));
- EG(orig_error_reporting) = EG(error_reporting);
zend_objects_store_init(&EG(objects_store), 1024);
EG(full_tables_cleanup) = 0;
@@ -251,7 +250,6 @@
zend_ptr_stack_clean(&EG(user_exception_handlers), ZVAL_DESTRUCTOR, 1);
zend_ptr_stack_destroy(&EG(user_exception_handlers));
- EG(error_reporting) = EG(orig_error_reporting);
zend_objects_store_destroy(&EG(objects_store));
} zend_end_try();
}