History log of /PHP-7.3/Zend/zend_object_handlers.c
Revision Date Author Comments
# 358379be 08-Aug-2019 Dmitry Stogov <dmitry@zend.com>

Fixed bug #78379 (Cast to object confuses GC, causes crash)


# f78e6814 25-Jan-2019 Nikita Popov <nikita.ppv@gmail.com>

Fixed bug #77498

I've renamed the function to the same name as the exported symbol
in master.


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

Future-proof email addresses


# 902d39a3 13-Oct-2018 Peter Kokot <peterkokot@gmail.com>

Trim trailing whitespace in source code files


# 7f6387b5 13-Oct-2018 Peter Kokot <peterkokot@gmail.com>

Trim trailing whitespace in source code files


# 655a99d1 11-Sep-2018 Dmitry Stogov <dmitry@zend.com>

Fixed bug #76869 (Incorrect bypassing protected method accessibilty check).


# a26a107a 11-Aug-2018 Sara Golemon <pollita@php.net>

Enforce ordering of property compare in object comparisons


# 8d95f561 22-Aug-2018 Dmitry Stogov <dmitry@zend.com>

Stop using zend_function->reserved[] space.


# 642bb9f3 01-Aug-2018 Xinchen Hui <laruence@gmail.com>

Unused var


# 3ccd9854 31-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Improved method visibility checks


# 57527455 30-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Simplified property name to string conversion


# c42f0ba4 30-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Removed useless IS_UNDEF checks


# 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
contents.

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


# d775fe33 24-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Better name: ZEND_PROPERTY_HAS => ZEND_PROPERTY_NOT_EMPTY


# 1638a6e1 23-Jul-2018 Xinchen Hui <laruence@gmail.com>

Give a meaningful name


# 412dd75e 18-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Perform checks for propertis started with '\\0' only for dynamic properties


# 4182b085 10-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Avoid copying


# 7da042cb 09-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Use ZVAL_COPY_DEREF()


# 0db8c974 09-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Avoid useless copying


# dbb9867b 09-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Avoid useless checks for public functions


# 67b4c337 08-Jul-2018 Dmitry Stogov <dmitry@zend.com>

Uze ZVAL_COPY_DEREF() instead of ZVAL_DEREF() and ZVAL_COPY()


# af341213 03-Jul-2018 Dmitry Stogov <dmitry@zend.com>

se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0)


# 6dc0cd86 26-Jun-2018 Dmitry Stogov <dmitry@zend.com>

Fixed ZTS race condition (zend_class_entry->ce_flags of internal classes must not be modified, because internal class enties are shared between threads)


# 7f67513c 25-Jun-2018 Dmitry Stogov <dmitry@zend.com>

Lazy function copying from op_cache SHM into process memory


# 2543e61a 21-Jun-2018 Nikita Popov <nikita.ppv@gmail.com>

Fixed bug #76509

In PHP static properties are shared between inheriting classes,
unless they are explicitly overwritten. However, because this
functionality was implemented using reference, it was possible
to break the implementation by reassigning the static property
reference.

This is fixed by switching the implementation from using references
to using INDIRECTs, which cannot be affected by userland code.


# 34e58a64 22-Jun-2018 Dmitry Stogov <dmitry@zend.com>

Reduced overhead of magic method calls (__get/__set/__unset/__isset/__dectructor/__clone).


# 4418d61c 21-Jun-2018 Dmitry Stogov <dmitry@zend.com>

Avoid reusing zend_function.common.prototype for magic things (use reserved fields instead).


# f2b4ec4b 31-May-2018 Dmitry Stogov <dmitry@zend.com>

Export standard object handlers, to avoid indirect access


# 5eb1f92f 28-May-2018 Dmitry Stogov <dmitry@zend.com>

Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.


# a795bd82 22-Mar-2018 Dmitry Stogov <dmitry@zend.com>

Optimize zend_hash_real_init()


# d7f2dc4e 21-Mar-2018 Dmitry Stogov <dmitry@zend.com>

Improve HashTable iterators handling:
- Avoid iterators check/update on each HashTable update opration
- Keep position equal (or above) nNumUsed instead of HT_INVALID_IDX
- Fixed iterators handling in array_unshift()


# 1af60a2a 14-Mar-2018 Dmitry Stogov <dmitry@zend.com>

Keep initialized object_handlers structures in read-only memory.


# 58880e3f 27-Feb-2018 Dmitry Stogov <dmitry@zend.com>

Get rid of IS_OBJ_USE_GUARDS and IS_OBJ_HAS_GUARDS flags


# 5e8aa036 22-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Access extra data stored in zval through macros


# b3e22da7 22-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Use OBJ_FLAGS() macro to access object flags (even if they are currently stored together with GC_FLAGS)


# 6634d5e3 22-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Use HT_FLAGS() macro


# c4fa7345 17-Jan-2018 Dmitry Stogov <dmitry@zend.com>

Removed useless separation


# 64002648 31-Dec-2017 Gabriel Caruso <carusogabriel34@gmail.com>

Trailing whitespaces

Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>


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

year++


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

year++


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

year++


# b2b2b437 25-Dec-2017 Nikita Popov <nikita.ppv@gmail.com>

Add _IS_NUMBER as cast_object() target type

convert_scalar_to_number() will now call cast_object() with an
_IS_NUMBER argument, in which case the cast handler should return
either an integer or floating point number, whichever is more
appropriate.

Previously convert_scalar_to_number() unconditionally converted
objects to integers instead.

Fixes bug #53033.
Fixes bug #54973.
Fixes bug #73108.


# 182317f6 25-Dec-2017 Nikita Popov <nikita.ppv@gmail.com>

Remove unnecessary type check


# 2667ddc4 25-Dec-2017 Nikita Popov <nikita.ppv@gmail.com>

Remove unnecessary readobj==writeobj checks

This can no longer be the case since PHP 7. The writeobj must
always point to a different zval.


# 4dfbfe93 18-Dec-2017 Xinchen Hui <laruence@gmail.com>

Use cheaper API


# 6a9d2b21 07-Dec-2017 Dmitry Stogov <dmitry@zend.com>

Cleanup type conversion


# 74c84cd7 04-Dec-2017 Dmitry Stogov <dmitry@zend.com>

Use zend_string_equal*() API for zend_string equality check instead of direct memcmp() usage.


# 0eb262ea 04-Dec-2017 Anatol Belski <ab@php.net>

Use dtor unconditionally in error case


# d4dee4a6 29-Nov-2017 Xinchen Hui <laruence@gmail.com>

Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26)

(cherry picked from commit 3b9ba7b6bd9e24bdbeca8e8e3f24cee2fccc51d8)


# 3b9ba7b6 29-Nov-2017 Xinchen Hui <laruence@gmail.com>

Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26)


# ccc12b82 16-Nov-2017 Dmitry Stogov <dmitry@zend.com>

Avoid unnecessary reference-counting on strings.


# 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.


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

Removed useless reallocations


# 98eee907 26-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Fixed indirect modification of magic ArrayAccess method arguments


# 0772b32e 26-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Restore object copying on magic method calls (It was removed in master only).


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

Fixed indirect modification of magic method arguments.


# d2047503 26-Oct-2017 Xinchen Hui <laruence@gmail.com>

Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS)


# 6a034be2 25-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Fixed signed/unsigned comparisons


# 59a7944b 24-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Made run_time_cache to keep "offset" to dynamic properties Buckets (instead of index).


# 917dfe64 23-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Removed useless reference-counting and copying


# 193adbdf 23-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Use run-time cache to keep position of dynamic properties in HashTable to access them without hash lookup.


# f18638ca 06-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Fixed incorrect recursion detection


# cb9d81ef 05-Oct-2017 Dmitry Stogov <dmitry@zend.com>

Refactored recursion pretection


# 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.


# 0fb05f14 18-Sep-2017 Dmitry Stogov <dmitry@zend.com>

Property access micro-optimization. (ZEND_WRONG_PROPERTY_OFFSET and ZEND_DYNAMIC_PROPERTY_OFFSET are hidden, use one comparison instead of two on fast paths. "Negative" offsets are reserved for future optimizations).


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

further sync for vim mode lines


# fe46a7da 02-Apr-2017 Nikita Popov <nikita.ppv@gmail.com>

Fixed bug #74340


# c6982995 04-Mar-2017 Anatol Belski <ab@php.net>

Interned strings unification for TS/NTS

Hereby, interned strings are supported in thread safe PHP. The patch
implements two types of interned strings

- interning per process, strings are not freed till process end
- interning per request, strings are freed at request end

There is no runtime interning.

With Opcache, all the permanent iterned strings are copied into SHM on
startup, additional copying into SHM might happen on demand.


# 1a84ecac 03-Feb-2017 Sara Golemon <pollita@php.net>

Remove unused variable


# eac0b2e9 23-Jan-2017 Dmitry Stogov <dmitry@zend.com>

Check for old style constructor only if method is not found


# 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


# 1cd566e1 01-Dec-2016 Dmitry Stogov <dmitry@zend.com>

Workaround for GCC-4.9.2 bug


# 3e9bb03a 28-Nov-2016 Dmitry Stogov <dmitry@zend.com>

Removed IS_TYPE_IMMUTABLE (it's the same as COPYABLE & !REFCOUED)


# cdb7aafc 20-Nov-2016 Tyson Andre <tysonandre775@hotmail.com>

Fix memory leak(null coalescing operator with Spl hash)

The SEPARATE_ARG_IF_REF macro increased the refcount of the object passed as a
key.
However, when the key did not exist in the ArrayAccess implementation,
the code returned early without trying to decrement the refcount.

Add a test of `??` succeeding+failing on a SplObjectStorage instance.


# 0806bb39 29-Oct-2016 Nikita Popov <nikic@php.net>

Cleanup zend_std_call_setter

__set() does not use the return value to indicate success, and at
this point I doubt it ever will.


# 6091873d 17-Oct-2016 Joe Watkins <krakjoe@php.net>

Revert "Fixed bug #73067 (__debugInfo crashes when throwing an exception)"

This reverts commit 2d8ab51576695630a7471ff829cc5ea10becdc0f.


# 8c9f639a 11-Oct-2016 Anatol Belski <ab@php.net>

Revert "Fixed bug #73067 (__debugInfo crashes when throwing an exception)"

This reverts commit 2d8ab51576695630a7471ff829cc5ea10becdc0f.


# 2d8ab515 13-Sep-2016 Xinchen Hui <laruence@gmail.com>

Fixed bug #73067 (__debugInfo crashes when throwing an exception)


# e03480bf 12-Aug-2016 Xinchen Hui <laruence@gmail.com>

Fixed bug #72813 (Segfault with __get returned by ref)

This should be safe change, as we don't dereference value and member
after calling setter/getter.

And compare to adding unref codes, this is much cheaper.


# a9512af8 15-Jun-2016 Dmitry Stogov <dmitry@zend.com>

Implemented RFC: Fix inconsistent behavior of $this variable
Squashed commit of the following:

commit bdd3b6895c3ce3eacfcf7d4bf4feb8dfa61801fd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jun 16 00:19:42 2016 +0300

Fixed GOTO VM

commit 2f1d7c8b89ce821086d357cf65f629f040a85c03
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 21:01:57 2016 +0300

Removed unused variable

commit cf749c42b0b1919f70b1e7d6dcbfff76899506af
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 19:06:16 2016 +0300

Protection from $this reassign through mb_parse_str()

commit 59a9a6c83c66b666971e57f1173b33a422166efd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:14:50 2016 +0300

Added type inference rule for FETCH_THIS opcode

commit 73f8d14a856f14a461430b3c7534ab2ce870cbf6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:11:18 2016 +0300

Restored PHP-7 behavior of isset($this->foo).
It throws exception if not in object context.
Removed useless opcode handlers.

commit fa0881381e8ae97e022ae5d1ec0851c952f33c82
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 31 12:25:47 2016 +0300

Changed "Notice: Undefined variable: this" into "Exception: Using $this when not in object context".

commit e32cc528c0f2c97963d8ec83eff0269f1f45af18
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 02:02:43 2016 +0300

Throw exception on attempt to re-assign $this through extract() and parse_str().

commit 41f1531b52113ec8a4c208aa6b9ef50f1386bb3f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon May 23 22:18:36 2016 +0300

Fixed inconsistent $this behavior


# 674297c7 23-Mar-2016 Nikita Popov <nikic@php.net>

Allow empty property names

Conflicts:
Zend/zend_compile.c


# e9c3f9fc 13-May-2016 Dmitry Stogov <dmitry@zend.com>

Fixed bug #72177 (Scope issue in __destruct after ReflectionProperty::setValue())


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

Intern some known (and offten used) strings.


# 29079f26 07-May-2016 Xinchen Hui <laruence@gmail.com>

Strlen cleanup (additions for previous one fix)

Probably compilers will do similar optimization


# c19cb70d 06-May-2016 Dmitry Stogov <dmitry@zend.com>

Revert "Refactor zval cleanup into single function"

This reverts commit bac6fdb0c52c924e726c5a78de8858bf27b6586b.


# bac6fdb0 05-May-2016 Bob Weinand <bobwei9@hotmail.com>

Refactor zval cleanup into single function

Also use zval_ptr_dtor_nogc() everywhere in Zend in favor of zval_dtor()


# 9ad40d8d 30-Apr-2016 Joe Watkins <krakjoe@php.net>

This function needs to be exported for extensions that implement complex zend objects


# 357ee430 28-Apr-2016 Nikita Popov <nikic@php.net>

Fix leak in guards patch


# 6499162f 28-Apr-2016 Dmitry Stogov <dmitry@zend.com>

- get rid of EG(scope). zend_get_executed_scope() should be used instead.
- ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter.


# e88c71d3 26-Apr-2016 Dmitry Stogov <dmitry@zend.com>

Optimize property guards for the most usual case with only one acive guard.


# 373da7aa 26-Mar-2016 Joe Watkins <krakjoe@php.net>

fix standard object handler for properties when type == BP_VAR_IS


# 6f289564 26-Mar-2016 Joe Watkins <krakjoe@php.net>

fix standard object handler for properties when type == BP_VAR_IS


# a175aa9d 20-Mar-2016 Nikita Popov <nikic@php.net>

Fixed bug #71731

The read_dimension() handler in BP_VAR_IS mode will now call
offsetExists() before caling offsetGet(). This has always been a
problem, however recently the issue has been exacerbated, because
the null-coalesce operator ?? makes it visible for non-nested
array accesses.

Also fixes #69659.


# 1f6d27d3 19-Mar-2016 Nikita Popov <nikic@php.net>

Fix use of UNDEF instead of NULL in read_dimension


# 6039d2d9 28-Jan-2016 Dmitry Stogov <dmitry@zend.com>

Fixed bug #71474 (Crash because of VM stack corruption on Magento2).


# 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


# 9397f527 29-Nov-2015 Xinchen Hui <laruence@gmail.com>

Fixed Bug #70967 (Weird error handling for __toString when Error is thrown)


# 2d8d97ce 07-Nov-2015 Xinchen Hui <laruence@gmail.com>

Fixed bug #70873 (Regression on private static properties access)


# c25e81ab 01-Oct-2015 Nikita Popov <nikic@php.net>

Remove dead assignment in get_property_guard


# 927d68db 14-Sep-2015 Dmitry Stogov <dmitry@zend.com>

Avoid reallocations


# 66643f61 10-Sep-2015 Xinchen Hui <laruence@gmail.com>

Use efree_size


# 7a0e68b9 10-Sep-2015 Xinchen Hui <laruence@gmail.com>

Unexpected


# 6852f9cd 10-Sep-2015 Xinchen Hui <laruence@gmail.com>

cleanup tmp_member handling


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

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


# 25f9e255 26-Aug-2015 Dmitry Stogov <dmitry@zend.com>

Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data)


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

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


# 5df893ce 07-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Use NULL where possible for exception class

Matches usage of zend_throw_exception()/zend_throw_exception_ex().


# 22c38b2e 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Remove need to pass error level


# 5a99c07e 03-Jul-2015 Aaron Piotrowski <aaron@trowski.com>

Enable throwing custom exceptions from errors


# 7aa76271 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


# 4a6e1345 16-Jun-2015 Dmitry Stogov <dmitry@zend.com>

Use COW to prevent unnecessary duplication of dynamic propertyes of stdClass (and other classes without predefined properties).


# 5d3cf577 11-Jun-2015 Nikita Popov <nikic@php.net>

Make convert_to_* safe with rc>1

This only involves switching zval_dtor to zval_ptr_dtor for arrays
and making the convert_to_object for arrays a bit more generic.

All the other changes outside zend_operators.c just make use of
this new ability (use COPY instead of DUP).

What's still missing: Proper references handling. I've seen many
convert_to* calls that will break when a reference is used.

Also fixes bug #69788.


# 6bcf121f 03-Jun-2015 Dmitry Stogov <dmitry@zend.com>

micro-optimization


# ca64b41b 21-May-2015 Dmitry Stogov <dmitry@zend.com>

Fixed zend_update_class_constants() to always resolve all constants.
Call zend_update_class_constants() only when necessary.


# 2a9f9860 06-May-2015 Dmitry Stogov <dmitry@zend.com>

Fixed bug #69534 (Cycle leaks through declared properties on internal classes)


# 388c2cbd 28-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Micro optimizations


# 49cf7c5d 22-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Don't propogate "fake" EX(called_scope) and EX(This) into each internal function.
They need quite seldom and it's cheaper to get them from corresponfing upper stack frame.


# 15a5f61c 22-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Use fast method to check if first arguments should be passed by reference (not tested onbig endian).


# cefad04f 11-Apr-2015 Xinchen Hui <laruence@php.net>

Fixed bug #69427 (Segfault on magic method __call of private method in superclass)


# 5e8133f4 10-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Squashed commit of the following:

commit 2399fc84c541da9c2176c5b7f6dd039a3c84dc64
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:38:08 2015 +0300

Removed useless assignment

commit 796b6338174348eee0d74a67706d77b7ce1a60c3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:35:31 2015 +0300

Fixed execution with overriden zend_execute_ex()

commit 4a9fb125aa999059f8bc42ebb6ee573c7866b35b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 02:02:58 2015 +0300

Fixed executor without global registers

commit d456c30e00589ccda35a4b57ae903ef2d3c07d95
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 01:30:35 2015 +0300

Restored original behavior for tests/classes/__call_004.phpt

commit 479646d37fef050536f1afb12b082618f1f1a3d0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:32:17 2015 +0300

Fixed test. We don't keep stack frame for fake function anymore.

commit 9ae61e33e24b2c811d4ab1ca4ab22847c64a780e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:30:09 2015 +0300

Use ZEND_ACC_CALL_VIA_TRAMPOLINE instead of ZEND_ACC_CALL_VIA_HANDLER. Keep ZEND_ACC_CALL_VIA_HANDLER for compatibility.

commit 0a8403a2a0c27aa3db271774f8559739a6b8400e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:05:43 2015 +0300

Rename PROXY_CALL into CALL_TRAMPLINE.
Generalize API to allow reuse EG(trampline) for other purposes.

commit 4ea0525c10554e36185a0b8b6303106813b6a1c2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 23:22:25 2015 +0300

Reuse EG(proxy_call_op) for all proxy. Move proxy related functions from zend_objects_API to zend_object_handlers.

commit 529bf737ca388ad56fb4ae20ccb81e6276f25ec0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 21:42:23 2015 +0300

Accurate use of proxy_call

commit 5d62837d5ba3855743fe1981786ebd65d9da0b63
Merge: 83e749f 690843f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:40:00 2015 +0300

Merge branch 'master' into opcodefy-call

* master:
Fixed GOTO executor
Fixed typo
Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of itterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.

commit 83e749ff3b6623e39b236a72e9b907d5b788ae5e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:39:10 2015 +0300

Improved ZEND_PROXY_CALL

commit 0c829afc534e6d5ff27a0dea3a4815da303bd1ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 15:14:49 2015 +0300

Reverted white-space changes

commit df65144488afa3e9020d75e1ada5529b138afc5a
Merge: 5fd2f97 97756d9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 14:37:07 2015 +0300

Merge branch 'opcodefy-call' of github.com:laruence/php-src into opcodefy-call

* 'opcodefy-call' of github.com:laruence/php-src:
Ready for PR
Fixed static call
Improve performance by using prealloated op_arrray
Respect called_scope
Support internal magical __call/__callStatic
opcode-fy magical __callStatic
Opcode-fy magical __call

commit 97756d9190e07a072a7b48135304dc25a964845f
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:07:59 2015 +0800

Ready for PR

commit 74f993084627061e783645a866390b68e2981698
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:03:00 2015 +0800

Fixed static call

commit ec1d9eb592db0c3b7b0e3d21e7f445ed8bccfd4d
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 18:23:17 2015 +0800

Improve performance by using prealloated op_arrray

commit df7fbbf949c99f2c5ae3da2a1199235651c7cc82
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 15:10:02 2015 +0800

Respect called_scope

commit 769d1d59fb48b6f7f93d7412eefbf26135fa3e59
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 12:19:23 2015 +0800

Support internal magical __call/__callStatic

commit a980fedd5b0e0683713dd4f6eaad62adf4b4732f
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 18:35:41 2015 +0800

opcode-fy magical __callStatic

commit 73855f7d53baa2efc2b8a88314f51c784c81b59d
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 14:21:55 2015 +0800

Opcode-fy magical __call


# adcf0c60 02-Apr-2015 Dmitry Stogov <dmitry@zend.com>

Improved reference counting


# 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.


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

Use zend_error_noreturn() for fatal errors


# 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.


# 2bf8f29d 31-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Converted most object handlers fatal errors into EngineExceptions


# 685ab95a 31-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Convert fatal errors on improper access to static properties into EngineExceptions


# 95b4aa52 07-Mar-2015 Xinchen Hui <laruence@php.net>

Fixed zend_hash_append result duplicated key

actually, maybe we should precalculate before calling zend_hash_appen
when we are not sure whether the hash is caclculated(prop_info->name).

but it looks a little ugly.. (also for zend_string_copy)


# 9f9ffdd0 06-Mar-2015 Dmitry Stogov <dmitry@zend.com>

Use fast zend_hash_append() API


# f25419f8 21-Feb-2015 Xinchen Hui <laruence@php.net>

Only do this in debug build


# e10e151e 13-Feb-2015 Dmitry Stogov <dmitry@zend.com>

Merged zend_array and HashTable into the single data structure.
Now each HashTable is also zend_array, so it's refcounted and may be a subject for Copy on Write
zend_array_dup() was changed to allocate and return HashTable, instead of taking preallocated HashTable as argument.


# 35aea97e 11-Feb-2015 Dmitry Stogov <dmitry@zend.com>

Fixed bug #69025 (Invalid read of size 4 when calling __callStatic)


# 9e70d767 04-Feb-2015 Dmitry Stogov <dmitry@zend.com>

Move zend_object->guards into additional slot of zend_object->properties_table[]. As result size of objects without __get/__set/__unset/__isset magic methods is reduced.


# 1a60175e 31-Jan-2015 Xinchen Hui <laruence@php.net>

Fixed Magic getter bug tickled by Moodle


# b46894d1 15-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Partially revert 3477135cd1024c897dc070c37ddae411839b6e7e


# 1c5e9146 15-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Fixed build without alloca()


# 3477135c 15-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Avoid usage of uninitialized data


# 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


# 5a24ac88 13-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Improved access to object properties (cache property offset instead of pointer to property_info).


# 7e93de10 13-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Handle run-time cache for static properties directly in executor.
Removed cache_slot argument in zend_std_get_static_property() and zend_std_unset_static_property().


# dbe66fb2 13-Jan-2015 Dmitry Stogov <dmitry@zend.com>

Improved access to static property. Now we cache pointers to zval instead of pointers to property_info.


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

trailing whitespace removal


# c42ac095 24-Dec-2014 Dmitry Stogov <dmitry@zend.com>

Added new API function 'zend_string* zend_string_tolower(zend_string*)'.
It simplifies code and avoids unnecessary allocation and copying if string is already in lower case.


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

Micro optimization


# 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


# 42d33a9f 24-Nov-2014 Dmitry Stogov <dmitry@zend.com>

Reuse zend_assign_to_variable() in zend_std_write_property()


# 4b953534 19-Nov-2014 Veres Lajos <vlajos@gmail.com>

typo fixes - https://github.com/vlajos/misspell_fixer


# 53a437d3 06-Nov-2014 Dmitry Stogov <dmitry@zend.com>

Use better function


# 75041379 06-Nov-2014 Dmitry Stogov <dmitry@zend.com>

Improved object property access.


# 8e1dc33d 20-Oct-2014 Dmitry Stogov <dmitry@zend.com>

zend_get_property_info_quick() cleanup and optimization


# 7471c217 17-Oct-2014 Dmitry Stogov <dmitry@zend.com>

Optimized property access handlers. Removed EG(std_property_info).


# f2fa7a41 17-Oct-2014 Dmitry Stogov <dmitry@zend.com>

Don't make difference between undefined and unaccessible properies when call __get() and family


# 6b203aa2 17-Oct-2014 Dmitry Stogov <dmitry@zend.com>

Don't make useless CSE


# 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.


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

Remove get_class_entry object handler


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

Remove support for classes without class entries

get_class_entry must be non-NULL and return non-NULL.


# 03c726d7 06-Oct-2014 Nikita Popov <nikic@php.net>

Fix bug #68163


# 93288d00 03-Oct-2014 Nikita Popov <nikic@php.net>

Fix bug #68188


# 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.


# 079409bb 15-Sep-2014 Nikita Popov <nikic@php.net>

Switch (un)mangle property name to size_t and zend_string

Also use the _ex variants where possible.


# eda5ba1f 13-Sep-2014 Nikita Popov <nikic@php.net>

Fix use of stack variable outside its block


# ebc6da56 13-Sep-2014 Nikita Popov <nikic@php.net>

zend_get_property_info takes a zend_string* now


# b1f53ca4 27-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Use efree_size() instead of efree() where posible


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

master renames phase 1


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

first shot on merging the core fro the int64 branch


# e7ffdb26 14-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed support for references


# 05ca575b 14-Aug-2014 Dmitry Stogov <dmitry@zend.com>

Fixed reference support (references to references are not allowed)


# 046db570 28-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Fixed incorrect destruction (it might lead to crash)


# 9b9d60a4 08-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Specify HashTable size and optimize inserts that may not conflict


# 2ed8a170 07-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Refactored run_time_cache usage in object handlers


# 4b09dd69 02-Jul-2014 Dmitry Stogov <dmitry@zend.com>

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


# 412ad4b2 02-Jul-2014 Dmitry Stogov <dmitry@zend.com>

Uinified call frame handling for user and internal functions.
Now EG(current_execute_data) always point to the call frame of the currently executed function.


# b7715c7e 30-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Refactored parameter passing mechanism.

In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.

There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.


# 43477bc7 23-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Refactoring: use call_frames instead of call_slots


# eb9b0baa 09-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Optimized for fast path


# c1965f58 05-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Use reference counting instead of zval duplication


# af78ea1d 02-Jun-2014 Dmitry Stogov <dmitry@zend.com>

Avoid copying of immutable arrays


# 19661167 27-May-2014 Xinchen Hui <laruence@php.net>

retval's initializing is already taken by zend_call_function


# 40256e0f 26-May-2014 Dmitry Stogov <dmitry@zend.com>

Use specialized functions instead of macros


# 41336194 18-May-2014 Dmitry Stogov <dmitry@zend.com>

Fixed wrong condition


# c0ae699c 16-May-2014 Pierre Joye <pierre.php@gmail.com>

hash find returns zval* now


# 65f488ec 02-May-2014 Nikita Popov <nikic@php.net>

Add STR_ALLOCA_* API, use in get_method and verify_arg

This avoid unnecessary allocations when using dynamic method
dispatch and class typehints.

Probably there are other places where this should be done as well,
those just stood out for my usage.


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

Split IS_BOOL into IS_FALSE and IS_TRUE


# 022fee21 22-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Cache knowledge about missing property_info


# 72c287bd 21-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word


# afe66d89 21-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Cleanup


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

Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family.


# 5c02e0fc 17-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Cache op_array->run_time_cache in zend_execute_data for faster access


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

Moved zend_literal->cache_slot right into zval.
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.


# 54c338ac 16-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Fixed reference counting


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

Cleanup


# b178992c 11-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Temporary fix for Zend/tests/bug46238.phpt


# 99d1a1bb 11-Apr-2014 Bob Weinand <bobwei9@hotmail.com>

Shut up, my lovely compiler; I do not like your warnings


# f449b047 10-Apr-2014 Nikita Popov <nikic@php.net>

Fix some ZTS issues and leaks


# 7402af38 08-Apr-2014 Dmitry Stogov <dmitry@zend.com>

Fixed destruction of objects and iterators on unclean request shutdown and GC (few cases are still unfixed).
Now we destroy objects it two steps. At first - object properties of all objects and only then the objects their selves.


# 4456bfaa 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


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

Fixed memory leak


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

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


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

Fixed reference separation


# 5343cd32 06-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Fixed guard support in magic method __set()


# 37337373 05-Mar-2014 Dmitry Stogov <dmitry@zend.com>

Handle interned strings as non-refcounted scalars


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

Fixed IS_REFERENCE separation


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

Fixed next index insetion through magic function ($obj[] = ...)


# 46ab80b4 28-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Temporary fix for reference counting


# 29d61b65 28-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed refcounting


# e26722c2 28-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed access to undefined properties


# e43d0d17 27-Feb-2014 Dmitry Stogov <dmitry@zend.com>

fixed refcounting in "$a->magic_prop += 2"


# c5a50858 27-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed refcounting


# 9d6cce62 27-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed __get() related memleak


# 1c3ba95b 27-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Refactored read_property() and read_dimension() handlers


# f4a70fa7 26-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed has_propery


# 40a9132d 25-Feb-2014 Xinchen Hui <laruence@gmail.com>

zend_hash_add might return NULL in ext/standard/tests/serialize/serialization_objects_011.php


# 346d52c2 25-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed asseration fail


# 6ee86d0c 25-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed dynamic properies table construction


# 73b8e9ae 24-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed wrong condition


# 454e9911 24-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed new dynamic propery creation


# 1770ace2 24-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed object to string conversion


# fd87bde4 24-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed error messages


# 915a8a2d 23-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed test ext/standard/tests/strings/bug26817.php


# 2711e368 21-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed error messages


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

Use better data structures (incomplete)


# 52bd62ec 21-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed assertions


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

Fixed exception constructor


# 51d7c482 21-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Fixed tests/run-test/test009.phpt


# e193944b 21-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed segfault in ext/standard/tests/strings/addslashes_variation1.php


# 14c08ea3 20-Feb-2014 Sara Golemon <pollita@php.net>

Add more tests for __debugInfo() and fix leak


# b9174584 20-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed segfault (Zend/tests/026.phpt now pass)


# 3e89e92f 19-Feb-2014 Xinchen Hui <laruence@gmail.com>

Fixed possible NULL pointer dereference


# 9067dbcd 18-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)


# 557994d5 18-Feb-2014 Dmitry Stogov <dmitry@zend.com>

Use better data structures (incomplete)


# 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;
var_dump($f);


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

backported Zend


# be82a077 12-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)


# 7e8e21df 04-Jan-2014 Nikita Popov <nikic@php.net>

Fix bug #66286: Incorrect object comparison with inheritance

std_compare_objects immidiately returned 0 if the property tables
of both objects contain NULL at some index. Thus it would report
objects as equal even though properties following after that
differ.


# 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


# e11fbd97 22-Dec-2013 Anatol Belski <ab@php.net>

next wave of revamp in Zend


# 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


# d14670cc 18-Dec-2013 Kalle Sommer Nielsen <kalle@php.net>

Eliminate another TSRMLS_FETCH() in i_zend_is_true()

# Affected extensions have all been updated, ext/opcache and ext/zip
# both have macros for cross version compatibility


# 4411641b 12-Dec-2013 Kalle Sommer Nielsen <kalle@php.net>

Fix build


# 11d4bcd7 07-Nov-2013 Anatol Belski <ab@php.net>

remaining replacements ulong vs zend_uint_t


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

It compiles. Sort-of. In a way. Yeah. But nothing works. Sigh


# 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


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

Make use of direct returns in some places


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

Make use of direct returns in some places


# 6e008d40 02-Jul-2013 Anthony Ferrara <ircmaxell@gmail.com>

It compiles. Sort-of. In a way. Yeah. But nothing works. Sigh


# 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


# 3823321c 17-Jun-2013 Nikita Popov <nikic@php.net>

Implement internal operator overloading

As pre RFC https://wiki.php.net/rfc/operator_overloading_gmp


# 77fffff1 21-May-2013 Dmitry Stogov <dmitry@zend.com>

Fixed bug #64720 (SegFault on zend_deactivate)


# 70668fd8 09-Apr-2013 Michael Moravec <mail@majkl578.cz>

Fixed typo - inconsistent notice for undefined property (introduced by fix for #49348)


# 0c6d903c 19-Feb-2013 Stanislav Malyshev <stas@php.net>

fix bug #49348 - issue notice on get_property_ptr_ptr when used for read


# 33b104c7 14-Jan-2013 Stanislav Malyshev <stas@php.net>

fix bug #63462 (Magic methods called twice for unset protected properties)


# be07f815 14-Jan-2013 Xinchen Hui <laruence@php.net>

Use zend_unmangle_property_name_ex to save strlen


# 1a96fe0b 14-Jan-2013 Stanislav Malyshev <stas@php.net>

fix bug #63982: isset() inconsistently produces a fatal error on protected property


# f9e8678d 09-Jan-2013 Dmitry Stogov <dmitry@zend.com>

Fixed bug #63882 (zend_std_compare_objects crash on recursion)


# 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


# 3d86e6d8 10-Dec-2012 Xinchen Hui <laruence@php.net>

Fixed bug #63726 (Memleak with static properties and internal/user classes)

No test scripts provided (will try to find one)


# ad553a7a 10-Dec-2012 Xinchen Hui <laruence@php.net>

Fixed bug #63726 (Memleak with static properties and internal/user classes)


# b29dc146 06-Sep-2012 Dmitry Stogov <dmitry@zend.com>

- Fixed bug #61767 (Shutdown functions not called in certain error situation)
- Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function)


# d03900dc 13-May-2012 Stanislav Malyshev <stas@php.net>

fix bug #61782 - __clone/__destruct do not match other methods when checking access controls


# a0dff6fd 13-May-2012 Stanislav Malyshev <stas@php.net>

fix bug #61782 - __clone/__destruct do not match other methods when checking access controls


# 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++


# c1d5a5d7 19-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.


# 2f62602c 19-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.


# 4a0c2b43 19-Dec-2011 Xinchen Hui <laruence@php.net>

Revert previous bad fix, introduce memory leak


# 7fcba87e 19-Dec-2011 Xinchen Hui <laruence@php.net>

Revert previous bad fix, introduce memory leak


# 5256e741 19-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60558 (Invalid read and writes)


# d589d334 19-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60558 (Invalid read and writes)


# db63456a 17-Dec-2011 Xinchen Hui <laruence@php.net>

Reduce memory usage


# ac2a2fd1 17-Dec-2011 Xinchen Hui <laruence@php.net>

Reduce memory usage


# 01dc4763 16-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60536 (Traits Segfault)
# this is a tough one, I think I should explain
# Zend use zend_object->properties_table both as zval ** and zval ***
# if a zend_object->properties is not initialized, the properties_table is zval **
# while in rebuild_object_properties, zend will store the zval ** to zend_object->properties
# then stash the zval ***(ie, zobj->properties_table[0] is zval ** now) to zobj->properties_table[0]
# so when a zend_object inherit form multi parent and these parent have a same property_info->offset
# properties, will result in a repeat zval **->zval ** transform, which will lead to a segmentfault
# *may be* this fix is not the best fix, we should not use this tricky way, and rewrite this mechanism.


# 707f658c 16-Dec-2011 Xinchen Hui <laruence@php.net>

Fixed bug #60536 (Traits Segfault)
# this is a tough one, I think I should explain
# Zend use zend_object->properties_table both as zval ** and zval ***
# if a zend_object->properties is not initialized, the properties_table is zval **
# while in rebuild_object_properties, zend will store the zval ** to zend_object->properties
# then stash the zval ***(ie, zobj->properties_table[0] is zval ** now) to zobj->properties_table[0]
# so when a zend_object inherit form multi parent and these parent have a same property_info->offset
# properties, will result in a repeat zval **->zval ** transform, which will lead to a segmentfault
# *may be* this fix is not the best fix, we should not use this tricky way, and rewrite this mechanism.


# e0f781f4 02-Nov-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #60139 (Anonymous functions create cycles not detected by the GC)


# b64e91dd 02-Nov-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #60139 (Anonymous functions create cycles not detected by the GC)


# d8052a15 15-Sep-2011 Etienne Kneuss <colder@php.net>

Fix folding


# c2a92317 15-Sep-2011 Etienne Kneuss <colder@php.net>

Fix folding


# 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)


# 03b6daed 07-Apr-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #54372 (Crash accessing global object itself returned from its __get() handle)


# 2e25ec9e 07-Apr-2011 Dmitry Stogov <dmitry@php.net>

Fixed bug #54372 (Crash accessing global object itself returned from its __get() handle)


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

- Year++


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

- Year++


# e3ced0b5 03-Nov-2010 Felipe Pena <felipe@php.net>

- Reverted fix for bug #51176


# 815d0e54 03-Nov-2010 Felipe Pena <felipe@php.net>

- Reverted fix for bug #51176


# 01e081cf 01-Oct-2010 Dmitry Stogov <dmitry@php.net>

Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry)


# 4d8503a2 01-Oct-2010 Dmitry Stogov <dmitry@php.net>

Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry)


# f64e4bac 01-Oct-2010 Dmitry Stogov <dmitry@php.net>

Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry)


# 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
compilation.
. 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
zend_op_array.fn_flags.
. 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.


# c0e6f37c 01-Aug-2010 Felipe Pena <felipe@php.net>

- Fixed bug #52484 (__set() ignores setting properties with empty names)


# e914d906 01-Aug-2010 Felipe Pena <felipe@php.net>

- Fixed bug #52484 (__set() ignores setting properties with empty names)


# f1e02c5c 12-Jun-2010 Felipe Pena <felipe@php.net>

- Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+)


# 2c2fcc22 12-Jun-2010 Felipe Pena <felipe@php.net>

- Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+)


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

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


# 277f271a 06-May-2010 Dmitry Stogov <dmitry@php.net>

Added compiler hints


# 94dd8372 20-Apr-2010 Dmitry Stogov <dmitry@php.net>

Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table


# 9c53d6db 02-Mar-2010 Felipe Pena <felipe@php.net>

- Fixed bug #51176 (Static calling in non-static method behaves like $this->)


# 79f61883 02-Mar-2010 Felipe Pena <felipe@php.net>

- Fixed bug #51176 (Static calling in non-static method behaves like $this->)


# 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


# 08f4721e 18-Dec-2009 Stanislav Malyshev <stas@php.net>

fix regression bug #50394: Reference argument converted to value in __call


# e87ae0b3 12-Nov-2009 Felipe Pena <felipe@php.net>

- Fixed bug #49734 (toString must return string value)


# 3be23aba 11-Nov-2009 Felipe Pena <felipe@php.net>

- Fixed bug #50148 (zend_get_property_info should check for Z_TYPE_P(member) == IS_STRING) patch by yoarvi at gmail dot com


# 0be7c56f 05-Sep-2009 Jani Taskinen <jani@php.net>

- This was not supposed to be committed..


# 06f5b207 05-Sep-2009 Jani Taskinen <jani@php.net>

- Fixed bug #49182 (PHP CGI always outputs the shebang line)


# d976be4b 19-Jun-2009 Scott MacVicar <scottmac@php.net>

Make the check case sensitive, and since we can only have a constructor that matches the class name or is __construct
its probably safe to just check for __. This means we can skip lowering the function_name, which is hard to be binary
safe sine we don't store the length.

If we just did a zend_hash_exists lookup we'd be fine since its stored lowercased already :)


# 8e3aebd5 18-Jun-2009 Scott MacVicar <scottmac@php.net>

Fix bug #48215 - Calling a method with the same name as the parent class calls the constructor instead.


# 35920eec 12-Jun-2009 Felipe Pena <felipe@php.net>

- Constified method_name arg. in zend_get_user_call_function() and zend_get_user_callstatic_function()


# 2cb9fe1f 12-Jun-2009 Felipe Pena <felipe@php.net>

- Constified method_name arg. in zend_get_user_call_function() and zend_get_user_callstatic_function()


# a2e4ef3b 12-Jun-2009 Felipe Pena <felipe@php.net>

- MFH some changes (from last fix on 5.3+)
- Constified method_name arg in zend_get_user_call_function()


# 5f8ca6da 12-Jun-2009 Felipe Pena <felipe@php.net>

MFH: Fixed bug #48533 (__callStatic is not invoked for private/protected methods)


# 8c782591 12-Jun-2009 Felipe Pena <felipe@php.net>

- Fixed bug #48533 (__callStatic is not invoked for private/protected methods)


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

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


# 20fd5b99 12-May-2009 Felipe Pena <felipe@php.net>

- MFH: Fixed bug #48248 (SIGSEGV when access to private property via &__get)


# db1eafa8 12-May-2009 Felipe Pena <felipe@php.net>

- MFH: Fixed bug #48248 (SIGSEGV when access to private property via &__get)


# 7ff88040 12-May-2009 Felipe Pena <felipe@php.net>

- Fixed bug #48248 (SIGSEGV when access to private property via &__get)


# db534040 08-Apr-2009 Felipe Pena <felipe@php.net>

- Fixed bug #47801 (__call() accessed via parent:: operator is provided incorrect method name)


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

- Removed unused variables


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

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

(Felipe, Steph)


# 013c7f1f 17-Feb-2009 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #45327 (memory leak if offsetGet throws exception)
# Patch by Greg


# 7106659c 14-Jan-2009 Dmitry Stogov <dmitry@php.net>

Reverted "Rebind closure when binding to property"


# 312176f0 14-Jan-2009 Dmitry Stogov <dmitry@php.net>

Reverted "Rebind closure when binding to property"


# 073f4b92 08-Jan-2009 Antony Dovgal <tony2001@php.net>

fix ZTS build


# 518f9a35 08-Jan-2009 Andrei Zmievski <andrei@php.net>

MFB


# 8ef4ac5e 07-Jan-2009 Andrei Zmievski <andrei@php.net>

MFB


# 26bb96e2 07-Jan-2009 Andrei Zmievski <andrei@php.net>

Changed __call() to be invoked on private/protected method access,
similar to properties and __get().


# 0e131653 03-Jan-2009 Marcus Boerger <helly@php.net>

- MFH Rebind closure when binding to property


# 9cc9a110 03-Jan-2009 Marcus Boerger <helly@php.net>

- Rebind closure when binding to property


# 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)


# f870cd85 17-Oct-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #46308 (Invalid write when changing property from inside getter)


# 41ad9b4d 17-Oct-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #46308 (Invalid write when changing property from inside getter)


# 739c75b0 17-Oct-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #46308 (Invalid write when changing property from inside getter)


# f90255c6 14-Aug-2008 Etienne Kneuss <colder@php.net>

MFH: Handlerify get_closure


# 6423606a 14-Aug-2008 Etienne Kneuss <colder@php.net>

Handlerify get_closure


# 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)


# 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"


# 737dd4ef 03-Jun-2008 Felipe Pena <felipe@php.net>

- MFB: Fixed bug #45089 (__callStatic $name case sensitivity)


# cc23d3ba 03-Jun-2008 Felipe Pena <felipe@php.net>

- Fixed bug #45089 (__callStatic $name case sensitivity)


# 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


# a578b0cb 03-May-2008 Felipe Pena <felipe@php.net>

- MFH: Fixed bug #44899 (__isset usage changes behavior of empty()) (patch by Etienne Kneuss)


# c23bf369 03-May-2008 Felipe Pena <felipe@php.net>

- Fixed bug #44899 (__isset usage changes behavior of empty()) (patch by Etienne Kneuss)


# 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


# be6f9c2b 17-Mar-2008 Antony Dovgal <tony2001@php.net>

return empty string of correct type if __toString() returned invalid value


# 7dd943ac 17-Mar-2008 Antony Dovgal <tony2001@php.net>

MFH: fix #39127 (Old-style constructor fallbacks produce strange results)


# abbd1e8e 17-Mar-2008 Antony Dovgal <tony2001@php.net>

fix #39127i (Old-style constructor fallbacks produce strange results)


# 91816507 21-Feb-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #44141 (private parent constructor callable through static function)


# 3e7e9d4a 21-Feb-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #44141 (private parent constructor callable through static function)


# 28306e34 21-Feb-2008 Dmitry Stogov <dmitry@php.net>

Fixed bug #44141 (private parent constructor callable through static function)


# f29c6b45 15-Feb-2008 Dmitry Stogov <dmitry@php.net>

MFH: Fixed bug #43128 (Very long class name causes segfault)


# 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.


# 42add0f2 21-Dec-2007 Johannes Schlüter <johannes@php.net>

- MFH: Fix #43450 (Memory leak on some functions with implicit object
__toString() call) (Davic C.)


# 1b6100f4 21-Dec-2007 Johannes Schlüter <johannes@php.net>

- MFH: Fix #43450 (Memory leak on some functions with implicit object
__toString() call) (Davic C.)


# e40c4fc2 21-Dec-2007 Johannes Schlüter <johannes@php.net>

- Fix #43450 (Memory leak on some functions with implicit object
__toString() call) (Davic C.)


# 648fbe9d 22-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #43128 (Very long class name causes segfault)


# 3f247aaf 20-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #43136 (possible crash on script execution timeout. The EG(function_state_ptr) is completely removed, EG(current_execute_data)->function_state must be used instead)


# c3ab6bd0 20-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #43136 (possible crash on script execution timeout. The EG(function_state_ptr) is completely removed, EG(current_execute_data)->function_state must be used instead)


# d92f11b9 17-Nov-2007 Sara Golemon <pollita@php.net>

MFH(r-1.192) Remove extraneous space in error/notice messages (felipe)


# ee548c7b 17-Nov-2007 Sara Golemon <pollita@php.net>

MFH(r-1.192) Remove extraneous space in error/notice messages (felipe)


# 56731de6 17-Nov-2007 Sara Golemon <pollita@php.net>

Remove extraneous space in error/notice messages (felipe)


# 0dd6af6a 12-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class).


# dd3c04ce 12-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class).


# 2ea31059 12-Nov-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class).


# 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.


# 988d28cc 18-Oct-2007 Stanislav Malyshev <stas@php.net>

ws


# 8ce1211a 11-Oct-2007 Marcus Boerger <helly@php.net>

- MFH debug object helper


# 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


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

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


# 4a19c90d 30-Aug-2007 Johannes Schlüter <johannes@php.net>

- Allow binary strings as method name in $class::$method(), fixes
tests/lang/044.phpt (Etienne Kneuss)


# 92d3bc0c 24-Jul-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #40757 (get_object_vars get nothing in child class)
Fixed bug #41929 (Foreach on object does not iterate over all visible properties)


# 7ec48cb3 24-Jul-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #40757 (get_object_vars get nothing in child class)
Fixed bug #41929 (Foreach on object does not iterate over all visible properties)


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

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


# 68845c6a 12-Jul-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #41961 (Ensure search for hidden private methods does not stray from class hierarchy). (robin_fernandes at uk dot ibm dot com)


# ed10530e 12-Jul-2007 Dmitry Stogov <dmitry@php.net>

Fixed bug #41961 (Ensure search for hidden private methods does not stray from class hierarchy). (robin_fernandes at uk dot ibm dot com)


# dd8af065 11-Jul-2007 Antony Dovgal <tony2001@php.net>

fix folding, CS and WS


# 50312ac4 23-Mar-2007 Stanislav Malyshev <stas@php.net>

fix comment


# 008259db 23-Mar-2007 Stanislav Malyshev <stas@php.net>

fix comment - guard system changed


# 13da6bf4 18-Jan-2007 Marcus Boerger <helly@php.net>

- Add debug_info helper to overloadedobjects


# f6387758 10-Jan-2007 Dmitry Stogov <dmitry@php.net>

- Fixed bug #35106 (nested foreach fails when array variable has a reference).
- Fixed bug #36214 (__get method works properly only when conditional operator is used).
- Fixed bug #39449 (Overloaded array properties do not work correctly).
- Fixed bug #39990 (Cannot "foreach" over overloaded properties).


# e470e22e 10-Jan-2007 Dmitry Stogov <dmitry@php.net>

- Fixed bug #35106 (nested foreach fails when array variable has a reference).
- Fixed bug #36214 (__get method works properly only when conditional operator is used).
- Fixed bug #39449 (Overloaded array properties do not work correctly).
- Fixed bug #39990 (Cannot "foreach" over overloaded properties).


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

MFH: Bump year.


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

Bump year.


# f37ad2e1 08-Dec-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39775 ("Indirect modification ..." message is not shown)


# 108a2fc6 08-Dec-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39775 ("Indirect modification ..." message is not shown)
The fix breaks two SimpleXML tests those must be fixed


# 706a0364 10-Nov-2006 Dmitry Stogov <dmitry@php.net>

Unicode support


# f8b3df2b 08-Nov-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39297 (Memory corryption because of indirect modification of overloaded array).


# 41ae8de1 08-Nov-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #39297 (Memory corryption because of indirect modification of overloaded array).


# 83e0dbb3 13-Oct-2006 Andrei Zmievski <andrei@php.net>

- Add an extra parameter to the cast_object handler that can be used by
various types as needed.
- Use that parameter to pass a specific converter for
IS_UNICODE/IS_STRING types.


# 5574651e 12-Sep-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #38772 (inconsistent overriding of methods in different visibility contexts)


# 7e17f859 12-Sep-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #38772 (inconsistent overriding of methods in different visibility contexts)


# 191d6861 28-Aug-2006 Antony Dovgal <tony2001@php.net>

delete commented part, as it was done in HEAD


# be316018 15-Aug-2006 Antony Dovgal <tony2001@php.net>

apply correct fix for bug #38461


# 9ea866fa 15-Aug-2006 Antony Dovgal <tony2001@php.net>

apply more correct fix for bug #38461


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

MFH: fix #38461 (setting private attribute with __set() produces segfault)


# e17c15ba 15-Aug-2006 Antony Dovgal <tony2001@php.net>

fix #38461 (setting private attribute with __set() produces segfault)


# 1ab16de0 26-Jul-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #38220 (Crash on some object operations)


# 30f4d3f9 26-Jul-2006 Dmitry Stogov <dmitry@php.net>

Fixed bug #38220 (Crash on some object operations)


# 519ed8e1 24-Jul-2006 Marcus Boerger <helly@php.net>

- Better fix for #34505 and related, drop zend_unmangle_property_name_ex()


# 617a18fc 24-Jul-2006 Marcus Boerger <helly@php.net>

- Fix for #34505 and repated (improved version of what is in 5.2, 5.1)


# 933e8c0b 21-Jul-2006 Dmitry Stogov <dmitry@php.net>

Changed error message (E_ERROR -> E_NOTICE) in case of indirect modification of overloaded property.


# 33a1a4d3 21-Jul-2006 Dmitry Stogov <dmitry@php.net>

Changed error message (E_ERROR -> E_NOTICE) in case of indirect modification of overloaded property.


# 704eced2 10-Jul-2006 Marcus Boerger <helly@php.net>

- MFH Fixed Bug #37667 (Object is not added into array returned by __get)


# 032dfa1b 10-Jul-2006 Marcus Boerger <helly@php.net>

- Fix issues with __get() returning arrays (might need to be revised)


# 058b529a 05-Jul-2006 Antony Dovgal <tony2001@php.net>

oops.. fix copy/paste typo


# c4c96c04 05-Jul-2006 Antony Dovgal <tony2001@php.net>

MFH: export zend_std_get_constructor()


# cbeedda2 05-Jul-2006 Antony Dovgal <tony2001@php.net>

export zend_std_get_constructor()


# 859ab9a4 05-Jul-2006 Antony Dovgal <tony2001@php.net>

MFH: improve error messages


# 636e7be6 05-Jul-2006 Antony Dovgal <tony2001@php.net>

improve error messages


# 1b172b13 29-May-2006 Marcus Boerger <helly@php.net>

- MFH Bugfix #37632 (Protected method access problem)


# 17912b4f 29-May-2006 Marcus Boerger <helly@php.net>

- Bugfix #37632 (Protected method access problem)


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

- WS


# 493f39da 27-May-2006 Marcus Boerger <helly@php.net>

- MFH: Fix bug #37212 (Access to protected property of common base class)
By adding "zend_class_entry *ce" to struct zend_property_info;


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

- Fix bug #37212 (Access to protected property of common base class)
By adding "zend_class_entry *ce" to struct zend_property_info;
# Besides closing the bug this patch allows to optimize a bunch of
# property handling optimizations. I need to find out what all can be
# optimized. All other tests relevant to class handling still PASS.


# 37561705 18-May-2006 Marcus Boerger <helly@php.net>

- Fix error message in unicode mode


# f16bdce2 10-May-2006 Marcus Boerger <helly@php.net>

- Enforece rule of disallowing throw in __toString()


# 82a538c4 10-May-2006 Marcus Boerger <helly@php.net>

- Enforece rule of disallowing throw in __toString()


# 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 E_RECOVERABLE_ERROR
. added ZEND_TOSTRING_FUNC_NAME
. added __tostring function cache to zend_class_entry
. added ZEND_NAMED_ME
. modified ZEND_ME_MAPPING to support method flags
. added ZEND_MN
. method entries now use prefix "zim_" instead of "zif_"
. drop EG(ze1_compatibility_mode)
. changed cast handler, now without (int should_free):
typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
. changed get_iterator, now receives whether value is by ref:
zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
. added zend_objects_store_add_ref_by_handle
. added zend_objects_store_del_ref_by_handle
. convert_to_explicit_type(pzv, type)


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

- MFB: WS


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

Unicode support: MS Visual C compatibility


# 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>

WS


# 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).


# f4a0ce71 22-Jan-2006 Marcus Boerger <helly@php.net>

- Fix method invocation issues


# 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


# 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)


# 8373809e 16-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35239 (Objects can lose references)


# 6b8bf383 16-Nov-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #35239 (Objects can lose references)


# 8bb39e7d 15-Nov-2005 Dmitry Stogov <dmitry@php.net>

Allow recursive calls to __get/__set for different properties


# 64931b62 15-Nov-2005 Dmitry Stogov <dmitry@php.net>

Allow recursive calls to __get/__set for different properties


# 5372281b 20-Oct-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34893 (PHP5.1 overloading, Cannot access private property)


# a8c338aa 20-Oct-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #34893 (PHP5.1 overloading, Cannot access private property)


# 7d2a02fe 06-Oct-2005 Marcus Boerger <helly@php.net>

- BC: php objects convert to int/double 1 with notice


# b9211d24 06-Oct-2005 Marcus Boerger <helly@php.net>

- Any php object converts to boolean as true


# 7c083fcc 05-Oct-2005 Marcus Boerger <helly@php.net>

- Have __toString() be called if available in all places an object is used
as a string.
#
# Note that "Object #<id>" is no longer afallback for debugging purpose use
# var_dump, which was made for debugging. If you used this to grab the id
# of an object you can never rely on this. For object storage look at SPL's
# ObjectStorage class.
#
# Note the signature change in the cast handler:
#
# int (*cast_t)(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
# int (*cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);


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

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


# 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


# 0165ab62 30-Aug-2005 Marcus Boerger <helly@php.net>

- Adds module registering a function to struct zend_internal_function.
(Johannes)
# This information is by reflection API and error messages.


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

*** empty log message ***


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

Unicode support


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

Unicode support cleanup


# 8c33fcf7 17-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode mode doesn't allow non-unicode properties


# 48def9a6 17-Aug-2005 Dmitry Stogov <dmitry@php.net>

Unicode support


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

Fixed several unicode related bugs


# 9c544c06 12-Aug-2005 Dmitry Stogov <dmitry@php.net>

Fixed support fot provate properties in unicode mode.


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

Unicode support


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

Unicode support


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

Bump up the year


# 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)


# 62bdbc0e 20-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed possible crash on $x = $obj->$non_string


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

Fixed bug #33277 (private method accessed by child class)


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

Allowed return by refrence from internal functions


# 2cb52151 09-Jun-2005 Stanislav Malyshev <stas@php.net>

MF50: fix #29689 and more private property problems


# d02d270f 08-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #30820 (static member conflict with $this->member silently ignored)


# cd88e646 06-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #33171 (foreach enumerates private fields declared in base classes)


# 3d7b0bab 03-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed memory allocation bugs related to magic object handlers (__get(), __set(),
...)


# 9383e1b8 01-Jun-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #30791 (magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded)


# 94666dcf 18-May-2005 Stanislav Malyshev <stas@php.net>

revert - seems to be fixed elsewhere


# e04666ae 18-May-2005 Stanislav Malyshev <stas@php.net>

fix #30451 static properties don't work properly


# 69326a79 03-May-2005 Dmitry Stogov <dmitry@php.net>

Fixed destruction of zval after returning from __call()


# 56d543c1 02-May-2005 Marcus Boerger <helly@php.net>

- Extend API to support real existance test without the need to add any new
functions or change any behavior


# 217e89b1 29-Apr-2005 foobar <sniper@php.net>

compile fix


# 9966587a 28-Apr-2005 Dmitry Stogov <dmitry@php.net>

Fixed bug #29015 (Incorrect behavior of member vars(non string ones)-numeric mem vars und others)


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

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


# 53e3b0fc 25-Apr-2005 Andrei Zmievski <andrei@php.net>

Reverting. Let's not introduce major BC breakage like this without a
good reason.


# 79b9084e 17-Apr-2005 Marcus Boerger <helly@php.net>

- Fix logic


# adb3d019 08-Apr-2005 Marcus Boerger <helly@php.net>

- No E_ERROR when we just check (where did my 0->1 change go on first commit?)


# 40cc0b77 08-Apr-2005 Marcus Boerger <helly@php.net>

- No E_ERROR when we just check, here visibility simply means there is none


# 698d301c 08-Apr-2005 Marcus Boerger <helly@php.net>

- Simplify getting property info and make it an api function


# 6a6eaf2b 19-Mar-2005 Marcus Boerger <helly@php.net>

- More fixes to gracefully act on exception thrown in overload methods


# cf020f13 19-Mar-2005 Marcus Boerger <helly@php.net>

- Fix #31185


# b924ef87 11-Mar-2005 Marcus Boerger <helly@php.net>

- Don't touch refcount/is_ref


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

- If silence if wanted we do not error out


# fd4fe1c8 02-Feb-2005 Dmitry Stogov <dmitry@php.net>

Fixed bugs #29767 and #31683 (__get and __set methods must not modify property name).


# 20be6646 19-Jan-2005 foobar <sniper@php.net>

- Fixed bug #29183 (Undefined symbol zend_check_private with Solaris CC)


# 235e6c0a 17-Dec-2004 Andi Gutmans <andi@php.net>

- Fixed Bug #30562 Segmentation fault with __call()


# c5a9a5a2 30-Oct-2004 Marcus Boerger <helly@php.net>

- Change zend_object_handlers->get_method() to allow aggregation for internal classes


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

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


# 34b00ca2 22-Jul-2004 Zeev Suraski <zeev@php.net>

Fix bug in handling of protected properties


# e000da96 19-Jul-2004 Stanislav Malyshev <stas@php.net>

__set and __get will be called not only when variable doesn't exist but also when it's
invisible


# 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.


# d673ec01 14-Jul-2004 Stanislav Malyshev <stas@php.net>

be consistent with write_dimension


# 28d72ce2 14-Jul-2004 Stanislav Malyshev <stas@php.net>

fix #28957


# 6f5c0992 26-May-2004 Wez Furlong <wez@php.net>

Fix leak on systems where alloca isn't really alloca.


# d056b25c 04-May-2004 Wez Furlong <wez@php.net>

Add count_elements handler for overloaded objects.


# 4a24cbe2 09-Apr-2004 Andi Gutmans <andi@php.net>

- Fix bug #26441 (When __set() returned a value it corrupted it)


# bd9b600c 21-Mar-2004 Stanislav Malyshev <stas@php.net>

API change for read_property:
instead of bool silent it now gets fetch type
This can be used for creating proxy objects for write contexts


# 88de69b9 14-Mar-2004 Andi Gutmans <andi@php.net>

- Support Cast operator in convert_to_* so that we support internal
- extensions such as SimpleXML. This is for Sterling.


# 62b81df9 12-Feb-2004 Andi Gutmans <andi@php.net>

- This was too strict.


# 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
ZEND_RETURN_VALUE/ZEND_RETURN_REFERENCE to change that.
- Fix ArrayAccess::getOffset() to conduct additional checks.
If your getOffset() should work with multidimensional arrays - it
must return by reference.


# 473927ec 08-Feb-2004 Zeev Suraski <zeev@php.net>

Fix write-mode of overloaded objects when using array dimensions


# c5a7b668 03-Feb-2004 Zeev Suraski <zeev@php.net>

- Clean garbage (delete was nuked a long time ago)


# 0a8a950f 17-Jan-2004 Ilia Alshanetsky <iliaa@php.net>

Expose zend_std_call_user_call(), needed for implementation of things like
__call handlers.


# 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?


# 1e11e740 05-Jan-2004 Stanislav Malyshev <stas@php.net>

Bug #24608 - fix interaction between __accessors and get_property_ptr


# 6923a16c 03-Jan-2004 Derick Rethans <derick@php.net>

- Fixed var_export() to show public, protected and private modifiers properly.
- Exported (un)mangle_property_name.


# db36fd02 27-Dec-2003 Marcus Boerger <helly@php.net>

Fix __tostring() and concatenation


# 06788f04 22-Dec-2003 Marcus Boerger <helly@php.net>

Fixed bug #26675 (Segfault on ArrayAccess use)
Update NEWS


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

export these symbols for use by SPL as a shared extension


# 49efcd4f 18-Dec-2003 Marcus Boerger <helly@php.net>

Fixed bug #24837 Incorrect behaviour of PPP using foreach.


# 052032f5 16-Dec-2003 Stanislav Malyshev <stas@php.net>

export externally used functions


# d4f64f88 15-Dec-2003 Marcus Boerger <helly@php.net>

Reenable __tostring() magic for print,echo,concatenation,function naming...
but not for other internal things.
# As discussed with Andi


# 904373a8 11-Dec-2003 Marcus Boerger <helly@php.net>

Handle getter failure and allow to bypass thrown exceptions.


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

Remove automatic call to __toString() since it is supposed to cause too
much trouble. See discussion on the mailing list.


# 87577dd8 27-Nov-2003 Marcus Boerger <helly@php.net>

The macro REPLACE_ZVAL_VALUE cannot be used since we only have zval *
writeobj. to allow it the api needs to be changed to zval **writeobj.


# 4dba05d9 24-Nov-2003 Marcus Boerger <helly@php.net>

Add new interface ArrayAccess to use objects as Arrays


# e7365f31 10-Nov-2003 Marcus Boerger <helly@php.net>

Correct default handlers


# 48d249de 10-Nov-2003 Marcus Boerger <helly@php.net>

Fix those warnings


# 296529b8 10-Nov-2003 Marcus Boerger <helly@php.net>

Split isset/isempty for object property and object dimension hooking.


# 31685432 08-Nov-2003 Marcus Boerger <helly@php.net>

Handle exceptions in casting more gracefully.
This fixes bug #26166


# 68bab385 04-Nov-2003 Moriyoshi Koizumi <moriyoshi@php.net>

__tostring() handler should be binary-safe


# 4de32429 05-Oct-2003 Zeev Suraski <zeev@php.net>

Remove unused callback


# 3f5acc73 05-Oct-2003 Zeev Suraski <zeev@php.net>

Remove redundant callback, simplify API


# d7fdf15a 18-Sep-2003 Marcus Boerger <helly@php.net>

- Allow partial type conversion support for objects.
- Add support for object to string conversion from userspace by method
__toString() and add a test.


# 95649ab2 04-Sep-2003 Marcus Boerger <helly@php.net>

Tests show updating consts must happen once at runtime (revert optimization).
Add tests for static properties.


# 1b39a5aa 03-Sep-2003 Marcus Boerger <helly@php.net>

Fix static properties.
#
# There's only an errormessage missing which i'll wommit as soon as i find out
# how to do it best. But besides that damn message everything works now and all
# inheritance rules apply.
#


# 9702c70a 02-Sep-2003 Marcus Boerger <helly@php.net>

Synch/Unify error messages related to function/method calls


# 744dd205 17-Aug-2003 Marcus Boerger <helly@php.net>

Fix warnings


# b29b4441 15-Aug-2003 Sascha Schumann <sas@php.net>

Restrict scope of inline functions to compile unit

Submitted by: Jason Greene <jason@inetgurus.net>


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

ntroduce infrastructure for supplying information about arguments,
including:

- 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)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();

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.


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

Improve array overloading - support unset($foo["bar"])


# 6a50660c 22-Jul-2003 Zeev Suraski <zeev@php.net>

Fix isset()/empty() for non-trivial object elements
(API change - read_property now accepts an extra element)
Fixes bug #24436


# 7e72d8e8 21-Jul-2003 Zeev Suraski <zeev@php.net>

Fix bug #24499


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

Add get_dim callback


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

whitespace


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

fixlet


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

Initial support for overloading of array syntax for objects (very initial)


# 35c40932 01-Jul-2003 Marcus Boerger <helly@php.net>

Fix destructor visibility


# 97545352 29-Jun-2003 Ilia Alshanetsky <iliaa@php.net>

Fixed bug #24279 (__get() crash when no value is returned)


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

updating license information in the headers.


# 636e9cc6 08-Jun-2003 Zeev Suraski <zeev@php.net>

Fix casing issues in access level checks


# 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.


# ae2bfb78 27-May-2003 Sterling Hughes <sterling@php.net>

Assume lazy consensus regarding the cast_object() patch. *Only* implemented
from a internals perspective. This callback has been very useful for both
ext/mono and ext/simplexml


# 66b91259 21-May-2003 Marcus Boerger <helly@php.net>

Make use optimized string lowering


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

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

*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.


# 62f9eb80 01-Apr-2003 Andrei Zmievski <andrei@php.net>

Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
okay with engine folks.


# 866332a4 26-Mar-2003 Sebastian Bergmann <sebastian@php.net>

Eliminate TSRMLS_FETCH() calls in zend_objects_new() and zend_objects_get_address().


# 40326f6a 18-Mar-2003 Zeev Suraski <zeev@php.net>

- Fix situation where a derived class declares a public (or implicit public)
with the same name as a private in the parent
- Optimize 'static binding' of private properties a bit


# d4053732 11-Mar-2003 Zeev Suraski <zeev@php.net>

Fix handling of ::func()


# d22cc2f3 17-Feb-2003 Zeev Suraski <zeev@php.net>

Improve handling of static member variables


# e77eca75 16-Feb-2003 Stanislav Malyshev <stas@php.net>

namespace patch - static variable access


# 88441904 13-Feb-2003 Zeev Suraski <zeev@php.net>

Fix error handling in illegal property access


# 10b6a84b 10-Feb-2003 Stanislav Malyshev <stas@php.net>

update static constants too


# 029abf8c 10-Feb-2003 Zeev Suraski <zeev@php.net>

Restore missing check


# fce275eb 07-Feb-2003 Zeev Suraski <zeev@php.net>

Improve PPP handling of properties


# fc591167 06-Feb-2003 Zeev Suraski <zeev@php.net>

Fix check


# f660d281 05-Feb-2003 Zeev Suraski <zeev@php.net>

- read_property cleanup
- Implement unset/isset/empty for PPP


# 17439aa9 05-Feb-2003 Zeev Suraski <zeev@php.net>

Rework static class properties - now supports access restrictions


# da12870c 05-Feb-2003 Zeev Suraski <zeev@php.net>

Add PPP support for arrays


# e1179a4d 04-Feb-2003 Zeev Suraski <zeev@php.net>

Missing update


# 471947b1 04-Feb-2003 Zeev Suraski <zeev@php.net>

Reimplement PPP properties


# 61bd944b 02-Feb-2003 Zeev Suraski <zeev@php.net>

Core rearrangements - move Zend Objects specific code to their
specific implementation file


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

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


# 4b97a8df 29-Jan-2003 Zeev Suraski <zeev@php.net>

Code rearrangements


# 8f52bf68 29-Jan-2003 Zeev Suraski <zeev@php.net>

Fix assignments to $this.
Fixes the 'make install' problem reported on php-dev


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

ws


# 1b355e11 12-Jan-2003 Stanislav Malyshev <stas@php.net>

Move Z_OBJ_P here.


# 6cc7ee26 12-Jan-2003 Stanislav Malyshev <stas@php.net>

add get_class_name handler


# 671fff2f 30-Nov-2002 Andi Gutmans <andi@php.net>

h WHitespace


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

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


# 8ee50801 12-Nov-2002 Stanislav Malyshev <stas@php.net>

fix static


# c33a695f 20-Oct-2002 Stanislav Malyshev <stas@php.net>

looks like this message should go


# f45d2f92 10-Oct-2002 Stanislav Malyshev <stas@php.net>

add comment


# 98ad93fb 10-Oct-2002 Stanislav Malyshev <stas@php.net>

fix memory leaks


# e22e61a4 09-Oct-2002 Stanislav Malyshev <stas@php.net>

Fix object write handler behaviour:
* If this value is already set to given value, don't try to set it again.
* If we have reference, we should not move it.
* If we are assigning referenced variable, we should separate it.
# Hope this covers all... Sigh...


# d3617c51 09-Oct-2002 Ilia Alshanetsky <iliaa@php.net>

MFZE1 zend_str_tolower issue.


# ee7b8f90 26-Sep-2002 Ilia Alshanetsky <iliaa@php.net>

MFZE1


# 43139dc7 15-Sep-2002 Andi Gutmans <andi@php.net>

- WS - Always use "if (" and not "if("


# 44c2c391 09-Sep-2002 Stanislav Malyshev <stas@php.net>

remove comment


# e8f66546 04-Sep-2002 Stanislav Malyshev <stas@php.net>

remove dead code


# 36c60cea 04-Sep-2002 Stanislav Malyshev <stas@php.net>

Fix __call and add some docs


# 2711976f 04-Sep-2002 Sebastian Bergmann <sebastian@php.net>

Fix ZTS build.


# d8651c82 04-Sep-2002 Stanislav Malyshev <stas@php.net>

Support for __get, __set and __call in classes.
This should work as follows: if class hasn't member with given name,
__get/__set is called. If class has no method with given name, __call is called.
__get/__set are not recursive, __call can be.


# 0ed4f6d1 07-Jul-2002 Stanislav Malyshev <stas@php.net>

name length should be strlen+1


# 2d6404d5 05-Jun-2002 Andi Gutmans <andi@php.net>

- Allow overloaded objects to receive the method name in its original
- case.


# f75f3cff 31-May-2002 Stanislav Malyshev <stas@php.net>

Generalize object storage and reference bookkeeping


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

Make OBJCE return zend_class_entry*, also some cleanups


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

added get_class_entry callback handler to the
object handlers structure


# 04ed2b52 10-Mar-2002 Stanislav Malyshev <stas@php.net>

New stuff for objects API:
- Better assignment handling
- More flexible operations with zval-containing objects


# 00e90f2f 21-Feb-2002 Andi Gutmans <andi@php.net>

- Experimental support for private members.
<?
class MyClass {
private $Hello = "Hello, World!\n";

function printHello()
{
print $this->Hello;
}
}

class MyClass2 extends MyClass {
function printHello()
{
MyClass::printHello(); /* Should print */
print $this->Hello; /* Shouldn't print out anything */
}
}

$obj = new MyClass();
print $obj->Hello; /* Shouldn't print out anything */
$obj->printHello(); /* Should print */

$obj = new MyClass2();
print $obj->Hello; /* Shouldn't print out anything */
$obj->printHello();
?>


# 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.