History log of /PHP-7.3/Zend/zend_API.h
Revision Date Author Comments
# cce2e33c 24-Jan-2019 Nikita Popov <nikita.ppv@gmail.com>

Revert "Prefix error_code with underscore in FastZPP implementation"

This reverts commit 6305119a5193d4318add01190ca4afbb49ded102.

This is a source-compatibility break for extensions that define
custom FastZPP macros, such as ext/uv:


I don't think that FastZPP was intended to be used this way, but
let's revert this from release branches to avoid extension breakage.

# 6305119a 08-Jan-2019 twosee <twose@qq.com>

Prefix error_code with underscore in FastZPP implementation

To avoid conflicts with parameter names.

# 9afce019 01-Nov-2018 Zeev Suraski <zeev@php.net>

Future-proof email addresses

# 8d3f8ca1 03-Jul-2018 Peter Kokot <peterkokot@gmail.com>

Remove unused Git attributes ident

The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.

# ebd1f5af 23-Jul-2018 Dmitry Stogov <dmitry@zend.com>

API cleanup.
Removed useless filename and lineno arguments, used in DEBUG build.
The patch doesn't break source compatibility of public API (only binary compatibility).

# 5e8977bd 12-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Merge zend_class_entry.create_object and zend_class_entry.interface_gets_implemented into the same memory lacation. The first used only by classes, the second only by magic interfaces.

# 7d4e18b0 12-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Improved user iterator implementation to reduce zend_class_entry memory consumption and avoid race condition during resolving/caching of user iterator functions of internal classes in ZTS build.

# 8361c0a9 05-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Avoid useless checks in object_init()

# 7ac06d66 29-Jun-2018 Nikita Popov <nikita.ppv@gmail.com>

Add zend_update_static_property_ex API

And cleanup the implementation to perform a normal by-value

# 813b6fc9 29-Jun-2018 Nikita Popov <nikita.ppv@gmail.com>

Add zend_read_static_property_ex API

For symmetry with zend_read_property_ex.

# 10b484e6 29-Jun-2018 Nikita Popov <nikita.ppv@gmail.com>

Fix build

These were changed in 6e77a60a75445c863f85f81a83e5c2dd28f0e877.

# 6e77a60a 29-Jun-2018 Dmitry Stogov <dmitry@zend.com>


# d0ee2a82 19-Jan-2018 Gabriel Caruso <carusogabriel34@gmail.com>

Add is_countable function

RFC: https://wiki.php.net/rfc/is-countable

# 2bf8b427 19-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Fixed unintended API break

# 5bbf27b8 18-Feb-2018 Anatol Belski <ab@php.net>

Remove duplicated assignment

# ea7a3c32 16-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Added missed "return"

# 7e329a82 16-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Improved ZPP to reduce amount of generated code.

# 2d48d734 05-Feb-2018 Gabriel Caruso <carusogabriel34@gmail.com>

Fix some misspellings

# fef879a2 04-Feb-2018 Gabriel Caruso <carusogabriel34@gmail.com>

Use bool instead of boolean while throwing a type error

PHP requires boolean typehints to be written "bool" and disallows
"boolean" as an alias. This changes the error messages to match
the actual type name and avoids confusing messages like "must be
of type boolean, boolean given".

This a followup to ce1d69a1f6dcf15d43029301059c25e5bc09a577, which
implements the same change for integer->int.

# ce1d69a1 04-Feb-2018 Gabriel Caruso <carusogabriel34@gmail.com>

Use int instead of integer in type errors

PHP requires integer typehints to be written "int" and does not
allow "integer" as an alias. This changes type error messages to
match the actual type name and avoids confusing messages like
"must be of the type integer, integer given".

# e88e83d3 23-Jan-2018 Sara Golemon <pollita@php.net>

Use Z_EXPECTED_LONG to initialize FAST_ZPP parsing loop

# a6519d05 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# 7a7ec01a 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# ccd4716e 01-Jan-2018 Xinchen Hui <laruence@gmail.com>


# d9f5ea69 27-Dec-2017 Dmitry Stogov <dmitry@zend.com>

zend_fcall_info_cache.initialized is removed (zend_fcall_info_cache is initialized if zend_fcall_info_cache.function_handler is set).

# f3aca3c8 11-Dec-2017 Dmitry Stogov <dmitry@zend.com>

Use "fastcal" calling convention for internal PHP functions on x86

# cb288467 30-Oct-2017 Nikita Popov <nikita.ppv@gmail.com>

Remove zend_get_parameters(_ex) APIs

zend_get_parameters_ex() has been marked as deprecated for a long
time already. What zend_get_paramers() does is even more
questionable under PHP7. Both functions are obsoleted by the ZPP
mechanism, so I'm dropping them.

# 8e01026b 27-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Extend zend_register_class_alias_ex() with additional argument to allow creating persistent or per-request aliases

# 49ea143b 26-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Encapsulate reference-counting primitives.
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead.
Added mactros to validate reference-counting (disabled for now).
These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.

# 272f5a17 18-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Extend zend_string API to avoid reallocation in zend_string_init_interned()

# 44e0b79a 19-Sep-2017 Dmitry Stogov <dmitry@zend.com>

Refactored array creation API. array_init() and array_init_size() are converted into macros calling zend_new_array(). They are not functions anymore and don't return any values.

# a595b0f7 15-Aug-2017 Thomas Punt <tpunt@hotmail.co.uk>

Fix fast ZPP macro definition

# 67be32ce 23-Jul-2017 Kalle Sommer Nielsen <kalle@php.net>

FAST_ZPP variant of zend_parse_parameters_none(), ZEND_PARSE_PARAMETERS_NONE()

# bc5811f3 04-Jul-2017 Anatol Belski <ab@php.net>

further sync for vim mode lines

# 66e5dc5b 14-May-2017 Richard Fussenegger <fleshgrinder@users.noreply.github.com>


The macro was expanding to a wrong macro and thus leads to compile errors upon
usage. Changed it to expand to the correct macro.

# ee8e75aa 25-Jun-2017 Nikita Popov <nikita.ppv@gmail.com>

Extract zend_get_callable_name() API

Instead of interleaving this inside zend_is_callable(), implement
this in a separate function instead.

Also add _deref() hash APIs. I've wanted these for a while, and
this is another place where they're useful, so finally do it...

# db4561bf 08-Jun-2017 Dmitry Stogov <dmitry@zend.com>

Introduced "zif_handler" type (zif = zend internal function).

# ace9fe53 08-Jun-2017 Dmitry Stogov <dmitry@zend.com>

Improved new Zend Parameter Parsing API to avoid useless dereferences.
This derefernce made sense only for explicit paramter passing by reference, but this feature was removed in PHP-7.
The improvement is 100% backward compatible, only few "tricky" functions may be affected (e.g. extract and usort).

# eb6614e4 04-Jun-2017 Jakub Zelenka <bukka@php.net>

Constify str in add_assoc_string_ex and add_assoc_stringl_ex

# 7b5ba8e6 26-May-2017 Kalle Sommer Nielsen <kalle@php.net>

Remove accidently added byte

# 0affe1e7 26-May-2017 Kalle Sommer Nielsen <kalle@php.net>

Added zend_parse_parameters_none_throw()

# f00d1c72 25-May-2017 Dmitry Stogov <dmitry@zend.com>

Added ZEND_GET_CLASS, ZEMD_GET_CALLED_CLASS, ZEND_GET_TYPE instructions, to implement corresponding builtin functions.

# ab2489fa 21-Jan-2017 Bogdan Padalko <pinepain@gmail.com>

Add variadic type and obj info macros

# 141d1ba9 13-Jan-2017 Dmitry Stogov <dmitry@zend.com>

Introduced "zend_type" - an abstraction for type-hinting representation.

# dac6c639 04-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 478f119a 04-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 9e29f841 02-Jan-2017 Sammy Kaye Powers <sammyk@sammykmedia.com>

Update copyright headers to 2017

# 52db03b3 28-Dec-2016 Sara Golemon <pollita@php.net>


# b204b3ab 26-Nov-2016 Anatol Belski <ab@php.net>

further normalizations, uint vs uint32_t

fix merge mistake

yet one more replacement run

# b044a742 06-Nov-2016 Anatol Belski <ab@php.net>


As RETVAL_STRINGL_CHECK is already there, this one is needed for
completion. One place in ext/bz2 is missing that, so it will likely
be useful for other possible fixes.

# 54003ab6 26-Sep-2016 Stanislav Malyshev <stas@php.net>

Fix bug #73147: Use After Free in PHP7 unserialize()

(cherry picked from commit 0e6fe3a4c96be2d3e88389a5776f878021b4c59f)
(cherry picked from commit f42cbd749cde1f91274c1d03df9024baba141a8f)

# f42cbd74 26-Sep-2016 Stanislav Malyshev <stas@php.net>

Fix bug #73147: Use After Free in PHP7 unserialize()

(cherry picked from commit 0e6fe3a4c96be2d3e88389a5776f878021b4c59f)

# 96a8cf8e 11-Oct-2016 Stanislav Malyshev <stas@php.net>

Fix bug #73293 - NULL pointer dereference in SimpleXMLElement::asXML()

# 0e6fe3a4 26-Sep-2016 Stanislav Malyshev <stas@php.net>

Fix bug #73147: Use After Free in PHP7 unserialize()

# 8fd0e028 13-Sep-2016 Anatol Belski <ab@php.net>

missed semicolon

# 363c2524 13-Sep-2016 Anatol Belski <ab@php.net>

fix C89 conformity

# 19866fb7 02-Sep-2016 Stanislav Malyshev <stas@php.net>

Fix various int size overflows.

Add function for detection of string zvals with length that does not fit

# d690014b 11-Sep-2016 Andrea Faulds <ajf@ajf.me>

Remove zpp fallback code (always use Fast ZPP)

Squashed commit of the following:

commit 3e27fbb3d22b42d181e15c345f1c59a007b6b58c
Author: Andrea Faulds <ajf@ajf.me>
Date: Sun Sep 11 19:14:37 2016 +0100

Keep dummy FAST_ZPP macro for compatibility

commit 8a7cfd00deaa4a3c5026c97580c49c886c72a5b4
Author: Andrea Faulds <ajf@ajf.me>
Date: Mon Sep 5 22:36:03 2016 +0100

Remove FAST_ZPP macro and plain zpp fallback code

# 1cd6bc64 12-Aug-2016 Stanislav Malyshev <stas@php.net>

Fix for bug #72807 - do not produce strings with negative length

# c9a538cd 23-Jun-2016 Anatol Belski <ab@php.net>

improve ZEND_MODULE_GLOBALS_BULK macro, fix data type

# 14331620 21-Jun-2016 Dmitry Stogov <dmitry@zend.com>

Fixed compilation warnings

# 42184397 07-Jun-2016 Dmitry Stogov <dmitry@zend.com>

Fixed bug #71266 (Missing separation of properties HT in foreach etc).

# 72692e9a 03-Jun-2016 Aaron Piotrowski <aaron@trowski.com>

Add iterable pseudo-type

# 91f59403 24-Apr-2016 Nikita Popov <nikic@php.net>

Forbid dynamic calls to scope introspection functions

Per RFC:

# 7b94b958 12-May-2016 Dmitry Stogov <dmitry@zend.com>

Intern some known (and offten used) strings.

# a17e4187 04-May-2016 Joe Watkins <krakjoe@php.net>

correct wording

# f0a2e8eb 27-Apr-2016 Dmitry Stogov <dmitry@zend.com>

Removed "zend_fcall_info.function_table". It was assigned in many places, but is never used.

# 7abfaac9 01-Apr-2016 Dmitry Stogov <dmitry@zend.com>

Merge zend_execute_data->called_scope into zend_execute_data->This.
"called_scope" made sense only for static method calls, for dynamic calls it was always equal to the class of $this.
Now EG(This) may store IS_OBJECT + $this or IS_UNUSED + "called_scope" (of course, "called_scope" may be NULL).
Some code might need to be adopted to support this change.
Checks (Z_OBJ(EX(This))) might need to be converted into (Z_TYPE(EX(This)) == IS_OBJECT).

# c67c166f 02-Mar-2016 Dmitry Stogov <dmitry@zend.com>

Removed zend_fcall_info.symbol_table

# 97a9470d 02-Jan-2016 Xinchen Hui <laruence@gmail.com>

bump year which is missed in rev 49493a2

# 3537e95d 02-Jan-2016 Xinchen Hui <laruence@gmail.com>

bump year which is missed in rev 49493a2

# a75c1950 07-Dec-2015 Dmitry Stogov <dmitry@zend.com>

Implemented the RFC `Support Class Constant Visibility`.

Squashed commit of the following:

commit f11ca0e7a57793fa0e3e7f6d451720e6c42bb0b9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:38:42 2015 +0300

Fixed test expectation

commit 211f873f542504d0a0f72b6b5cb23908a1c99a2d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Dec 8 12:28:38 2015 +0300

Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags

commit 51deab84b2cdbf9cdb1a838cf33b2ee45c61748b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Dec 7 11:18:55 2015 +0300

Fixed issues found by Nikita

commit 544dbd5b47e40d38a8ccb96bc5583e9cb7fdd723
Author: Dmitry Stogov <dmitry@zend.com>
Date: Sat Dec 5 02:41:05 2015 +0300

Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
@reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.

# 0495bf56 08-Dec-2015 Xinchen Hui <laruence@gmail.com>

Revert "fix typos "paramer" -> "parameters""

ABI BC break

This reverts commit 6ac12f13379f3fc19f07abb9d1055274e5f98838.

# 6ac12f13 07-Dec-2015 Márcio Almada <marcio3w@gmail.com>

fix typos "paramer" -> "parameters"

# 2dcfd8d1 07-Dec-2015 Márcio Almada <marcio3w@gmail.com>

fix typos "paramer" -> "parameters"

# 95dbe1d0 20-Sep-2015 Bob Weinand <bobwei9@hotmail.com>

Short-circuit zend_parse_parameters_none() so that expensive zpp() call never happens in non-exceptional case

# 37f0c6b5 31-Aug-2015 Dmitry Stogov <dmitry@zend.com>

Add myself into list of authors of the most refactored files.

# 71af54e5 19-Aug-2015 Dmitry Stogov <dmitry@zend.com>

Mark error and exception functions as "cold" (Matt's idea)

# 9a138b47 18-Aug-2015 Julien Pauli <jpauli@php.net>

Removed unused code

# ffa341de 30-Jul-2015 Anatol Belski <ab@php.net>

add macro to access globals as whole

# 43cdfd9a 29-Jul-2015 Anatol Belski <ab@php.net>

add unified globals accessor macro

# 4a2e40bb 30-Jun-2015 Dmitry Stogov <dmitry@zend.com>

Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).

# 4bd22cf1 29-Jun-2015 Dmitry Stogov <dmitry@zend.com>

Improved zend_string API (Francois Laupretre)

Squashed commit of the following:

commit d96eab8d79b75ac83d49d49ae4665f948d15a804
Author: Francois Laupretre <francois@tekwire.net>
Date: Fri Jun 26 01:23:31 2015 +0200

Use the new 'ZSTR' macros in the rest of the code.

Does not change anything to the generated code (thanks to compat macros) but cleaner.

commit b3526439104ac7a89a8e0c79dbebf33b22bd01b8
Author: Francois Laupretre <francois@tekwire.net>
Date: Thu Jun 25 13:45:06 2015 +0200

Improve zend_string API

Add missing methods

# 7c2a0157 12-Jun-2015 Bob Weinand <bobwei9@hotmail.com>

Cache the class_name typehint key in arg_info
This leads to up to 2% improvement on one tested real world application by not having to always recalculate the lowercased string and its hash

# 8e10e8f9 11-Jun-2015 Dmitry Stogov <dmitry@zend.com>

Avoid zval duplication in ZVAL_ZVAL() macro (it was necessary only in few places).
Switch from ZVAL_ZVAL() to simpler macros where possible (it makes sense to review remaining places)

# a861019b 19-May-2015 Remi Collet <remi@php.net>

Add consistency check in FAST_ZPP call
So ensure Z_PARAM_OPTIONAL is correctly call at the right place
Only in DEBUG build

Will raise 'Assertion `_i > _min_num_args || _optional==0' failed.'
or 'Assertion `_i <= _min_num_args || _optional==1' failed.'
Thus will allow to detect bad code early.

# b3d053b0 19-May-2015 Dmitry Stogov <dmitry@zend.com>

Eliminated useless check in FAST_ZPP (this also fixed few wrong -Wmaybe-uninitialized compilation warnings) (Remi)

# 70c86732 05-May-2015 Dmitry Stogov <dmitry@zend.com>

Use zend_string to represent pdo_column_data.name and avoid duplication.

# 1f28da02 07-Apr-2015 Jin Hu <bixuehujin@gmail.com>

Added RETURN_ARR and RETVAL_ARR macros

# 122d7596 02-Apr-2015 Nikita Popov <nikic@php.net>

Always throw TypeException on throwing zpp failures

Introduces a ZEND_PARSE_PARAMS_THROW flag for zpp, which forces to
report FAILURE errors using a TypeException instead of a Warning,
like it would happen in strict mode.

Adds a zend_parse_parameters_throw() convenience function, which
invokes zpp with this flag.

Converts all cases I could identify, where we currently have
throwing zpp usage in constructors and replaces them with this API.
Error handling is still replaced to EH_THROW in some cases to handle
other, domain-specific errors in constructors.

# caecd882 02-Apr-2015 Stanislav Malyshev <stas@php.net>

Revert "Merge branch 'PHP-5.4' of https://git.php.net/repository/php-src into PHP-5.4"

This reverts commit fe0ca2745f00940a27bfc8e87db534541a19af70, reversing
changes made to 968fbc6acf0bc27be17c0209be7f966e89a55943.

# ea09a9fa 01-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Convert fatal errors into EngineExceptions
Make zval_update_constant_ex(), zval_update_constant(), zend_update_class_constants() and zend_ast_evaluate() return SUCCESS or FAILURE.

# 8d003858 15-Mar-2015 Nikita Popov <nikic@php.net>

Reclassify E_STRICT notices

Per RFC https://wiki.php.net/rfc/reclassify_e_strict

While reviewing this, found that there are still three E_STRICTs
left in libraries - need to discuss those.

# 1018f462 30-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Patch improvement:

Removed the corresponding core code.
Fixed ext/com_dotnet and ext/date.
Refactored ext/intl changes.
Improved ext/fileinfo and ext/pdo changes.
Fixed tests.

# 02be73b5 25-Mar-2015 Kalle Sommer Nielsen <kalle@php.net>

Constness to zend_get_object_type(), thanks Michael!

# 927d53fd 25-Mar-2015 Kalle Sommer Nielsen <kalle@php.net>

Change "Cannot redeclare class X" into "Cannot redeclare class/interface/trait X", meaning that the following:

C:\> php -r "trait A { } trait A { }"

Will now properly print "Cannot redeclare trait A" instead of "Cannot redeclare class A" to make error messages a tiny bit clearer. Admittedly, a better solution can most likely be made by actually telling what the colliding object is a type of.

Internally this adds a new function:

# 550b07ae 24-Mar-2015 Dmitry Stogov <dmitry@zend.com>


# ccfd5388 22-Mar-2015 Nikita Popov <nikic@php.net>

Revert "Use E_ERROR | E_EXCEPTION in FAST_ZPP mode too"

This reverts commit d4da7c20d2d642a6f0f81bde836576b9970969af.

The argument passed to this function refers to the weak mode
severity, strict mode will get an exception in any case.

# d4da7c20 21-Mar-2015 Bob Weinand <bobwei9@hotmail.com>


# 35f9b90b 20-Mar-2015 Dmitry Stogov <dmitry@zend.com>

ZPP changed to lazely check for "strict/weak" only if it's really necessary.

# 054591ab 20-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Imroved ZPP rules (condititins reoredered to prevent duplicate checks)

# 59356126 20-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Improved type hinting:

EX_PREV_USES_STRICT_TYPES() and family changed/renamed to fit with other macros
Optimized zend_verify_internal_arg_type() and family (they don't need "strict" argument anymore)
Standerd ZPP is called from VM only for weak type check or strict exception (int -> double)

TODO: should we accept IS_NULL for non-nullable arguments?

# 7044f9c6 19-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Refactor as to not use call info, but add the flag to the op_array.

# 0ef80ac3 19-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Fix severity issues with callbacks, start work porting ZEND_STRLEN opcode to work with strict mode, more refactoring to come

# 579e7fa4 18-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Style cleanup, as well as fixing bug with missing argument for WRONG_PARAM_COUNT_WITH_RETVAL

# 8be4266f 18-Mar-2015 Anthony Ferrara <ircmaxell@gmail.com>

Clean up API renames for zend_wrong_param_count to maintain BC, introducing a zend_wrong_param_count_ex() function when you know strict value

# 86336856 12-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Use specialized macro for string zval creation

# bb050453 08-Mar-2015 Rouven Weßling <me@rouvenwessling.de>

Add ZEND_ARG_CALLABLE_INFO to allow internal function to type hint against callable

# 00b3e77e 18-Feb-2015 Anthony Ferrara <ircmaxell@gmail.com>

Move declare() to the top of the file only, and allow int->float generalization

# 07fdc1c7 12-Feb-2015 Anatol Belski <ab@php.net>

fix data types

# 44ed070a 01-Feb-2015 Andrea Faulds <ajf@ajf.me>

Fix Gd usages of ZEND_WRONG_PARAM_COUNT, add usage note

# 86b0685f 25-Jan-2015 Andrea Faulds <ajf@ajf.me>

Prefix zend_wrong_param_count with _ to discourage use

# fe663cc4 13-Jan-2015 Andrea Faulds <ajf@ajf.me>

Partial ZPP strictness implementation

# a3379d66 05-Feb-2015 Xinchen Hui <laruence@php.net>


# bff4c47f 04-Feb-2015 Reeze Xia <reeze@php.net>

Implemented internal function return types

# 3e31838d 22-Jan-2015 Dmitry Stogov <dmitry@zend.com>

zend_read_property() has to provide a holder for return value.
Previously it was possible that zend_read_property() returned pointer to zval allocated on stack.

# 6c9621c9 17-Jan-2015 Rasmus Lerdorf <rasmus@php.net>


# fc33f52d 15-Jan-2015 Xinchen Hui <laruence@php.net>

bump year

# 0579e827 15-Jan-2015 Xinchen Hui <laruence@php.net>

bump year

# 73c1be26 15-Jan-2015 Xinchen Hui <laruence@php.net>

Bump year

# b7a7b1a6 03-Jan-2015 Stanislav Malyshev <stas@php.net>

trailing whitespace removal

# 41e3fdba 15-Dec-2014 Andrea Faulds <ajf@ajf.me>

Make zend_parse_parameters share fast zpp implementation where possible

Rename shared implementation functions and build them unconditionally

Don't fail on empty path for zend_parse_arg_path

Update type names

Fix behaviour of by-reference "z"

Make 'o' use zend_parse_arg_object

Fix NULL string check in zend_parse_arg_path(_str)

# b5b61767 22-Dec-2014 Xinchen Hui <laruence@php.net>

Micro optimaztion (yeah, I know compiler supposed to do that)

# e5eb9530 14-Dec-2014 Andrea Faulds <ajf@ajf.me>

Use "float" and "integer" in typehint and zpp errors

# bdeb220f 13-Dec-2014 Anatol Belski <ab@php.net>

first shot remove TSRMLS_* things

# 3893c1fc 12-Dec-2014 Dmitry Stogov <dmitry@zend.com>

Fixed compilation warnings

# 5dd427ea 03-Dec-2014 Dmitry Stogov <dmitry@zend.com>

Use zend_string* for op_array->arg_info[]->name and op_array->arg_info[]->class_name. For internal functions we still use char*.

# f90b877f 29-Nov-2014 Andrea Faulds <ajf@ajf.me>


# d19ce518 29-Nov-2014 Andrea Faulds <ajf@ajf.me>

Fixed copy-and-paste error

# 11384ba7 28-Nov-2014 Dmitry Stogov <dmitry@zend.com>

Pack EX(num_args) into EX(This).u2.num_args

# f7d3355e 24-Oct-2014 Anatol Belski <ab@php.net>

fix datatype mismatches

and convert len args to size_t where the underlaying API uses zend_string

# f2279224 23-Oct-2014 Anatol Belski <ab@php.net>

move key lengths to use size_t as zend_string is used internally anyway

# a5e4f1f5 22-Oct-2014 Anatol Belski <ab@php.net>

fix several datatype mismatches

# 5e24ae32 22-Oct-2014 Anatol Belski <ab@php.net>

all the key_len use uint, fix the warning when using strlen on 64 bit

# cf5920e8 16-Oct-2014 Nikita Popov <nikic@php.net>

Fix procedural finfo calls in methods

getThis() will return the $this of the calling method.

# c96a6b44 12-Oct-2014 Anatol Belski <ab@php.net>

DLL export several APIs needed for phpdbg

# df79b9b2 09-Oct-2014 Nikita Popov <nikic@php.net>

Update get_class_name semantics

* get_class_name is now only used for displaying the class name
in debugging functions like var_dump, print_r, etc. It is no
longer used in get_class() etc.
* As it is no longer used in get_parent_class() the parent
argument is now gone. This also fixes incorrect parent classes
being reported in COM.
* get_class_name is now always required (previously some places
made it optional and some required it) and is also required
to return a non-NULL value.
* Remove zend_get_object_classname. This also fixes a number of
potential leaks due to incorrect usage of this function.

# e5e9d834 09-Oct-2014 Nikita Popov <nikic@php.net>

Remove zend_get_class_entry function

# bd9a2346 03-Oct-2014 Dmitry Stogov <dmitry@zend.com>

Replaced EG(This) and EX(object) with EX(This).
Internal functions now recieves zend_execute_data as the first argument.

# d11734b4 25-Sep-2014 Anatol Belski <ab@php.net>

reworked the patch, less new stuff but worky

TLS is already used in TSRM, the way exporting the tsrm cache through
a thread local variable is not portable. Additionally, the current
patch suffers from bugs which are hard to find, but prevent it to
be worky with apache. What is done here is mainly uses the idea
from the RFC patch, but

- __thread variable is removed
- offset math and declarations are removed
- extra macros and definitions are removed

What is done merely is

- use an inline function to access the tsrm cache. The function uses
the portable tsrm_tls_get macro which is cheap
- all the TSRM_* macros are set to placebo. Thus this opens the way
remove them later

Except that, the logic is old. TSRMLS_FETCH will have to be done once
per thread, then tsrm_get_ls_cache() can be used. Things seeming to be
worky are cli, cli server and apache. I also tried to enable bz2
shared and it has worked out of the box. The change is yet minimal
diffing to the current master bus is a worky start, IMHO. Though will
have to recheck the other previously done SAPIs - embed and cgi.

The offsets can be added to the tsrm_resource_type struct, then
it'll not be needed to declare them in the userspace. Even the
"done" member type can be changed to int16 or smaller, then adding
the offset as int16 will not change the struct size. As well on the
todo might be removing the hashed storage, thread_id != thread_id and
linked list logic in favour of the explicit TLS operations.

# 4db75dc8 22-Sep-2014 Anatol Belski <ab@php.net>

basic windows fix

# bb55397b 22-Sep-2014 Andrea Faulds <ajf@ajf.me>

Make zpp fail if NaN passed for int, or out-of-range float for non-capping int

# b3aebda9 20-Sep-2014 krakjoe <joe.watkins@live.co.uk>

native tls initial patch

# 993d4751 12-Sep-2014 Anatol Belski <ab@php.net>

fix condition

A char array like val[1] would always be valid when checking like
!val. Probably better were to check for ->len, but actually ->val[0]
is fine as the actual zend_string should have been initalized

# 5d5a7020 12-Sep-2014 Anatol Belski <ab@php.net>

reduce the struct size by 8 byte on 64 bit

# d6faac2c 28-Aug-2014 Anatol Belski <ab@php.net>

make array/object APIs accept large strings as values of elements/props

# 32344808 27-Aug-2014 Anatol Belski <ab@php.net>

first show to make 's' work with size_t

# 4d997f63 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 3

# 6f9f0bf2 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 2

# c3e3c98e 25-Aug-2014 Anatol Belski <ab@php.net>

master renames phase 1

# 8cda420f 20-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed ext/pdo_*/tests/pdo_005.phpt tests failure

# 22dbb38d 18-Aug-2014 Anatol Belski <ab@php.net>

fix typo

# 59ec8329 18-Aug-2014 Anatol Belski <ab@php.net>

renamed _z_param_long

# f3dc4421 18-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed parameter parsing

# f2182ab8 17-Aug-2014 Anatol Belski <ab@php.net>

some more pure naming replacements

# b7e7a895 15-Aug-2014 Anatol Belski <ab@php.net>

several fixes -

- param parsing Z_PARAM_STR vs Z_PARAM_STRING
- some functions for new params
- etc

# 8ee2a4a9 16-Aug-2014 Anatol Belski <ab@php.net>

first shot on merging the core fro the int64 branch

# c749fe20 13-Aug-2014 Xinchen Hui <laruence@php.net>


# 0ae305e6 11-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed compilation warnings about unused labels

# 42c4bcae 14-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Fixed ZTS build

# 27f38798 11-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Fast parameter parsing API

This API is experemental. It may be changed or removed.
It should be used only for really often used functions.
(Keep the original parsing code and wrap usage with #ifndef FAST_ZPP)

# 1dd07d6b 09-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Partial fix that allows internal constructors to set $this to null.
The address of $this passed to drectly called internal constructor in execute_data->return_value.
Internal constructors should use ZEND_CTOR_MAKE_NULL() macro (insted of previous ZEND_NULL(EG(This))) to do the work.

This patch doesn't fix the problem for indirectly called constructors. e.g. parant::__construct().

# 6bf24f4d 04-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data)

# 284141ca 24-Jun-2014 Xinchen Hui <laruence@php.net>

Fixed _zend_get_parameters_array

it should not decrease the refcount (spotted by
register_shutdown_function in ext/mysqli/tests/bug49442.phpt)

# 6e733870 03-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Avoid useless merge

# c446e575 14-May-2014 Dmitry Stogov <dmitry@zend.com>

ext/soap support for phpng (incomplete - just compilable)

# 2402d6cb 11-May-2014 Xinchen Hui <laruence@php.net>

Refactor MySQLi (incompleted, only compilable now)

# d8651fbe 03-May-2014 Xinchen Hui <laruence@gmail.com>

Make they are in the same style of Z_ISREF

# 17d027ed 30-Apr-2014 Dmitry Stogov <dmitry@zend.com>


# ea2e1bb1 18-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Optimized zend_leave_helper()

# 050d7e38 15-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Cleanup (1-st round)

# 20f2e598 09-Apr-2014 Nikita Popov <nikic@php.net>

Fix ZTS build

This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.

# 58f0f250 03-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Various VM optimizations

# 76cc99fe 03-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)

# 6b2ed577 01-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Avoid unnecessry reallocations

# ea85451b 27-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored data structures to keep zend_object* instead of a whole zval in some places

# c9bca503 26-Mar-2014 Xinchen Hui <laruence@gmail.com>

Refactor session (incompleted)

# 887189ca 26-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing

# aa5f5530 17-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Refactored EG(active_symbol_table) to be zend_array* instead of HashTable*

# bfdaf6e8 13-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Fixed reference support

# 74c2deec 05-Mar-2014 Xinchen Hui <laruence@gmail.com>

Fixed refcounted

# 19670c2b 04-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Fixied calling object closures from internal functions

# 639e4e1a 25-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Changes zend_is_callable() to use zend_string* instead of char*

# 6fbea9ce 21-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed exception constructor

# 43b03c74 18-Feb-2014 Xinchen Hui <laruence@gmail.com>

Refacting smart_str

# 1e752ce9 18-Feb-2014 Sara Golemon <pollita@php.net>

Add __debugInfo() magic method

class Foo {
private $val = 'Random, meaningless data';

public function count() { return 42; }

public function __debugInfo() {
return ['count' => $this->count()];

$f = new Foo;

# a0fe8e5a 17-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# 0e425121 17-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# 2fd7f7c8 15-Feb-2014 Anatol Belski <ab@php.net>

backported Zend

# 398256e5 14-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# 068ec75f 14-Feb-2014 Xinchen Hui <laruence@gmail.com>

Use better data structures (incomplete)

# 2161103f 10-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# f4cfaf36 10-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)

# aee6344e 25-Dec-2013 Rouven Weßling <me@rouvenwessling.de>

Add ZEND_ARG_CALLABLE_INFO to allow internal function to type hint against callable.

# c081ce62 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# 47c90277 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# c0d060f5 03-Jan-2014 Xinchen Hui <laruence@php.net>

Bump year

# e2df932e 27-Dec-2013 Anatol Belski <ab@php.net>

revamp the hash api once more

# 61252782 19-Dec-2013 Anatol Belski <ab@php.net>

more semantical replacements LONG vs. INT

# f58d0b35 19-Dec-2013 Anatol Belski <ab@php.net>

massive update semantical LONG vs INT replacements

# b1abe4ca 18-Dec-2013 Anatol Belski <ab@php.net>

mass replacement for zend_size_t/php_size_t

# 0fc8e6af 12-Dec-2013 Kalle Sommer Nielsen <kalle@php.net>

Eliminate another straight forward TSRMLS_FETCH() in zend_startup_module()

# The code that uses a call to this function is for older versions of PHP anyway so its not covered

# For Zend OpCache:
# Added a new define for 5.6 and wrapped the code around that so its still compatible with older version

# 637e9fc5 10-Nov-2013 Anatol Belski <ab@php.net>

fix 64 bit integer values

# 98c6e0d5 07-Nov-2013 Anatol Belski <ab@php.net>

first shot for 64 bit array indexes, more broken things to fix

# 0cd95c1e 02-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Get basic language tests to all pass (minus xfails)

# c224e239 01-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Re-do a lot of it using a conditional define, and legacy type information for APIs

# cc0e733b 26-Aug-2013 Nikita Popov <nikic@php.net>

Always pass return_value_ptr to internal functions

Previous some places passed return_value_ptr only if the function
returned by reference. Now return_value_ptr is always set, even
for functions returning by-value.

This allows you to return zvals without copying their contents. For
this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST
are added:

RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */
RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */

These macros behave similarly to the non-FAST versions with
copy=1 and dtor=0, with the difference that the FAST versions
will try return the zval without copying by utilizing return_value_ptr.

# 66de4151 26-Aug-2013 Nikita Popov <nikic@php.net>

Evaluate ZVAL_ZVAL arguments only once

Also remove some isref/refcount assignments, which are no longer
necessary (as ZVAL_COPY_VALUE is used now).

# 0d7a6388 26-Sep-2013 Nikita Popov <nikic@php.net>

Implement variadic function syntax

As per RFC: https://wiki.php.net/rfc/variadics

# 08567145 26-Aug-2013 Nikita Popov <nikic@php.net>

Always pass return_value_ptr to internal functions

Previous some places passed return_value_ptr only if the function
returned by reference. Now return_value_ptr is always set, even
for functions returning by-value.

This allows you to return zvals without copying their contents. For
this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST
are added:

RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */
RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */

These macros behave similarly to the non-FAST versions with
copy=1 and dtor=0, with the difference that the FAST versions
will try return the zval without copying by utilizing return_value_ptr.

# d18b9698 26-Aug-2013 Nikita Popov <nikic@php.net>

Evaluate ZVAL_ZVAL arguments only once

Also remove some isref/refcount assignments, which are no longer
necessary (as ZVAL_COPY_VALUE is used now).

# 3db6b511 02-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Get basic language tests to all pass (minus xfails)

# ea58b542 01-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

Re-do a lot of it using a conditional define, and legacy type information for APIs

# 04145dc2 22-Apr-2013 Veres Lajos <vlajos@gmail.com>

typo fixes (argument)

# 2d5695cb 19-May-2013 Sara Golemon <pollita@php.net>

Don't double-quote name of namespaced function.

ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info)

was resulting in a function declaration of:


including the errant quotes.

This diff corrects that. There are currently no uses of ZEND_NS_NAMED_FE
in core and reason to believe that there are no uses in the wild either.

# 7dce0194 21-Mar-2013 Xinchen Hui <laruence@php.net>

Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11)

# fcc6611d 16-Feb-2013 Nikita Popov <nikic@php.net>

Add support for non-scalar Iterator keys in foreach

RFC: https://wiki.php.net/rfc/foreach-non-scalar-keys

# 09e73fd8 30-Jan-2013 Jelle Zijlstra <jelle.zijlstra@gmail.com>

Fix build problem in C++11

# 86b36438 30-Jan-2013 Jelle Zijlstra <jelle.zijlstra@gmail.com>

Fix build problem in C++11

# 31468401 30-Jan-2013 Jelle Zijlstra <jelle.zijlstra@gmail.com>

Fix build problem in C++11

# 93fd9c70 29-Jan-2013 Johannes Schlüter <johannes@php.net>

Fix bug #64099 (Wrong TSRM usage in zend_register_class_alias)

# 07590e6e 09-Jan-2013 Gustavo Lopes <gustavo@icemobile.com>

Export zend_parse_parameter()

# a666285b 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 0a7395e0 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 831fbcf3 01-Jan-2013 Xinchen Hui <laruence@php.net>

Happy New Year

# 03a1fcab 04-Aug-2012 Xinchen Hui <laruence@php.net>

Fixed bug #62744 (dangling pointers made by zend_disable_class)

the test will be added while commit the fix for #62737

# 13f1d53b 18-Jul-2012 Gustavo André dos Santos Lopes <cataphract@php.net>

Expose zend_parse_arg() as zend_parse_parameter()

Sometimes, one wants to accept several types for a given parameter. zpp
has special functionality for detecting the NULL type, since the NULL
type is frequently used to skip parameters.

However, supporting several types is otherwise very tedious. There are
many cases where this situation arises -- for instance one may want
to accept an arbitrary number of integer and expect them in an array,
but allow a bare integer too; one may want to accept something that
will be used as an array key (which can be either and int or a string);
one may want to accept integer and double numbers. A search for IS_LONG
reveals many situations where this need arises.

The usual solution is to fetch the argument with 'z'/'Z', check its
type, and then convert the argument, e.g. with convert_to_long_ex().
As explain in the last commit, this has different behavior and
generates inconsistency.

Another -- even more flawed strategy --, is to try zpp with a specific
format, forcing it quiet, and if it fails retrying with another form.
But because zpp changes the arguments directly in the stack (for
instance, using "l" converts the zval in the stack to IS_LONG), the
arguments may look different after the first zpp, leaving subtle bugs.

This commit also allows more complex scenarios, for instance where the
expected type of one parameter depends on other parameters.

# e4ca0ed0 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# 8775a375 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# 4e198252 01-Jan-2012 Felipe Pena <felipe@php.net>

- Year++

# 4a25a774 13-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed ZE specific compile warnings (Bug #55629)

# e43ff135 13-Sep-2011 Dmitry Stogov <dmitry@php.net>

Fixed ZE specific compile warnings (Bug #55629)

# 054e1caf 25-Jul-2011 Felipe Pena <felipe@php.net>

- Added new macro to be used in the end of zend_function_entry declaration (Gwynne)

# f1f2a649 25-Jul-2011 Felipe Pena <felipe@php.net>

- Added new macro to be used in the end of zend_function_entry declaration (Gwynne)

# f8a3334c 25-Jul-2011 Felipe Pena <felipe@php.net>

- Added new macro to be used in the end of zend_function_entry declaration (Gwynne)

# 32b5f8a1 06-Jun-2011 Felipe Pena <felipe@php.net>

- Added new parameter parsing option (p - for valid path (string without null byte in the middle))
# The tests will be fixed in the next commits

# 4737910b 06-Jun-2011 Felipe Pena <felipe@php.net>

- Added new parameter parsing option (p - for valid path (string without null byte in the middle))
# The tests will be fixed in the next commits

# e1861890 03-Jun-2011 Stanislav Malyshev <stas@php.net>

scalar types cleanup

# d7c9c5af 03-Jun-2011 Stanislav Malyshev <stas@php.net>

scalar types cleanup

# 927bf09c 01-Jan-2011 Felipe Pena <felipe@php.net>

- Year++

# 0203cc3d 01-Jan-2011 Felipe Pena <felipe@php.net>

- Year++

# 3690ce39 15-Oct-2010 Dmitry Stogov <dmitry@php.net>

zend_collect_module_handlers() has to be called after zend_extensions startup, because they can register additional 'hidden' extensions

# aaa2f1c3 14-Oct-2010 Hartmut Holzgraefe <hholzgra@php.net>

marked char pointer arguments as const in lots of
places where strings pointed to are not modified
to prevent compiler warnings about discarded qualifiers ...

# f2df6a4a 15-Sep-2010 Dmitry Stogov <dmitry@php.net>

- Improved memory usage
. zend_function.pass_rest_by_reference is replaced by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
. zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags
. zend_arg_info.required_num_args removed. it was needed only for internal
functions. Now the first arg_info for internal function (which has special
meaning) is represented by zend_internal_function_info structure.
. zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count moved into CG(context), because they are used only during
. zend_op_array.start_op is moved into EG(start_op), because it's used
only for 'interactive' execution of single top-level op-array.
. zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
. op_array.vars array is trimmed (reallocated) during pass_two.
. zend_class_entry.constants_updated is replaced by
ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
. the size of zend_class_entry is reduced by sharing the same memory space
by different information for internal and user classes.
See zend_class_inttry.info union.

# fdb6077f 14-Aug-2010 Felipe Pena <felipe@php.net>

- Missing traits data initialization for internal classes (causing Reflection to crash)

# c6c97db7 08-Aug-2010 Felipe Pena <felipe@php.net>

- Fix warning because the comparsion with literal (e.g. INIT_CLASS_ENTRY(..., "Foo", ...))

# 4f07d70d 05-Aug-2010 Felipe Pena <felipe@php.net>

- Fixed ZTS build (Kalle)

# 3cf5ab9e 05-Aug-2010 Dmitry Stogov <dmitry@php.net>

Use interned strings for class names

# 1a1178a6 06-Jul-2010 Dmitry Stogov <dmitry@php.net>

eliminated unnecessary iterations during request startup/shutdown

# f23e8576 24-May-2010 Dmitry Stogov <dmitry@php.net>

Fixed ZTS build

# c5237d82 24-May-2010 Dmitry Stogov <dmitry@php.net>

Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties

# 1bc92476 20-May-2010 Derick Rethans <derick@php.net>

- Added scalar typehinting.

# eb7e848f 28-Apr-2010 Johannes Schlüter <johannes@php.net>

spread some more const

# 453b49ed 20-Apr-2010 Dmitry Stogov <dmitry@php.net>

Added a number of small performance tweaks and optimizations
. ZEND_RECV now always has IS_CV as its result
. ZEND_CATCH now has to be used only with constant class names
. ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order

# 13a78acb 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# 35e83d2a 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# d2281d1d 05-Jan-2010 Sebastian Bergmann <sebastian@php.net>

sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

# b40e882e 28-Jul-2009 Jani Taskinen <jani@php.net>

- Fixed bug #48971 (Missing ZEND_NS_NAMED_FE macro)

# f48cab06 28-Jul-2009 Jani Taskinen <jani@php.net>

- Fixed bug #48971 (Missing ZEND_NS_NAMED_FE macro)

# 6d34e06a 25-May-2009 Felipe Pena <felipe@php.net>

- Dropped *_TEXT* macros in favor of unicode macros direct usage

# 0497e208 25-May-2009 Felipe Pena <felipe@php.net>

- Fixed macro (thanks Kalle)

# 8ecf8ede 26-Mar-2009 Felipe Pena <felipe@php.net>

- Removed:
- UG(unicode) checks
- pcre_cache_entry.unicode_mode
- Changed:
- convert_to_text -> convert_to_unicode
- convert_to_text_ex -> convert_to_unicode_ex

(Felipe, Steph)

# ef49b9a8 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 3 of 3.

# 08659c2d 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 3 of 3.

# 7f4dc870 31-Dec-2008 Sebastian Bergmann <sebastian@php.net>

Bump copyright year, 3 of 3.

# 3e94ce6a 19-Dec-2008 SVN Migration <svn@php.net>

This commit was manufactured by cvs2svn to create tag 'NEWS'.

# e5454b35 27-Nov-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #46409 (__invoke method called outside of object context when using array_map)

# 7d4fd3fd 27-Nov-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #46409 (__invoke method called outside of object context when using array_map)

# fc2fb50d 17-Nov-2008 Felipe Pena <felipe@php.net>

- MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro

# 43791516 17-Nov-2008 Felipe Pena <felipe@php.net>

- Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro (again!)

# 7126de49 04-Nov-2008 Marcus Boerger <helly@php.net>

- Next step in namespaces, using / as namespace separator.

# 7a37fa2d 02-Nov-2008 Felipe Pena <felipe@php.net>

- Revert ZEND_BEGIN_ARG_INFO change

# e006a89e 02-Nov-2008 Felipe Pena <felipe@php.net>

- Revert ZEND_BEGIN_ARG_INFO change

# df100055 24-Oct-2008 Felipe Pena <felipe@php.net>

- MFH: Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro

# 7eb27154 24-Oct-2008 Felipe Pena <felipe@php.net>

- Added 'static' into ZEND_BEGIN_ARG_INFO_EX macro

# a99fad3b 12-Aug-2008 Nuno Lopes <nlopess@php.net>

MFB: move empty_fcall_info* to const table

# f87d4530 12-Aug-2008 Nuno Lopes <nlopess@php.net>

mark empty_fcall_info and empty_fcall_info_cache as constant. a few less bytes in the dirty page :P

# cf7384aa 12-Aug-2008 Felipe Pena <felipe@php.net>

- MFH: Constness (Added const qualifier to several function parameters)

# a5f867f3 12-Aug-2008 Felipe Pena <felipe@php.net>

- Constness (Added const qualifier to several function parameters)

# e304515d 02-Aug-2008 Felipe Pena <felipe@php.net>

- MFH: Added parameter TSRMLS_DC in zend_is_callable()

# 611ecc51 02-Aug-2008 Felipe Pena <felipe@php.net>

- Added parameter TSRMLS_DC in zend_is_callable()

# 182de3e9 29-Jul-2008 Antony Dovgal <tony2001@php.net>

add zend_u_read_property() and zend_u_update_property()

# bdf7981e 26-Jul-2008 Dmitry Stogov <dmitry@php.net>

Fixed is_callable/call_user_func mess that had done different things for very similar arguments e.g. array("A","B") and "A::B"

# af05ce0a 26-Jul-2008 Dmitry Stogov <dmitry@php.net>

Fixed is_callable/call_user_func mess that had done different things for very similar arguments e.g. array("A","B") and "A::B"

# 72dfe666 24-Jul-2008 Dmitry Stogov <dmitry@php.net>

LSB parent/self forwarding

# feb85801 24-Jul-2008 Dmitry Stogov <dmitry@php.net>

LSB parent/self forwarding

# 7913749e 27-Jun-2008 Stanislav Malyshev <stas@php.net>

deprecate zend_get_parameters_ex

# e59bfcff 27-Jun-2008 Stanislav Malyshev <stas@php.net>

deprecate zend_get_parameters_ex

# 7da75d81 27-May-2008 Matt Wilmas <mattwil@php.net>

MFH: Add array_init_size() and use it where array size is known at initialization

# 9c37df90 27-May-2008 Matt Wilmas <mattwil@php.net>

Add array_init_size() and use it where array size is known at initialization

# 1e267607 12-May-2008 Dmitry Stogov <dmitry@php.net>

Added API to use namesapces in internal extensions

# 907fa665 12-May-2008 Dmitry Stogov <dmitry@php.net>

Added API to use namesapces in internal extensions

# 1d0f893b 29-Apr-2008 Dmitry Stogov <dmitry@php.net>

Lazy EG(active_symbol_table) initialization

# 2ecf4bb0 29-Apr-2008 Dmitry Stogov <dmitry@php.net>

Lazy EG(active_symbol_table) initialization

# cc2b17d5 10-Mar-2008 Felipe Pena <felipe@php.net>

MFH: Added new macro for check void parameters.
(deprecating ZEND_WRONG_PARAM_COUNT for this cases)

# 8e08965b 28-Feb-2008 Felipe Pena <felipe@php.net>

Added new macro for check void parameters.
(deprecating ZEND_WRONG_PARAM_COUNT for this cases)

# f7a0a44b 02-Feb-2008 Marcus Boerger <helly@php.net>

- MFB static callable message mess

# e8a8acdf 01-Feb-2008 Marcus Boerger <helly@php.net>

- Fix callable/static mess, the following will now all result in a E_STRICT
. binding a dynamic function as a static callback
. static call of a dynamic function
. is_callable() on a static binding to a dynamic function
# [marcus@frodo PHP_5_3]$ php -a -d error_reporting=8191
# make: `sapi/cli/php' is up to date.
# Interactive shell
# php > class t{ function f() { echo "Funny\n"; } }
# php > $c = array("t","f");
# php > call_user_func($c);
# Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method t::f() cannot be called statically in php shell code on line 1
# Funny
# php > var_dump(is_callable($c));
# Strict Standards: Non-static method t::f() cannot be called statically in php shell code on line 1
# bool(true)
# php > t::f();
# Strict Standards: Non-static method t::f() should not be called statically in php shell code on line 1
# Funny
# php >

# 30636998 24-Jan-2008 Dmitry Stogov <dmitry@php.net>

Fixed compilation warnings

# d90ebc65 24-Jan-2008 Dmitry Stogov <dmitry@php.net>

Fixed comilation warnings

# d9f3a130 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 2 of 2.

# d1dded87 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump copyright year, 2 of 2.

# 9b620d50 31-Dec-2007 Sebastian Bergmann <sebastian@php.net>

Bump copyright year, 2 of 2.

# b4892511 02-Nov-2007 Jani Taskinen <jani@php.net>

- MFH from HEAD:
. Folding tags
. Parameter parsing
. SPL debug info
. array function improvements (not all yet)
. Improvements to function calling with call_user_* functions
. Improvements to debugging info in var_dump/print_r
# I propably forgot already something but this all was pretty close tied
# to each other so it wasn't possible to do it in parts.

# 502bef95 01-Nov-2007 Jani Taskinen <jani@php.net>

ws + cs

# 4b4d634c 07-Oct-2007 Yiduo (David) Wang <davidw@php.net>

MFH: Added macros for managing zval refcounts and is_ref statuses

# 95da0dc5 07-Oct-2007 Yiduo (David) Wang <davidw@php.net>

Added macros for managing zval refcounts and is_ref statuses

# 72d0454b 29-Sep-2007 Dmitry Stogov <dmitry@php.net>

Added support for __callstatic() magic method (missing part). (Sara)

# b20ed0d2 29-Sep-2007 Dmitry Stogov <dmitry@php.net>

Added support for __callstatic() magic method. (Sara)

# 8146078f 27-Sep-2007 Dmitry Stogov <dmitry@php.net>

Improved memory usage by movig constants to read only memory. (Dmitry, Pierre)

# 6c810b0d 27-Sep-2007 Dmitry Stogov <dmitry@php.net>

Improved memory usage by movig constants to read only memory. (Dmitry, Pierre)

# df3ab167 30-Aug-2007 Antony Dovgal <tony2001@php.net>

fix C++ extensions build
C++ doesn't allow implicit casting of void* to Uchar*, we have to do it explicitly

# b1bc911c 21-Jul-2007 Sara Golemon <pollita@php.net>

Add support got zend_class_entry->get_static_method() and matching __callStatic() userspace method @doc

# 9a1520df 11-Jul-2007 Dmitry Stogov <dmitry@php.net>

Fixed ascii->unicode conversion (terminating unicode character must be 0)

# ec7de9df 05-Jun-2007 Antony Dovgal <tony2001@php.net>


# 2908322c 16-Apr-2007 Dmitry Stogov <dmitry@php.net>

WIN64 support

# e1814f0d 16-Apr-2007 Dmitry Stogov <dmitry@php.net>

WIN64 support

# 10f0e0a5 08-Feb-2007 Marcus Boerger <helly@php.net>

- Fix potential issue with 'f'-parameter parsing
- Complete zend_fcall_info_*() API

# 70777b7d 08-Feb-2007 Marcus Boerger <helly@php.net>

- More ZEND_API's

# 696e85f0 02-Feb-2007 Andrei Zmievski <andrei@php.net>


# 135c947f 02-Feb-2007 Andrei Zmievski <andrei@php.net>

- Add ^ specifier that returns original string type before conversion.
- Add ZVAL_ENC_STRING[L] macro that allows returning either a binary
string or an encoded strings as Unicode based on type, instead of

# aa4cd53b 11-Jan-2007 Marcus Boerger <helly@php.net>

- Consistency: macros shall be uppercased (as requested by Andrei)

# 6a6d9da6 11-Jan-2007 Marcus Boerger <helly@php.net>

- Add zstrlen() helper

# 1037e06d 10-Jan-2007 Andrei Zmievski <andrei@php.net>

Remove const warnings. (Andrey)

# 7dcebde6 07-Jan-2007 Sara Golemon <pollita@php.net>

Add add_property_zstr(l)(_ex)()

# 4223aa4d 01-Jan-2007 Sebastian Bergmann <sebastian@php.net>

MFH: Bump year.

# 3717df72 01-Jan-2007 Sebastian Bergmann <sebastian@php.net>

Bump year.

# 6cbc9b00 23-Dec-2006 Antony Dovgal <tony2001@php.net>

fix typo

# 460360ae 20-Dec-2006 Hannes Magnusson <bjori@php.net>

- Fixed incorrect function names on FreeBSD where inet_pton() was named
__inet_pton() and inet_ntop() was named __inet_ntop()
- Fixed bug #39685 (iconv() - undefined function)
- Fixed bug #38852 (XML-RPC Breaks iconv)

# 1e19ee87 20-Dec-2006 Hannes Magnusson <bjori@php.net>

- Fixed incorrect function names on FreeBSD where inet_pton() was named
__inet_pton() and inet_ntop() was named __inet_ntop()
- Fixed bug #39685 (iconv() - undefined function)
- Fixed bug #38852 (XML-RPC Breaks iconv)

# e722dce5 19-Dec-2006 Andrei Zmievski <andrei@php.net>

- Marcus was too quick. Let's put type before zstr in the macros.
- Also mark get_include_path() and restore_include_path() with U.

# 98dce57d 19-Dec-2006 Marcus Boerger <helly@php.net>


# 950ab952 16-Dec-2006 Hannes Magnusson <bjori@php.net>

Fix ZTS build

# b78a38a2 15-Dec-2006 Andrei Zmievski <andrei@php.net>

Make all macros (RETURN_*, RETVAL_*, ZVAL_*, add_*) that convert binary
strings to Unicode actually issues errors on failure. I'm surprised we
haven't done this already.

# 1ef43a02 07-Dec-2006 Andrei Zmievski <andrei@php.net>

Guard against ambiguous 'else' clauses.

# 57d22421 17-Nov-2006 Dmitry Stogov <dmitry@php.net>

Unicode support.
Now the real UG(unicode) value is available during MINIT calls.

# 8043daed 15-Nov-2006 Antony Dovgal <tony2001@php.net>

fix typo (patch by Mike Wallner)

# 75c27244 27-Oct-2006 Andrei Zmievski <andrei@php.net>

Turn doc comments into zstr strings with corresponding adjustments.

# d5fbdc68 24-Oct-2006 Antony Dovgal <tony2001@php.net>

fix add_u_assoc_null() macro

# ac73b4a6 19-Oct-2006 Andrei Zmievski <andrei@php.net>

Fix potential (and real) leaks due to bad macro writing. Grrr.

# 9d4d5351 19-Oct-2006 Andrei Zmievski <andrei@php.net>

Fix possible double macro expansion.

# 1e1f3efb 17-Oct-2006 Andrei Zmievski <andrei@php.net>

Fix thread safety.

# 2602e49e 17-Oct-2006 Andrei Zmievski <andrei@php.net>

Implement add_utf8_property_* API.

# 97d03722 11-Oct-2006 Andrei Zmievski <andrei@php.net>

Extend zend_fcall_info_args functions. (Patch from Mike Wallner)

# d8652457 07-Oct-2006 Andrei Zmievski <andrei@php.net>

Hash functions for UTF-8 keys.

# 128548a5 19-Sep-2006 Dmitry Stogov <dmitry@php.net>

Disabled autoconversion of hash keys (from string to unicode) for PHP arrays

# 81b83f32 18-Sep-2006 Andrei Zmievski <andrei@php.net>

More work on Unicode support in PCRE. When UG(unicode) is on, all
strings passed to PCRE have to be IS_UNICODE or IS_STRING in UTF-8
encoding. Failure to do so will result in unpredictable results.

# 21bc25e0 11-Sep-2006 Andrei Zmievski <andrei@php.net>

Add a couple more UTF-8 functions.

# 11ca9006 28-Aug-2006 Andrei Zmievski <andrei@php.net>

Add APIs for UTF-8 strings (common with XML, PCRE, etc)

# dd2e2abc 25-Aug-2006 Andrei Zmievski <andrei@php.net>

Fix some API definitions.

# 2701f53a 14-Aug-2006 Andrei Zmievski <andrei@php.net>


# f5715ee8 08-Aug-2006 Antony Dovgal <tony2001@php.net>

implement zend_unicode_to_string() and zend_string_to_unicode()
part #1 (of 2)

# dda05970 04-Aug-2006 Andrei Zmievski <andrei@php.net>

Add add_assoc_zstr_ex() and related.

# cb15b7d5 04-Aug-2006 Andrei Zmievski <andrei@php.net>

Add macros to be able to initialize/return values based on zstr.

# 8619c361 20-Jul-2006 Marcus Boerger <helly@php.net>

- Add new unicode functions: add_u_assoc_*[_ex]() which allow to add values
using a unicode key.

# e9a9a26e 20-Jul-2006 Andrei Zmievski <andrei@php.net>

Rewrite array_map() to use params API with fci cache and mark it with U.

# 6687f037 18-Jul-2006 Dmitry Stogov <dmitry@php.net>

New memory manager

# 29ed52ff 18-Jul-2006 Dmitry Stogov <dmitry@php.net>

New memory manager

# fdf280b4 17-Jul-2006 Andrei Zmievski <andrei@php.net>

- Upgrade usort() to support Unicode (including valid Unicode callbacks).
- Make usort() use 'f' specifier for function call info/cache.

# ada4e506 15-Jun-2006 Dmitry Stogov <dmitry@php.net>

MFH: Added automatic module globals management.

# 2cbde064 13-Jun-2006 Dmitry Stogov <dmitry@php.net>

Added automatic module globals management.

# 64c353ab 07-Jun-2006 Marcus Boerger <helly@php.net>

- MFH zend_fcall_info_*() and parameter parsing option 'f'
# Right now i see this as the best option but we might shuffle code around
# later if someone comes up with a better solution.

# 5925a262 27-May-2006 Marcus Boerger <helly@php.net>

- Take care of refcounting in zend_fcall_info_*() functions
- Add docu
# I know it is unpopular to add docu here but i think we should add more

# 9114bc25 25-May-2006 Marcus Boerger <helly@php.net>

- Ease writing functions that deal with php function 'pointers'

# 34126e4a 25-May-2006 Antony Dovgal <tony2001@php.net>

MFB: fix error messages when converting objects to other types

# 9dd24c6d 25-May-2006 Antony Dovgal <tony2001@php.net>

fix error messages when converting objects to other types
add new function
MFB will follow soon

# 637a4042 09-May-2006 Marcus Boerger <helly@php.net>

- MFH as discussed
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
. zend_get_error_exception() -> zend_get_error_exception(TSRMLS_D)
. added __tostring function cache to zend_class_entry
. 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)

# 6c0c9f09 09-May-2006 Marcus Boerger <helly@php.net>

- Methods have flags

# 0638c67d 09-May-2006 Marcus Boerger <helly@php.net>


# 534cad70 04-May-2006 Andrei Zmievski <andrei@php.net>

Add a global ASCII connverter, macros to return single codepoints
(UCHAR32), and zend_unicode_to_ascii() function.

# 5f5faedf 06-Apr-2006 Sara Golemon <pollita@php.net>

Overload 'duplicate' arg as applied to:

#define ZSTR_DUPLICATE (1<<0)
#define ZSTR_AUTOFREE (1<<1)

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");

/* Duplicates for non-unicode, or converts (but doesn't free original) */
char *s = "Hello";

/* 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)) {

# f0b98489 10-Mar-2006 Dmitry Stogov <dmitry@php.net>


# 35ce5db2 05-Mar-2006 Marcus Boerger <helly@php.net>

- Add missing function for completeness

# fd2b76d5 05-Mar-2006 Marcus Boerger <helly@php.net>

- Add missing function for completeness

# 5575afef 04-Mar-2006 Johannes Schlüter <johannes@php.net>


# e3b7f3fd 26-Feb-2006 Dmitry Stogov <dmitry@php.net>

Unicode support: MS Visual C compatibility

# 941b0651 25-Feb-2006 Marcus Boerger <helly@php.net>

- MFH: Function deprecation flag

# 8a4c8e8d 24-Feb-2006 Marcus Boerger <helly@php.net>

- Add macros to mark functions/alias functions as deprecated
(mentioned by Sara and obviously neccessary)
- Fix function/method flag error detection logic

# 26ddcdb5 22-Feb-2006 Dmitry Stogov <dmitry@php.net>

Unicode support

# 0f1209ab 21-Feb-2006 Dmitry Stogov <dmitry@php.net>

Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
- use union "zstr" as char*/UChar* mixture instead of void*
- Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
- nuke int32_t from ZE (not finisned)

# 2e5d0a3a 21-Feb-2006 Dmitry Stogov <dmitry@php.net>


# b424a326 20-Feb-2006 Dmitry Stogov <dmitry@php.net>

Preparation for portable string API (use macroses to access zval).

# 09ca61c1 13-Feb-2006 Dmitry Stogov <dmitry@php.net>

Made server wide switch for unicode on/off (according to PDM).

# 227295a4 17-Jan-2006 Dmitry Stogov <dmitry@php.net>

Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.

# 5de7cc31 04-Jan-2006 Andi Gutmans <andi@php.net>

- Update copyright notices to 2006

# 61e93ccf 04-Jan-2006 Andi Gutmans <andi@php.net>

- Update copyright notices to 2006

# 96150967 16-Dec-2005 Marcus Boerger <helly@php.net>

- Add new const

# 0cd997d7 16-Dec-2005 Marcus Boerger <helly@php.net>

- Simplify and synch is_callable_ex() with actual execution code
. Allow array($this, 'parent::method') for function 'pointers'
. Spit out E_STRICT in case of erroneous use of function 'pointers'

# feaa2501 01-Dec-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34729 (Crash in ZTS mode under Apache)

# 8768ab94 01-Dec-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34729 (Crash in ZTS mode under Apache)

# b05b949a 28-Oct-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms)

# 05bd788e 28-Oct-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34879 (str_replace, array_map corrupt negative array indexes)

# 2486b846 25-Oct-2005 Marcus Boerger <helly@php.net>

- MFH zend_is_callable_ex() returns zend_class_entry* if available

# c72d91af 25-Oct-2005 Marcus Boerger <helly@php.net>

- Make zend_is_callable_ex() return the class netry if available

# 0d5550eb 03-Oct-2005 Marcus Boerger <helly@php.net>

- Add propper casting

# f94344d7 27-Sep-2005 Dmitry Stogov <dmitry@php.net>

Changed __toString() behavior to call it in all necessary places

# 4a430a09 23-Sep-2005 Marcus Boerger <helly@php.net>

- WS fix

# 248345d9 01-Sep-2005 Dmitry Stogov <dmitry@php.net>

Support for class constants and static members for internal classes

# 7b755108 01-Sep-2005 Dmitry Stogov <dmitry@php.net>

Support for class constants and static members for internal classes

# 8f6f97a7 23-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support

# f4b8f4e9 23-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support cleanup

# 6b622046 22-Aug-2005 Dmitry Stogov <dmitry@php.net>

zend_is_callable() and zend_make_callable() were changed to return readable function name as zval (instead of string).

# da472142 19-Aug-2005 Andrei Zmievski <andrei@php.net>

*** empty log message ***

# b0e24970 19-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support cleanup

# fe71ae29 18-Aug-2005 Andrei Zmievski <andrei@php.net>

- Implement zend_codepoint_to_uchar().
- Rename and fix zend_get_unified_string_type() so that it does not
allow mixing of binary and Unicode types.

# 8a749ee3 18-Aug-2005 Dmitry Stogov <dmitry@php.net>

Suppoer for unicode exception messages

# 74dafa95 18-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support for extract()

# e47587e1 15-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed several unicode related bugs

# 21c1109e 12-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support

# 6ad189f8 12-Aug-2005 Sebastian Bergmann <sebastian@php.net>

ZTS fixes.

# b80cb7bd 11-Aug-2005 Andrei Zmievski <andrei@php.net>

Unicode support

# 916815b7 03-Aug-2005 foobar <sniper@php.net>

Bump up the year

# 53e52606 28-Jul-2005 Marcus Boerger <helly@php.net>

- Add convenience function zend_is_callable_ex() and base zend_is_callable
and zend_make_callable on it. This functions allows to check if a php
variable is a callable function and returns its function pointer as well
as object if possible.
# Commit this now so we can use it in 5.1.* series as discussed with Andi.

# 70bd938b 18-Jul-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug in new module statrup mechanism

# 345e0255 07-Jul-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #33512 (Add missing support for isset()/unset() overloading to complement the property get/set methods)

# 1d33a3e9 04-Jul-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #31158 (array_splice on $GLOBALS crashes)

# 2ca2dc0b 30-Jun-2005 Dmitry Stogov <dmitry@php.net>

Restored old behavior of zend_statup_module()

# d5a12960 27-Jun-2005 Stanislav Malyshev <stas@php.net>

fix various "Class entry requested for an object without PHP class" messages
when working with non-PHP objects.
# Using Z_OBJCE(object)->name is usually bad idea unless you know it's
# a pure PHP object

# c0c7a9f0 17-Jun-2005 Dmitry Stogov <dmitry@php.net>

Improved PHP extension loading mechanism with support for module dependencies and conflicts.

# aedbdb08 16-Jun-2005 Dmitry Stogov <dmitry@php.net>

Allowed return by refrence from internal functions

# 1a723413 26-May-2005 Dmitry Stogov <dmitry@php.net>

Added array type hinting. (This patch requires full re-make)

# c81db6bc 27-Apr-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #29210 (Function: is_callable - no support for private and protected classes)

# 67a226d9 19-Apr-2005 Marcus Boerger <helly@php.net>

- Add ReflectionProperty::getDocComment()

# c087f072 27-Feb-2005 Marcus Boerger <helly@php.net>

- These must be initailized

# d88c2b18 04-Feb-2005 Hartmut Holzgraefe <hholzgra@php.net>

added some missing zend_[declare|update]_property_...() convenience
functions for bool, double and binary safe string data

# 1d5c13bd 22-Jan-2005 Marcus Boerger <helly@php.net>

- Fix #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.)

# 11bcaedf 04-Oct-2004 Andi Gutmans <andi@php.net>

- Rename delete_global_variable() to zend_delete_global_variable()

# db507dd1 04-Oct-2004 Andi Gutmans <andi@php.net>

- Commit the variable fetch optimization.
- Extensions which delete global variables need to use new special function
- delete_global_variable() (I'm about to rename it) to remove them.
- Will post to internals@ or via commit messages if there's anything else.

# e39f3f3f 28-Sep-2004 Marcus Boerger <helly@php.net>

Simplify/Optmize magic method calls (__get/__set/__call/__clone/__destruct)

# 6bd3c36a 09-Sep-2004 Andi Gutmans <andi@php.net>

- Recommit:
- Check signature of magic methods
- Register __get/__set/__call for internal classes

# 96ab56e1 09-Sep-2004 Andi Gutmans <andi@php.net>

- Roll back VM commit

# be24e245 09-Sep-2004 Marcus Boerger <helly@php.net>

- Check signature of magic methods
- Register __get/__set/__call for internal classes

# 56f8195f 19-Jul-2004 Andi Gutmans <andi@php.net>

- Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
used to return "" and not bool(false). It's not worth keeping it because
STR_FREE() and zval_dtor() always have to check for it and it slows down
the general case. In addition, it seems that empty_string has been abused
quite a lot, and was used not only for setting zval's but generally in
PHP code instead of "", which wasn't the intention. Last but not least,
nuking empty_string should improve stability as I doubt every place
correctly checked if they are not mistakenly erealloc()'ing it or
calling efree() on it.
NOTE: Some code is probably broken. Each extension maintainer should
check and see that my changes are OK. Also, I haven't had time to touch
PECL yet. Will try and do it tomorrow.

# c7566096 10-Jun-2004 Marcus Boerger <helly@php.net>

Add missing declaration

# 33cdc9ed 12-Apr-2004 Marcus Boerger <helly@php.net>

Fix order of macro parameter (synch with other macros)

# 52303217 30-Mar-2004 Marcus Boerger <helly@php.net>

- Fix Reflection class names
- Add ability to get the extension an internal class was defined in
# This is the patch Andi and me used to search for underscrores...

# 6535933f 16-Mar-2004 Derick Rethans <derick@php.net>

- Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
are run. (Derick)

# 8d45fece 02-Mar-2004 Marcus Boerger <helly@php.net>

Fix zend_parse_method_parameters_ex() and make it consistant with
# Obviously its only place of use is in pdo just right now.

# 7086634a 25-Feb-2004 Zeev Suraski <zeev@php.net>

- Improve ARG_INFO() macros to support supplying required_num_args
- Initial fix for foreach($o->mthd()->arr) crash (now leaks)

# 1727c6a2 20-Feb-2004 Hartmut Holzgraefe <hholzgra@php.net>

more EXTERN_C wrapping of ZEND_API prototypes

# e7e0f7d4 12-Feb-2004 Zeev Suraski <zeev@php.net>

- Check return-by-reference bit when implementing interface prototypes
- Add infrastructure for built-in functions to hint whether they
return by reference or not. It is NOT currently used for anything,
except for interface prototypes (you can use it to request that the
function that implements your prototype returns by reference or
doesn't return by reference).
For downwards compatibility - by default, interface prototypes are
agnostic as to whether the function that implements them returns
by reference or not. Use ZEND_BEGIN_ARG_INFO_EX() with
- Fix ArrayAccess::getOffset() to conduct additional checks.
If your getOffset() should work with multidimensional arrays - it
must return by reference.

# 805dfab8 19-Jan-2004 Marcus Boerger <helly@php.net>

Add zend_get_module_started() to quickly check whether a module is present
and its MINIT function has been called.

# 61fc2a92 12-Jan-2004 Marcus Boerger <helly@php.net>

Add missing macro
# by popular demand, more and more exts need this

# ccfc46b0 08-Jan-2004 foobar <sniper@php.net>

- Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?

# 15964bb3 28-Dec-2003 Marcus Boerger <helly@php.net>

Fix order of class_entry member initialization (needed for example for DOM)
# You need to completley rebuild PHP after this patch.

# 273c1933 22-Dec-2003 Wez Furlong <wez@php.net>

export these symbols for use by SPL as a shared extension

# 32927a9f 02-Dec-2003 Marcus Boerger <helly@php.net>

Free the zval container only if it should be freed and was not copied.

# 6344f662 29-Nov-2003 Marcus Boerger <helly@php.net>

This takes the address of a zval ptr

# c7d27ad9 29-Nov-2003 Marcus Boerger <helly@php.net>

Add macros to return values of other zvals.
This is needed because one cannot use REPLACE_ZVAL_VALUE with return_value.

# c21d5974 18-Nov-2003 Marcus Boerger <helly@php.net>

Add method alias macro

# 26bfe3f8 25-Oct-2003 Marcus Boerger <helly@php.net>

Add zend_make_callable() which allows to make zval's callable zval's.
At the moment this function only converts strings of the form class::method
to an array(class,method).

# 3c62b3b5 22-Oct-2003 Marcus Boerger <helly@php.net>

Expand Interface C API.
In short: zend_class_entry->interface_gets_implemented() allows to modify
the class entry of a class when an interface gets implemented.

# b0b82541 18-Oct-2003 Marcus Boerger <helly@php.net>

Fix class/iterator relationship & handling

# 25aa8b71 17-Oct-2003 Marcus Boerger <helly@php.net>

Added c-api for iterators
# After 4 Month work and endless discussions...

# 4073a084 15-Oct-2003 Marcus Boerger <helly@php.net>

Add oo support function zend_class_implements()

# 05152d38 05-Oct-2003 Shane Caraveo <shane@php.net>

this little piggy broke lots of things...eg. _function_check_flag in reflection api.

# be5cbf99 03-Oct-2003 Moriyoshi Koizumi <moriyoshi@php.net>

Ensure lval to have a *boolean* value.

# 7bbbd503 03-Sep-2003 Marcus Boerger <helly@php.net>

Fix handling of static properties initialized to arrays

# 047a574e 29-Aug-2003 Marcus Boerger <helly@php.net>

- Add zend_merge_properties() which is designed to serve *_fetch_object().
- Explain drawbacks of object_and_properties_init and zend_merge_properties.
# I guess we can live with the purity problem of potentially calling __set()
# of an object which wasn't already ctored.

# 19ec7a09 24-Aug-2003 Marcus Boerger <helly@php.net>

- Provide appropriate way to destroy internal zval's.
- Allow internal zval's of type string and disallow complex types.
- Define the default string for extensions at class level instead of ctor.

# cec053f7 24-Aug-2003 Marcus Boerger <helly@php.net>

Don't identify alias'ed functions

# eef1b7b1 24-Aug-2003 Marcus Boerger <helly@php.net>

One of PPP is needed, too

# 1c2512dd 24-Aug-2003 Marcus Boerger <helly@php.net>

- Add fn_flag ZEND_ACC_ALIAS
- Unify way of function_entry generation by new macro ZEND_FENTRY

# 38805f28 24-Aug-2003 Marcus Boerger <helly@php.net>

Add property read code and use that in default exception class

# baaa4c90 23-Aug-2003 Marcus Boerger <helly@php.net>

Internal classes can now have default properties.

# 717b5afe 17-Aug-2003 Marcus Boerger <helly@php.net>

Fix warnings

# c7d9be97 17-Aug-2003 Sascha Schumann <sas@php.net>

explicitly cast size_t to zend_uint to avoid warnings on 64 bit platforms.

# fe1a086d 16-Aug-2003 Marcus Boerger <helly@php.net>

Simplify abstract method declaration

# 92b4013e 05-Aug-2003 Zeev Suraski <zeev@php.net>

Try to put an end to the endless number of call_user_function variants.
zend_call_function() now takes a structure that should contain all of the
necessary information. If further information is necessary in the future,
then we'll be able to add it without having to introduce a new function.

As for caching - the 2nd, optional argument is a struct that can hold all
of the information that's necessary to invoke the function, including its
handler, scope and object it operates on (if any). Note that you may only
use a cache if the arguments you provide to zend_call_function() are
identical to the ones of the last call, except for the argument and return
value information.

The recently introduced fast_call_user_function() was removed

I fixed most of the places that used fast_call_user_function() to use caching
but there are still some that need to be fixed (XML and reflection)

# f8bbafd6 03-Aug-2003 Zeev Suraski <zeev@php.net>

ntroduce infrastructure for supplying information about arguments,

- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance

Both user and builtin functions share the same data structures.

To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:

ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
ZEND_ARG_OBJ_INFO(0, someone, Person, 1)

and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.

The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.

The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.

# 2fd4ffce 30-Jul-2003 Zeev Suraski <zeev@php.net>

Add exec_finished() callback for modules - this is the last place where the
modules may touch the symbol table reliably

# 0229aad0 21-Jul-2003 George Schlossnagle <gschlossnagle@php.net>

reverted at Andi's request. replaced with more generic wrapper.

# 13433852 07-Jul-2003 Zeev Suraski <zeev@php.net>

Rework zend_do_declare_property and related code into one code base

# daf3ac65 06-Jul-2003 George Schlossnagle <gschlossnagle@php.net>

add convenience functions or adding class properties. Ok'd for commit by Andi.

# f68c7ff2 10-Jun-2003 James Cox <imajes@php.net>

updating license information in the headers.

# 039c1743 04-Jun-2003 Stanislav Malyshev <stas@php.net>

rm namespace leftovers

# f7f5a5ea 02-Jun-2003 Stanislav Malyshev <stas@php.net>

MEGA-patch: namespaces are R.I.P.

# b1b8ed64 23-May-2003 Marcus Boerger <helly@php.net>

Revert to sizeof()

# 909eafc2 20-May-2003 Sterling Hughes <sterling@php.net>

add fast_call_user_function()

# cb71ac03 20-May-2003 Hartmut Holzgraefe <hholzgra@php.net>

C++ compile fixes

# 29a3586f 04-May-2003 Marcus Boerger <helly@php.net>

Allow functions in internal namespaces (for example factories)

# ad01495a 21-Apr-2003 Stanislav Malyshev <stas@php.net>

Change get_class() so that it returns qualified names for namespaced

*HEADS UP*: get_class_name() handler interface is changed, now it should
allocate the space it returns with emalloc, and the users free it. If
anyone has problems with it or has suggestions how to do it without this -
please tell.

Also: make function_exists() understand namespaces.

# e5f4c783 08-Apr-2003 Andrei Zmievski <andrei@php.net>

Rename zend_register_internal_class_in_ns() to a better, less filling,
but with the same great taste zend_register_internal_ns_class().

# 81482833 04-Apr-2003 Andrei Zmievski <andrei@php.net>

Introduce ZEND_ME() and ZEND_METHOD() macros. Use these for declaring
class methods to avoid name collisions.

# 6ed30594 04-Apr-2003 Stanislav Malyshev <stas@php.net>

Fix namespace issues

# 3d62a349 02-Apr-2003 Andrei Zmievski <andrei@php.net>

- Add zend_register_internal_namespace() API function.
- Add zend_register_internal_class_in_ns() API function.

# 3fc85282 26-Mar-2003 Sebastian Bergmann <sebastian@php.net>

Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry().

# a700180f 03-Mar-2003 Harald Radi <phanto@php.net>

commiting zend_disable_class patch for George:
disabled classes will be replaced by dummy classes
that print a warning upon instanciation

# a2bd043e 12-Feb-2003 Ilia Alshanetsky <iliaa@php.net>

Removed zend_get_module(), this function is not used by anything and more
importantly. it does not work. It tries to find data based on numeric keys
in hash table using string keys.

# 325f9edb 08-Feb-2003 Georg Richter <georg@php.net>

fixed zend_parse_method_param

# 0026239c 03-Feb-2003 Sebastian Bergmann <sebastian@php.net>

Build fix.

# c4528f82 02-Feb-2003 Harald Radi <phanto@php.net>

extend the parameter parsing API by two functions
for parsing method parameters with automatic
detection if the function was called as such or as
a class method (with a valid this ptr).
if called as a function the first parameter has to be
the object it is operating on, if called as a method
this is used.

#not yet testet, only commiting so that georg can
#continue working on ext/mysqli

# 333406bd 01-Feb-2003 foobar <sniper@php.net>

- Added some missing CVS $Id$ tags, headers and footers.

# eccc5368 14-Jan-2003 Stanislav Malyshev <stas@php.net>

Make add_property_ functions work via write_property handler

# 2ae8d124 12-Jan-2003 Stanislav Malyshev <stas@php.net>

Remove handle_property from here too

# ace55f32 09-Jan-2003 Zeev Suraski <zeev@php.net>

Unify and make it easy to add code into the broken-string error handler

# 2c5d4b8c 31-Dec-2002 Sebastian Bergmann <sebastian@php.net>

Bump year.

# e8214a33 23-Nov-2002 Andi Gutmans <andi@php.net>

- Commit Marcus' cleanup of abstract and static inheritance and improve
- error messages

# a35c61af 16-Sep-2002 Andrei Zmievski <andrei@php.net>


# 3738a6ed 09-Jun-2002 Harald Radi <phanto@php.net>

only check for an available class entry instead of
the std_object_handlers on some places

#some linuxtag work

# 0450ab94 20-May-2002 Zeev Suraski <zeev@php.net>

MFZE1 (Expose more C++ APIs)

# 7a067547 30-Apr-2002 Stanislav Malyshev <stas@php.net>

Make OBJCE return zend_class_entry*, also some cleanups

# 51e797f1 23-Apr-2002 Harald Radi <phanto@php.net>

some type cleanup work

# 6ac6cb10 22-Apr-2002 Harald Radi <phanto@php.net>

added get_class_entry callback handler to the
object handlers structure

# 6608f073 07-Feb-2002 Stanislav Malyshev <stas@php.net>

Mega-commit: Enter the new object model
Note: only standard Zend objects are working now. This is definitely going to
break custom objects like COM, Java, etc. - this will be fixed later.
Also, this may break other things that access objects' internals directly.

# 62dc854b 06-Jan-2002 Sebastian Bergmann <sebastian@php.net>

Happy New Year.

# 9b391a83 03-Jan-2002 Derick Rethans <derick@php.net>

- MFZE1 for exit fix, exposing current function name in error messages and
exposing zend_zval_type_name().

# 73b159e0 27-Dec-2001 Andi Gutmans <andi@php.net>

- Experimental support for destructors. We need to see if destructors
- will actually work well in the context of PHP so we should consider this
- as experimental. Possible problems might be that when the constructor is
- run PHP might not be in a stable state.

# 29ea3da2 26-Dec-2001 Andi Gutmans <andi@php.net>

- Pretty much finish _clone() support

# d863d52a 11-Dec-2001 Sebastian Bergmann <sebastian@php.net>

Update headers.

# 2eccd95c 03-Nov-2001 Andi Gutmans <andi@php.net>

- Add some initializations

# 01850714 12-Oct-2001 Sebastian Bergmann <sebastian@php.net>

MFZE1: Introduced extension version numbers (Stig)

# f5c59863 12-Aug-2001 Stanislav Malyshev <stas@php.net>

_FUNCTION is used in definition, so use _D

# 76a7a5bc 11-Aug-2001 Andi Gutmans <andi@php.net>

- More work on making objects work

# 4f6c95d1 11-Aug-2001 Zeev Suraski <zeev@php.net>


# 8b6f848c 10-Aug-2001 Andi Gutmans <andi@php.net>

- Merge from Engine 1

# 61edd1bf 10-Aug-2001 Andi Gutmans <andi@php.net>

- Merge from Engine 1 CVS

# 54e871a9 06-Aug-2001 Andi Gutmans <andi@php.net>

- Use Z_ macros

# fcc03510 05-Aug-2001 Zeev Suraski <zeev@php.net>


# d76cf1da 31-Jul-2001 Zeev Suraski <zeev@php.net>


# 4187439c 30-Jul-2001 Zeev Suraski <zeev@php.net>


# b5255495 30-Jul-2001 Zeev Suraski <zeev@php.net>

More TSRMLS_FETCH work, and get rid of redundant ParametersPassedByRef

# 3839af35 30-Jul-2001 Andrei Zmievski <andrei@php.net>

Let's be consisten and keep TSRMLS_DC declaration after num_args.

# 8ce8324e 30-Jul-2001 Zeev Suraski <zeev@php.net>

More TSRMLS_FETCH annihilation

# 11e5d2f2 30-Jul-2001 Zeev Suraski <zeev@php.net>

Get rid of more TSRMLS_FETCH's

# b5770382 30-Jul-2001 Zeev Suraski <zeev@php.net>

Avoid TSRMLS_FETCH()'s (still lots of work left)

# 2c254ba7 27-Jul-2001 Zeev Suraski <zeev@php.net>

Get rid of ELS_*(), and use TSRMLS_*() instead.
This patch is *bound* to break some files, as I must have had typos somewhere.
If you use any uncommon extension, please try to build it...

# 43ebb868 16-Jul-2001 Zeev Suraski <zeev@php.net>

Fix bug #10287 - avoid crashing under a bogus usage of list()

# 07ea0684 11-Jul-2001 Thies C. Arntzen <thies@php.net>


# bcddfd47 10-Jul-2001 Thies C. Arntzen <thies@php.net>

cleaned up the RETVAL_ RETURN_ and ZVAL_ macros

added check for \0 at end-of-string at some places. all strings in PHP
have to be terminated with \0 because 3th party libraries might not be

# 58f88057 09-Jul-2001 Andrei Zmievski <andrei@php.net>

Adding new parameter parsing API.

# 02af513c 19-Apr-2001 Andi Gutmans <andi@php.net>

- Patch from Jason Greene.
- Make it easier to write PHP function definitions in more than just one .c
file while accessing the same module globals.

# 13148b54 12-Mar-2001 Andrei Zmievski <andrei@php.net>

Improve zend_is_callable() to the point where it's actually useful.
Now it just needs to be invoked everywhere in PHP where a callback is

# 7080fa5b 26-Feb-2001 Andi Gutmans <andi@php.net>

- Rename modules.h to zend_modules.h

# d2c9e807 26-Feb-2001 Andi Gutmans <andi@php.net>

- Update copyright year

# 8fe03659 01-Feb-2001 Andrei Zmievski <andrei@php.net>

Added zend_is_callable() function that checks whether passed zval
represents a valid and exiting callable construct.

# 0611acb9 31-Jan-2001 Andi Gutmans <andi@php.net>

- Change unset() functions to null(). unset() is legacy

# 2f2d32fa 31-Jan-2001 Andi Gutmans <andi@php.net>

- Quick fix. I'm for changing these to add_property_null() as we've nuked
- unset.

# 57f99633 22-Jan-2001 Andrei Zmievski <andrei@php.net>

Make add_index_zval() available to the outside world.

# ef95a346 20-Jan-2001 Andi Gutmans <andi@php.net>

- Patch from Sterling. Add API calls to add zval's as array indeces/
object properties. Add _ex functions which take the string length as an
argument for better performance.

# 0a3761e2 19-Jan-2001 Andi Gutmans <andi@php.net>

- For Sterling. I wonder if not all of the API functions should take the
- key_length as a parameter in order to save that strlen().

# be895bcb 13-Dec-2000 Zeev Suraski <zeev@php.net>

Fix call_user_function() with objects - it could leak under certain circumstances

# 1f793fd0 17-Aug-2000 Stanislav Malyshev <stas@php.net>


# b982307d 02-Jul-2000 Sascha Schumann <sas@php.net>

Change header protection macros to conform to standard.

Draft 3 of IEEE 1003.1 200x, "2.2 The Compilation Environment"

All identifiers that begin with an underscore and either an uppercase
letter or another underscore are always reserved for any use by the

# 3cda6a75 17-Jun-2000 Zeev Suraski <zeev@php.net>

Allow the symbol_table to be passed to call_user_function_ex()

# df74f1df 13-Jun-2000 Sascha Schumann <sas@php.net>

Add optional support for C0x inline semantics.

These are enabled by specifying `--enable-c0x-inline' on the command
line. We might add an autoconf check for this particular feature

# fce92e3c 12-Jun-2000 Zeev Suraski <zeev@php.net>

Avoid using E_CORE_* errorlevels in any place which is not in the global startup sequence

# eb0e6946 09-Jun-2000 Andi Gutmans <andi@php.net>

- Andrei, this is for you!
- Add zend_register_internal_class_ex() which allows you to specify a
- parent to inherit from. You can either specify the parent directly or via
- its name.

# 6ce07a85 09-Jun-2000 Andi Gutmans <andi@php.net>

- Change register_internal_class to zend_register_internal_class for
- consistency.
- Andrei: I'm still thinking about the _ex you want me to implement

# bc7abb33 29-May-2000 Zeev Suraski <zeev@php.net>

Allow disabling of functions for security reasons

# 0b6d923b 02-May-2000 Sascha Schumann <sas@php.net>

Add ZEND_GET_MODULE(name). This is a short-cut for the common
get_module function.

# 131d9cb2 01-Apr-2000 Zeev Suraski <zeev@php.net>

*** empty log message ***

# 0d21940d 01-Apr-2000 Zeev Suraski <zeev@php.net>

Generalize some common thread-safety stuff

# e9d126a7 29-Mar-2000 Andi Gutmans <andi@php.net>

- Make sure zend_API.h has Zend'ish versions of the ZEND macros so that
Zend'ish modules don't need to mix PHP & Zend notation.

# 5dba4774 25-Mar-2000 Zeev Suraski <zeev@php.net>

- Some header dependencies cleanup
- Generalize zval_print() and zval_print_r()

# bf18f876 21-Mar-2000 Andi Gutmans <andi@php.net>

- Move #defines

# 5e55e47f 06-Mar-2000 Zeev Suraski <zeev@php.net>

It's official now...

# 0ac9536d 19-Feb-2000 Zeev Suraski <zeev@php.net>

(c) patch

# ceba50b6 19-Feb-2000 Zeev Suraski <zeev@php.net>

- Fix a nasty bug in the hash, introduced in the recent migration to macros
- Make array_init() and friends trackable

# f77e6a44 19-Feb-2000 Zeev Suraski <zeev@php.net>

Generalize macros

# 80bdd19e 11-Feb-2000 Zeev Suraski <zeev@php.net>

Fine tune Andi's patch

# bc5c9d8d 10-Feb-2000 Andi Gutmans <andi@php.net>

- Finally beautify those WIN32|WINNT checks

# e0628436 03-Feb-2000 Andrei Zmievski <andrei@php.net>

*** empty log message ***

# b995d2cc 01-Feb-2000 Andrei Zmievski <andrei@php.net>

Added add_property_unset() and add_property_bool().

# fb6a1b8b 19-Jan-2000 Thies C. Arntzen <thies@php.net>

RETURN_NULL -> RETURN_NULL() // we don't want macros without an argumnet

# cd377b64 18-Jan-2000 Thies C. Arntzen <thies@php.net>

RETURN_NULL & RETVAL_NULL don't need ().

# af22085c 04-Jan-2000 Thies C. Arntzen <thies@php.net>

added ZVAL_*() macros.

# bdefd5da 04-Jan-2000 Andi Gutmans <andi@php.net>

- Change IS_UNSET -> IS_NULL

# bc6811ec 02-Jan-2000 Thies C. Arntzen <thies@php.net>

renamed RET???_UNSET -> RET???_NULL

# f2d703e9 31-Dec-1999 Zeev Suraski <zeev@php.net>

- Nuke undefined_variable_string
- Introduce IS_UNSET

# 546af707 28-Dec-1999 Thies C. Arntzen <thies@php.net>

new constant: SQL_NULL

# b7a5b3c3 27-Dec-1999 Zeev Suraski <zeev@php.net>

- Generalize the fast cache mechanism
- Add the HashTable struct to the fast cache mechanism

# aec33aa7 26-Dec-1999 Zeev Suraski <zeev@php.net>

Introduce a zval-specific cache - 5-15% speed improvement

# 235386b2 26-Dec-1999 Zeev Suraski <zeev@php.net>

Change ALLOC_ZVAL() semantics

# 62b2087a 24-Dec-1999 Andi Gutmans <andi@php.net>

- Create two new macro's. ALLOC_ZVAL() and FREE_ZVAL(z) and make Zend use

# 1fe57c95 22-Dec-1999 Zeev Suraski <zeev@php.net>

- Fix function_exists()

# 223c674c 19-Dec-1999 Zeev Suraski <zeev@php.net>

- Made things work again (Thies, everybody - please check the latest CVS and see if you're
still getting any problems)
- Changed the interface of call_user_function_ex() to support returning of references

# a1ad2872 18-Dec-1999 Zeev Suraski <zeev@php.net>

- The tree compiles again

# cd7d5546 18-Dec-1999 Zeev Suraski <zeev@php.net>

- Introduce ZEND_NUM_ARGS(), to replace ARG_COUNT(ht)
- Rename getParameters() and friends for consistency and namespace cleanliness

# f962a35d 04-Dec-1999 Andrei Zmievski <andrei@php.net>

Added zend_set_hash_symbol() function.

# 0a276c2f 04-Dec-1999 Thies C. Arntzen <thies@php.net>

backed out last change after andi decided on a different approach.

# 4c8259b5 04-Dec-1999 Andi Gutmans <andi@php.net>

- Call ZEND_SET_SYMBOL_WITH_LENGTH() with refcount 1 from the standard

# 502bb337 04-Dec-1999 Thies C. Arntzen <thies@php.net>

the new SET_VAR_* macros forgot to set the refcount!

# e3450661 03-Dec-1999 Andrei Zmievski <andrei@php.net>

*** empty log message ***

# fec413c5 03-Dec-1999 Andrei Zmievski <andrei@php.net>


# c34560b5 03-Dec-1999 Andi Gutmans <andi@php.net>

- Remove _EX and make it the old _LENGTH

# 2f5efbde 02-Dec-1999 Andi Gutmans <andi@php.net>

- Add _EX macro for Andrei

# 2ddc4fe4 01-Dec-1999 Zeev Suraski <zeev@php.net>

Make it possible to explicitly set refcount in ZEND_SET_SYMBOL_WITH_LENGTH(), part 2

# 158088ca 01-Dec-1999 Zeev Suraski <zeev@php.net>

Allow to set the reference count explicitly for ZEND_SET_SYMBOL_WITH_LENGTH()

# 6d988ec6 03-Nov-1999 Andi Gutmans <andi@php.net>

- Add support for BYREF_FORCE_REST

# 52a30fd2 18-Oct-1999 Andrei Zmievski <andrei@php.net>

Be safe, use ().

# 6847fefa 04-Oct-1999 Thies C. Arntzen <thies@php.net>

added add_*_resource() and add_*_bool() functions

# 86357a9c 01-Oct-1999 Andi Gutmans <andi@php.net>

- Move is_ref back to being an unsigned char and not a bit field.

# 4dd47ffb 01-Oct-1999 Andi Gutmans <andi@php.net>

- Remove locking support completely

# 446e5d0f 29-Sep-1999 Thies C. Arntzen <thies@php.net>

added add_property_resource

# 06a18f16 20-Sep-1999 Andi Gutmans <andi@php.net>

- Add some internal functions to Zend

# 6393ab14 06-Aug-1999 Zeev Suraski <zeev@php.net>

Now that's an annoying bug.

# f95edc01 06-Aug-1999 Zeev Suraski <zeev@php.net>

Introduce call_user_func_ex()

# 01c2701a 31-Jul-1999 Zeev Suraski <zeev@php.net>

These aren't necessary

# 620d0134 30-Jul-1999 Zeev Suraski <zeev@php.net>

Support symbols in any symbol table, not just the active one

# 48ffdd79 30-Jul-1999 Zeev Suraski <zeev@php.net>

* Setting variables in the global scope wasn't handling is_ref's properly

# 8d1de13a 19-Jul-1999 Zeev Suraski <zeev@php.net>

0.91 update

# b5b11177 16-Jul-1999 Zeev Suraski <zeev@php.net>

License update

# 2a6da781 09-Jul-1999 Zeev Suraski <zeev@php.net>

Step 4:
Move to a 7-bit counter (not fully implemented yet)

# 5f62c347 09-Jul-1999 Zeev Suraski <zeev@php.net>

Step 2:
Rename is_ref to EA

# eb5c6da5 05-Jul-1999 Thies C. Arntzen <thies@php.net>


# 9108abc2 04-Jun-1999 Zeev Suraski <zeev@php.net>

Minor updates (mostly __declspec() stuff)

# a3a60dd4 04-Jun-1999 Thies C. Arntzen <thies@php.net>

added is_ref=0 and refcount=1 to SET_VAR_* macros

# 741b8161 28-May-1999 Zeev Suraski <zeev@php.net>

* Support getThis() for internal functions.
* Fix 'new object or die' and AiCount issue thoroughly (earlier fix didn't
work with the optimizer).
* Add new macros for standardized definition of classes.
* Only report AiCount problems if shutdown was not silent.

# 1f985ede 27-May-1999 Zeev Suraski <zeev@php.net>

Moved all #define's for SET_ and RETURN_ to zend_API.h

# bfbe8618 09-May-1999 Zeev Suraski <zeev@php.net>

Almost forgot to commit those

# 942f4092 21-Apr-1999 Zeev Suraski <zeev@php.net>

* Change the thread safe project to create a C++ scanner.
* Add in a slightly modified skeleton file (only a couple of #if's for #include's
that we dont have in Windows)

It does NOT compile or work yet :)

# 7a87fcbb 21-Apr-1999 Zeev Suraski <zeev@php.net>

Thread safety patch. We're still not quite there but it compiles again, and
more logic has been implemented.

# 9deab411 19-Apr-1999 Andi Gutmans <andi@php.net>

Add a couple of ZEND_API's

# 342c6e0b 18-Apr-1999 Zeev Suraski <zeev@php.net>

* updated alloc_persist to use critical sections
* changed extension shutdown to two-phase
* updated dependencies
* PR support (don't remember if there was any really)

# 39f9487e 14-Apr-1999 Andi Gutmans <andi@php.net>

-Tiny patches

# 39a7f4c3 12-Apr-1999 Zeev Suraski <zeev@php.net>

This patch is a go. Not fully optimized yet, but working properly.
Prepatch tagged as BEFORE_STACK_PATCH.

# 573b4602 07-Apr-1999 Andi Gutmans <andi@php.net>

Zend Library