2006-04-13 Dmitry Stogov * zend_language_scanner.l zend_language_scanner.l tests/bug36513.phpt: Fixed bug #36513 (comment will be outputed in last line) * tests/bug36513.phpt tests/bug36513.phpt: file bug36513.phpt was initially added on branch PHP_5_1. * tests/bug37046.phpt tests/bug37046.phpt: Fixed test 2006-04-12 Dmitry Stogov * zend_vm_def.h zend_vm_def.h zend_vm_execute.h zend_vm_execute.h tests/bug37046.phpt: Fixed bug #37046 (foreach breaks static scope) * tests/bug37046.phpt tests/bug37046.phpt: file bug37046.phpt was initially added on branch PHP_5_1. * zend_ini_parser.y zend_ini_parser.y: Fixed bug #37002 (Have to quote literals in INI when concatenating with vars) 2006-04-10 Marcus Boerger * (PHP_5_1) zend_vm_def.h zend_vm_execute.h: - MFH Iterators from overloaded objects are allowed to not have keys... * zend_vm_def.h zend_vm_execute.h: - Iterators from overloaded objects are allowed to not have keys... * zend_interfaces.c: - Allowing to pass in ce as NULL has its charme, too * zend_interfaces.c: - Fix coverity issue 49: ce might be forwarded as NULL without an exception being thrown in case the Zend API is being used wrong (in custom exts for instance). 2006-04-10 Dmitry Stogov * zend_opcode.c zend_opcode.c: Fixed possible crash in interactive mode 2006-04-07 Dmitry Stogov * (PHP_5_1) zend_hash.c: MFH: - Allowed storing NULL pointers in HashTable - Optimized zend_hash_reverse_apply() * zend_hash.c: - Fixed storing NULL pointers in HashTable - Optimized zend_hash_reverse_apply() 2006-04-06 Andrei Zmievski * zend_arg_defs.c zend_modules.h: MFB * (PHP_5_1) zend_arg_defs.c zend_modules.h: Fix a bug that would not fill in the fifth argument to preg_replace() properly, if the variable was not declared previously. 2006-04-06 Sara Golemon * zend_API.h: Overload 'duplicate' arg as applied to: add_((next_)?index|assoc)_(ascii|rt)_stringl?(_ex)? and (ZVAL|RETVAL|RETURN)_(ASCII|RT|U)_STRINGL? Duplicate keeps traditional value of '1', additional bit '2' tells unicode mode conversion to automatically free the original string in order to avoid leaks due to conversion on a value otherwise being "given" to the engine. /* Uses s as-is for non-unicode, or frees s after converting to unicode */ { char *s = estrdup("Hello"); ZVAL_RT_STRING(pzv, s, ZSTR_AUTOFREE); } /* Duplicates for non-unicode, or converts (but doesn't free original) */ { char *s = "Hello"; ZVAL_RT_STRING(pzv, s, ZSTR_DUPLICATE); } /* Uses as-is for non-unicode, or converts (but doesn't free original) */ { char *s = "Hello"; zval zv; ZVAL_RT_STRING(&zv, s, 0); /* use zv for some temporary purpose */ /* It's now necessary to manually free this generated value */ if (UG(unicode)) { zval_dtor(&zv); } } 2006-04-05 Antony Dovgal * zend_builtin_functions.c: MF51: fix #36944 (strncmp & strncasecmp do not return false on negative string length) * (PHP_5_1) zend_builtin_functions.c: fix #36944 (strncmp & strncasecmp do not return false on negative string length) 2006-03-31 Sara Golemon * zend.c zend_globals.h: Add API hooks and unicode.filesystem_encoding for handling unicode conversions of filename entries. Normal path conversions will simply use this converter, Certain other protocols (such as http) which specify a required character set (utf8), may override the conversion by defining a path_encode() and/or path_decode() wrapper ops method. 2006-03-30 Antony Dovgal * zend.c zend.h: MF51: fix compilation on AIX * (PHP_5_1) zend.c zend.h: fix compilation on AIX 2006-03-30 Dmitry Stogov * zend_objects.c: Unicode support 2006-03-29 Antony Dovgal * zend_objects.c zend_objects.h: MF51: fix bug #36898 (__set() leaks in classes extending internal ones) Added: ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSRMLS_DC) ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC) * (PHP_5_1) zend_objects.c zend_objects.h: fix bug #36898 (__set() leaks in classes extending internal ones) Added: ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSRMLS_DC) ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC) to initialize and destroy zend_object structs 2006-03-28 Antony Dovgal * zend_objects_API.c: initialize bucket #0 with nulls * (PHP_5_1) zend_objects_API.c: initialize bucket #0 with nulls (normally it shouldn't be used at all, but if it is - we don't want any memory issues, do we?) * zend_builtin_functions.c: MF51: fix #36897 (debug_print_backtrace() doesn't return void but array(0) {}) * (PHP_5_1) zend_builtin_functions.c: fix #36897 (debug_print_backtrace() doesn't return void but array(0) {}) 2006-03-28 Andrei Zmievski * zend_operators.c: Note 2006-03-27 Antony Dovgal * zend.c: MF51: fix #36878 (error messages are printed even though an exception has been thrown) * (PHP_5_1) zend.c: fix #36878 (error messages are printed even though an exception has been thrown) 2006-03-27 Andrei Zmievski * zend_unicode.c: Add UTODO. * zend_compile.c: Mark with UTODO instead of FIXME. 2006-03-27 Dmitry Stogov * tests/bug30791.phpt: Fixed test * zend_compile.c: Fixed bug during function/class declaration in unicode mode * zend_compile.c zend_compile.c: Fixed meory leak in case of unknown pragma * zend_unicode.c: Better but incomplete fix for bug #36840 * zend_exceptions.c zend_unicode.c zend_unicode.h: Fixed ZTS build 2006-03-27 Andrei Zmievski * zend_exceptions.c: Fix a case where we could have an encoding conversion exception thrown while building exception trace args! * zend_exceptions.c: Use (unsigned char) to make sure that only the control chars are replaced with '?'; * zend_unicode.c: Skip BOM for UTF-16/32 converters when setting subst char. * zend_API.c: Some functions may want to accept only Unicode or binary strings, without having auto-conversion from the other string type. Add 'U' and 'S' specifiers for this. Also, remove traces of 'native' strings. 2006-03-26 Andrei Zmievski * zend.c zend_globals.h zend_operators.c zend_unicode.c zend_unicode.h: Implement to-Unicode conversion error behavior. Note the adjusted APIs. * zend.c zend_constants.c zend_globals.h zend_unicode.c zend_unicode.h: - Remove unicode.from_error_mode and unicode.from_subst_char from INI settings. * Add unicode_set_error_mode() and unicode_set_subst_char() functions to manipulate these global settings. 2006-03-24 Andrei Zmievski * zend_unicode.c: Hey! Don't remove vim modeline completely! :) 2006-03-24 Antony Dovgal * zend_unicode.c: whitespaces -> tabs no other changes done 2006-03-24 Dmitry Stogov * zend_unicode.c: Fixed bug #36840 (Memory leak if cast operator throws an exception that is caught) 2006-03-24 Andrei Zmievski * zend_default_classes.c zend_operators.c zend_unicode.c zend_unicode.h: Support warning/exceptions flag for conversion errors. 2006-03-23 Andrei Zmievski * zend.c zend_constants.c zend_globals.h zend_unicode.c zend_unicode.h: Update conversion error behavior and add some new modes. * zend_language_parser.y zend_language_scanner.l: Add (binary) cast operator. * zend_operators.c: Allow conversion between binary/Unicode strings (based on runtime_encoding setting). 2006-03-23 Marcus Boerger * (PHP_5_1) zend_API.c: - Initialized callable_name if present * zend_API.c: - Initialize callable_name if requested 2006-03-23 Antony Dovgal * zend_compile.c zend_compile.h: implement correct fix for segfault on 64bit platform 2006-03-22 Antony Dovgal * zend_compile.c: don't segfault on 64bit platforms 2006-03-20 Dmitry Stogov * zend_compile.c zend_compile.c: Removed unreachable code 2006-03-17 Dmitry Stogov * zend_execute_API.c: FIX: For some reason SIGSEGV handler wasn't set, but was restoring. Now all SIGS EGV related code is commented. * (PHP_5_1) zend_execute_API.c: FIX: For some reason SIGSEGV handler wasn't set, but was restoring. Now all SIGSEGV related code is commented. * zend.c zend.c zend_API.c zend_API.c: Optimization of module unloading (temporary modules can be only in the end) 2006-03-16 Dmitry Stogov * zend_vm_def.h zend_vm_execute.h: typo * zend_compile.c: ws * zend_compile.c zend_compile.h zend_language_parser.y zend_vm_def.h zend_vm_execute.h: Return "new" by reference now throws an E_STRICT error * zend_errors.h tests/bug33771.phpt tests/error_reporting01.phpt tests/error_reporting05.phpt tests/error_reporting06.phpt tests/error_reporting07.phpt tests/error_reporting10.phpt: Added E_STRICT to E_ALL * zend.c zend_compile.c zend_globals.h: Dropped allow_call_time_pass_reference, the error is maden E_STRICT. * zend.c zend_API.c zend_execute.c zend_execute.h zend_execute_API.c zend_globals.h zend_objects.c zend_operators.c zend_vm_def.h zend_vm_execute.h tests/bug30332.phpt tests/bug31828.phpt tests/bug32080.phpt tests/bug32852.phpt tests/bug33243.phpt tests/bug34712.phpt tests/bug34767.phpt: Dropped zend.ze1_compatibility_mode * tests/unset_cv05.phpt: Dropped register_long_arrays, added E_CORE for all dropped setting 2006-03-15 Dmitry Stogov * (PHP_5_1) zend_constants.c: Fix: incorrect string length passed * zend_strtod.c: Fixed zend_u_strtod() that returned uninitialized value in case of empty string * zend_vm_def.h zend_vm_execute.h: Added E_STRICT warning in case of calling non-static method from incompatible context (this feature is staying for BC with php-4) * (PHP_5_1) zend_vm_def.h zend_vm_execute.h: Added E_STRICT warning in case of calling non-static method from incompatible context (this feature is staying for BC with php-4). * zend_compile.c zend_compile.c zend_constants.c zend_constants.c zend_constants.h zend_constants.h: Eliminated run-time constant fetching for TRUE, FALSE and NULL * zend_vm_def.h zend_vm_def.h zend_vm_execute.h zend_vm_execute.h zend_vm_gen.php zend_vm_gen.php: Fixed "zend_vm_gen.php --without-specializer" 2006-03-14 Dmitry Stogov * zend.h zend.h zend_config.w32.h zend_config.w32.h tests/bug36568.phpt: Fixed bug #36568 (memory_limit setting on win32 has no effect) * tests/bug36568.phpt tests/bug36568.phpt: file bug36568.phpt was initially added on branch PHP_5_1. * zend_constants.c zend_constants.c zend_execute_API.c zend_execute_API.c zend_opcode.c zend_opcode.c: zend_hash_apply() doesn't use ZEND_HASH_APPLY_... macros * zend_compile.c zend_language_scanner.l tests/jump01.phpt tests/jump02.phpt tests/jump03.phpt tests/jump04.phpt tests/jump05.phpt tests/jump06.phpt tests/jump07.phpt tests/jump08.phpt tests/jump09.phpt tests/jump10.phpt: "jump" -> "goto" 2006-03-13 Dmitry Stogov * zend_compile.h zend_compile.h zend_constants.c zend_constants.c zend_execute_API.c zend_execute_API.c zend_opcode.c zend_opcode.c: Optimized cleanup loops on request shutdown 2006-03-12 Ilia Alshanetsky * zend_language_parser.y: MFB51: As per agreement during PDM, remove the E_STRICT deprecation notice from "var". * (PHP_5_1) zend_language_parser.y: As per agreement during PDM, remove the E_STRICT deprecation notice from "var". 2006-03-10 Dmitry Stogov * zend_vm_def.h zend_vm_execute.h: Fixed compilation error (Rob) * zend_API.h: Added RETVAL_EMPTRY_TEXT() and RETURN_EMPTY_TEXT() macroses * zend_compile.c zend_compile.h zend_execute_API.c zend_globals.h zend_language_parser.y zend_language_scanner.l zend_opcode.c zend_vm_def.h zend_vm_execute.h zend_vm_opcodes.h tests/jump01.phpt tests/jump02.phpt tests/jump03.phpt tests/jump04.phpt tests/jump05.phpt tests/jump06.phpt tests/jump07.phpt tests/jump08.phpt tests/jump09.phpt tests/jump10.phpt: Implemented "jump label" operator (limited "goto") 2006-03-07 Dmitry Stogov * zend_compile.c zend_compile.h zend_globals.h zend_language_parser.y tests/break_label01.phpt tests/break_label02.phpt tests/break_label03.phpt tests/break_label04.phpt tests/break_label05.phpt tests/break_label06.phpt tests/break_label07.phpt tests/break_label08.inc tests/break_label08.phpt tests/break_label09.phpt tests/break_label10.phpt tests/break_label11.phpt: Reverted "break label" 2006-03-07 Andrei Zmievski * zend_builtin_functions.c: -** empty log message *** 2006-03-07 Derick Rethans * zend_builtin_functions.c: - Make this compile again 2006-03-07 Andrei Zmievski * zend_builtin_functions.c: Mark some functions as Unicode-safe and adjust UTODO notices for others. 2006-03-07 Sara Golemon * tests/unset_cv06.phpt: Remove register_globals regression test for Pierre 2006-03-06 Dmitry Stogov * bench.php: fixed compatibility with ext/hash * (PHP_5_1) bench.php: Fixed compatibility with ext/hash 2006-03-05 Marcus Boerger * zend_compile.c: - Fix comment, too * zend_compile.c: - Fix Bug #34019 by popular demand: Implementing interface with a __construct method strange behaviour * zend_API.c zend_API.c zend_API.h zend_API.h: - Add missing function for completeness 2006-03-04 Johannes Schlüter * zend_API.h: - Separate ZEND_METHOD from ZEND_FUNCTION 2006-03-03 Andrei Zmievski * zend_execute.h: Clean up after Marcus. 2006-03-03 Marcus Boerger * zend_API.c zend_execute.h zend_execute_API.c: - Make unicode handling portable (noted by andrei) * zend_API.c: - As expected (but told otherwise) unicode strings indeed need to be terminated by two \0. * zend_exceptions.c: - Fix issue with uncaught exceptions in unicode mode * tests/break_label10.phpt tests/break_label11.phpt: - Add new tests 2006-03-03 Dmitry Stogov * zend_vm_execute.h: Regenerated * zend_compile.c zend_compile.h zend_globals.h zend_language_parser.y tests/break_label01.phpt tests/break_label02.phpt tests/break_label03.phpt tests/break_label04.phpt tests/break_label05.phpt tests/break_label06.phpt tests/break_label07.phpt tests/break_label08.inc tests/break_label08.phpt tests/break_label09.phpt: Added support for "continue" and "break" operators with labels. Each loop or switch statement can be marked by label and then it is possible to write "break