2006-05-15 Dmitry Stogov * (PHP_5_2) tests/bug37144.phpt: Added test * (PHP_5_1) tests/bug37144.phpt: -** empty log message *** * tests/bug37144.phpt tests/bug37144.phpt: Added test * tests/bug37144.phpt tests/bug37144.phpt: file bug37144.phpt was initially added on branch PHP_5_1. * zend_execute.c zend_execute.c zend_vm_def.h zend_vm_def.h zend_vm_execute.h zend_vm_execute.h: Optimized require_once/include_once (eliminated fopen() on second usage) * zend_globals.h zend_ini.c: Optimized request shutdown sequence to iterate only over modified ini directives * (PHP_5_2) zend_globals.h zend_ini.c: Optimized shutdown sequence to iterate only over modified ini directives 2006-05-14 Marcus Boerger * (PHP_5_2) zend_errors.h: - Readd that E_RECOVERABLE_ERROR, dropping it is a bad idea * (PHP_5_2) zend_errors.h: - Do not include E_RECOVERABLE_ERROR to the default mode E_ALL 2006-05-13 Marcus Boerger * (PHP_5_2) zend_API.c: - MFH code layout for __toString() use in parameter parsing api * zend_API.c: - Support __tostring() in argument parsing 2006-05-12 Derick Rethans * tests/abstract-static.phpt tests/abstract-static.phpt tests/abstract-static.phpt tests/object-null.phpt tests/object-null.phpt tests/object-null.phpt: 1.1.4; - Added tests for BC breaking changes. 2006-05-12 Sebastian Bergmann * (PHP_5_2) zend.h: Bump version. 2006-05-12 Marcus Boerger * (PHP_5_2) zend.c zend_API.c: - Missing __toString() pieces 2006-05-11 Antony Dovgal * (PHP_5_2) zend.c: no need to destroy the zval here 2006-05-11 Marcus Boerger * zend_vm_execute.h: - Drop a few superflous if conditions (now the generated file) * zend_interfaces.c zend_vm_def.h: - Drop a few superflous if conditions * (PHP_5_2) zend_compile.c zend_compile.h zend_execute.c zend_interfaces.c zend_language_parser.y zend_vm_def.h zend_vm_execute.h: - MFH missing bits and pieces of the partial sync with head * (PHP_5_2) zend_API.c: - Drop second superflous zval_ptr_dtor in string arg parsing 2006-05-11 Andrei Zmievski * zend_compile.h zend_language_scanner.l: Adjust API for scanning INI files as UTF-8. 2006-05-11 Antony Dovgal * (PHP_5_2) zend_API.c: fix segfault when passing objects where strings are expected * tests/objects_001.phpt tests/objects_001.phpt: file objects_001.phpt was initially added on branch PHP_5_2. 2006-05-10 Antony Dovgal * (PHP_5_2) tests/bug33771.phpt: change it to be consistent with the others 2006-05-10 Marcus Boerger * (PHP_5_2) tests/array_type_hint_001.phpt tests/bug26166.phpt tests/bug26166.phpt tests/bug28444.phpt tests/bug30791.phpt tests/bug33771.phpt tests/bug33996.phpt: - Fix tests * (PHP_5_2) zend.c: - Missing __ToString() sync * zend_object_handlers.c zend_object_handlers.c: - Enforece rule of disallowing throw in __toString() * zend_compile.c: - MFB missing initialization * (PHP_5_2) zend_execute.c: - ze1 cleanup (bjori) /thx * (PHP_5_2) zend.c zend_API.c: - Missing __tostring() conversion snippets 2006-05-10 Antony Dovgal * (PHP_5_2) tests/error_reporting01.phpt tests/error_reporting02.phpt tests/error_reporting03.phpt tests/error_reporting04.phpt tests/error_reporting05.phpt tests/error_reporting06.phpt tests/error_reporting07.phpt tests/error_reporting08.phpt tests/error_reporting09.phpt tests/error_reporting10.phpt: fix tests * (PHP_5_2) zend.c zend_constants.c: add missing parts of E_RECOVERABLE merge * (PHP_5_2) zend_compile.c: add missing ZEND_API to the implementation * (PHP_5_2) zend_API.c: nuke extra semi-colon 2006-05-10 Marcus Boerger * (PHP_5_2) tests/bug27641.phpt tests/bug30332.phpt tests/bug31828.phpt tests/bug32080.phpt tests/bug32852.phpt tests/bug33243.phpt tests/bug34712.phpt tests/bug34767.phpt: i- ZE1_compat tests are no longer necessary 2006-05-09 Marcus Boerger * (PHP_5_2) zend.c zend.h zend_API.c zend_API.h zend_arg_defs.c zend_builtin_functions.c zend_compile.c zend_compile.h zend_errors.h zend_exceptions.c zend_exceptions.h zend_execute.c zend_execute.h zend_execute_API.c zend_extensions.c zend_extensions.h zend_globals.h zend_globals_macros.h zend_interfaces.c zend_iterators.c zend_iterators.h zend_modules.h zend_object_handlers.c zend_object_handlers.h zend_objects.c zend_objects_API.c zend_objects_API.h zend_operators.c zend_operators.h zend_vm_def.h zend_vm_execute.h: - MFH as discussed . zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D) . zend_get_error_exception() -> zend_get_error_exception(TSRMLS_D) . added E_RECOVERABLE_ERROR . added ZEND_TOSTRING_FUNC_NAME . added __tostring function cache to zend_class_entry . added ZEND_NAMED_ME . modified ZEND_ME_MAPPING to support method flags . added ZEND_MN . method entries now use prefix "zim_" instead of "zif_" . drop EG(ze1_compatibility_mode) . changed cast handler, now without (int should_free): typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC); . changed get_iterator, now receives whether value is by ref: zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC); . added zend_objects_store_add_ref_by_handle . added zend_objects_store_del_ref_by_handle . convert_to_explicit_type(pzv, type) * zend_API.h: - Methods have flags * zend_exceptions.c zend_exceptions.h: - zend_spprintf() is actually used elsewhere in the engine * zend.h zend_exceptions.c: - MFB WS/CS, zend_spprintf() must not be exported * zend_builtin_functions.c: - MFB Missing check * zend_API.h zend_execute.c zend_iterators.c zend_object_handlers.c: - MFB: WS 2006-05-05 Dmitry Stogov * zend_execute.c zend_vm_def.h zend_vm_execute.h tests/bug37251.phpt: Fixed bug #37251 (deadlock when custom error handler is to catch array type hint error). 2006-05-04 Andrei Zmievski * zend_language_scanner.l: Don't use fixed size buffer in zend_uchar_from_uname(); * zend.h: Oops again. * zend.c: Oops. * zend.c zend.h zend_API.h zend_globals.h zend_unicode.c zend_unicode.h: Add a global ASCII connverter, macros to return single codepoints (UCHAR32), and zend_unicode_to_ascii() function. 2006-05-02 Dmitry Stogov * zend_compile.c zend_compile.c: Fixed possible crash in highlight_string() (proper place) * (PHP_5_1) zend_compile.c: Fixed ossible crash in highlight_string(). 2006-04-21 Andrei Zmievski * zend_objects_API.c: Happy, Pierre? * zend_objects_API.c zend_objects_API.h: Add: * zend_objects_store_add_ref_by_handle() * zend_objects_store_del_ref_by_handle() * zend_objects_store_get_object_by_handle() 2006-04-20 Antony Dovgal * (PHP_5_1) zend_execute_API.c: there is no %v in 5_1 2006-04-20 Andrei Zmievski * zend.c zend_globals.h zend_operators.c zend_unicode.c zend_unicode.h: Move to refcounted implementation of collators. 2006-04-20 Dmitry Stogov * tests/bug37138.phpt: Test added * (PHP_5_1) zend_API.c tests/bug37138.phpt tests/bug37138.phpt: Fixed bug #37138 (__autoload tries to load callback'ed self and parent) 2006-04-19 Dmitry Stogov * zend.c: Fixed cleanup dependent on uninitialized value 2006-04-18 Sara Golemon * zend_API.c: Fix ZTS build 2006-04-18 Antony Dovgal * zend_API.c: binary strings exist only in unicode mode 2006-04-15 Antony Dovgal * zend_strtod.c: MF51: fix #37062 (compile failure on ARM architecture) * (PHP_5_1) zend_strtod.c: fix #37062 (compile failure on ARM architecture) if ARM is big endian - don't define IEEE_LITTLE_ENDIAN 2006-04-14 Antony Dovgal * tests/bug34873.phpt: make it consistent with the other ones * (PHP_5_1) tests/bug34873.phpt: make it consistent with the other ones =) 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