History log of /PHP-7.4/Zend/zend_operators.h (Results 126 – 150 of 307)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 4ed452c1 21-Apr-2014 Dmitry Stogov

Convert zval_get_string() into "fast path" macro and "slow path" function


# 0d43a277 21-Apr-2014 Nikita Popov

Use zval_get_string in a few more places


Revision tags: php-5.4.28RC1
# 7a1a6092 15-Apr-2014 Nikita Popov

Add functions for extracting long/double/string from zval

These function get the long / double / string value of a zval with
usual cast semantics, but without actually modifying the zval

Add functions for extracting long/double/string from zval

These function get the long / double / string value of a zval with
usual cast semantics, but without actually modifying the zval.

Didn't go on a killing spree for convert_to_* yet...

show more ...


Revision tags: php-5.5.12RC1, php-5.6.0beta1
# 76cc99fe 03-Apr-2014 Dmitry Stogov

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


# d8099d04 02-Apr-2014 Dmitry Stogov

Changed data layout to allow more efficient operations


Revision tags: php-5.4.27, php-5.5.11
# d83d34ba 27-Mar-2014 Dmitry Stogov

Cleanup


Revision tags: php-5.5.11RC1, php-5.4.27RC1, php-5.5.10, php-5.4.26, php-5.6.0alpha3, php-5.4.26RC1, php-5.5.10RC1
# 40e053e7 13-Feb-2014 Dmitry Stogov

Use better data structures (incomplete)


Revision tags: php-5.6.0alpha2
# f4cfaf36 10-Feb-2014 Dmitry Stogov

Use better data structures (incomplete)


Revision tags: php-5.5.9, php-5.4.25, php-5.5.9RC1, php-5.4.25RC1, php-5.6.0alpha1, php-5.5.8, php-5.4.24, php-5.4.24RC1, php-5.5.8RC1, php-5.5.7, php-5.4.23, php-5.3.28, php-5.5.7RC1, php-5.4.23RC1
# aff56f3c 19-Nov-2013 datibbaw

add T_POW (**) operator

Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, b

add T_POW (**) operator

Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, but always a float

Yanked code from pow() implementation.

Should not handle negative long as exponent ourselves

Added test cases from pow()

Moved precedence higher than '~'

Added GMP operator overloading

Added ZEND_ASSIGN_POW (**=) operator.

Added pow() as a language construct.

Adjusted test cases for changed precedence.

Reduced pow() to shell function around ZEND_API pow_function()

Reduced test case to only contain edge cases
Added overloading test case

Moved unary minus above T_POW

Revert "Added pow() as a language construct."

Bad bad bad idea.

This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.

Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)

Rebase against master

Fixed tokenizer test case

show more ...


# c081ce62 03-Jan-2014 Xinchen Hui

Bump year


# 47c90277 03-Jan-2014 Xinchen Hui

Bump year


# c0d060f5 03-Jan-2014 Xinchen Hui

Bump year


# 8f1fee61 10-Dec-2013 Ard Biesheuvel

Zend: fix overflow handling bug in non-x86 fast_add_function()

The 'result' argument of fast_add_function() may alias with either
of its operands (or both). Take care not to write to 're

Zend: fix overflow handling bug in non-x86 fast_add_function()

The 'result' argument of fast_add_function() may alias with either
of its operands (or both). Take care not to write to 'result' before
reading op1 and op2.

show more ...


# 60d2e70c 10-Dec-2013 Ard Biesheuvel

Zend: fix overflow handling bug in non-x86 fast_add_function()

The 'result' argument of fast_add_function() may alias with either
of its operands (or both). Take care not to write to 're

Zend: fix overflow handling bug in non-x86 fast_add_function()

The 'result' argument of fast_add_function() may alias with either
of its operands (or both). Take care not to write to 'result' before
reading op1 and op2.

show more ...


# b902a25c 20-Nov-2013 Anatol Belski

permanently deactivate that place, not on runtime only

besides the two "if" checks, this fixes static analyze which is sometimes
broken because of this


Revision tags: php-5.4.22, php-5.5.6
# 9647c61d 06-Nov-2013 Dmitry Stogov

Constant expressions refactoring


# ad967e13 03-Nov-2013 Bob Weinand

Added a few more operators


# 466c5dd1 31-Oct-2013 Bob Weinand

Fixed mem leaks, added tests and ternary operator


# 23617458 31-Oct-2013 Bob Weinand

Working commit for constant scalar expressions (with constants).
Tests will follow.


Revision tags: php-5.4.22RC1, php-5.5.6RC1, php-5.4.21, php-5.5.5, php-5.4.21RC1, php-5.5.5RC1, php-5.5.4, php-5.4.20, php-5.5.4RC1, php-5.4.20RC1
# 0119bbba 27-Aug-2013 Xinchen Hui

Fixed compiler warnings

warning: 'local_dval' may be used uninitialized in this function
[-Wmaybe-uninitialized]

warning: 'dval2' may be used uninitialized in this function

Fixed compiler warnings

warning: 'local_dval' may be used uninitialized in this function
[-Wmaybe-uninitialized]

warning: 'dval2' may be used uninitialized in this function
[-Wmaybe-uninitialized]

show more ...


Revision tags: php-5.5.3, php-5.4.19, php-5.5.2, php-5.4.18, php-5.5.2RC1, php-5.4.18RC2
# 92d27ccb 30-Jul-2013 Andrey Hristov

Constify streams API and a few other calls down the rabbit hole.
(`char *` to `const char *` for parameters and few return values)
In a few places int len moved to size_t len.


Revision tags: php-5.5.1, php-5.4.18RC1, php-5.3.27, php-5.4.17, php-5.5.0, php-5.3.27RC1, php-5.4.17RC1
# 3823321c 17-Jun-2013 Nikita Popov

Implement internal operator overloading

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


Revision tags: php-5.5.0RC3, php-5.3.26, php-5.4.16, php-5.5.0RC2, php-5.3.26RC1, php-5.4.16RC1, php-5.5.0RC1, php-5.3.25, php-5.4.15
# 5b121eb0 07-May-2013 Ard Biesheuvel

Fix #64780 (PHP 5.5 builds are broken with GCC 3)

A recent change (by me) introduced a call to __builtin_offsetof()
into zend_operators.h which is not defined by GCC prior to
version

Fix #64780 (PHP 5.5 builds are broken with GCC 3)

A recent change (by me) introduced a call to __builtin_offsetof()
into zend_operators.h which is not defined by GCC prior to
version 4.

Changed the code to use offsetof() instead: this is defined in
<stddef.h>, so #include this header conditionally (#ifdef GNUC)

show more ...


Revision tags: php-5.3.25RC1, php-5.5.0beta4, php-5.4.15RC1, php-5.4.14, php-5.3.24, php-5.5.0beta3, php-5.3.24RC1, php-5.4.14RC1, php-5.5.0beta2, php-5.5.0beta1, php-5.3.23, php-5.4.13, php-5.5.0alpha6, php-5.3.23RC1, php-5.4.13RC1
# a86fcfbc 22-Feb-2013 Gustavo Lopes

Fix rounding of zend_dval_to_lval

Now rounding is always towards zero; the rounding can be though as if
occurring on the original double. Only relevant for the 32-bit long
variant.


Revision tags: php-5.3.22, php-5.5.0alpha5, php-5.4.12
# 77566edb 17-Feb-2013 Gustavo Lopes

Fix zend_dval_to_lval outside 64bit integers range

PHP should preserve the least significant bits when casting from double
to long. Zend.m4 contains this:

AC_DEFINE([ZEND_DVAL_T

Fix zend_dval_to_lval outside 64bit integers range

PHP should preserve the least significant bits when casting from double
to long. Zend.m4 contains this:

AC_DEFINE([ZEND_DVAL_TO_LVAL_CAST_OK], 1, [Define if double cast to long preserves least significant bits])

If ZEND_DVAL_TO_LVAL_CAST_OK is not defined, zend_operators.h had an
inline implementation of zend_dval_to_lval() that would do a cast to an
int64_t (when sizeof(long) == 4), then a cast to unsigned long and
finally the cast to long.

While this works well for doubles inside the range of values of the type
used in the first cast (int64_t in the 32-bit version and unsigned long
in the 64-bit version), if outside the range, it is undefined behavior
that WILL give varying and not particularly useful results.

This commit uses fmod() to first put the double in a range that can
safely be cast to unsigned long and then casts this unsigned long to
long. This last cast is implementation defined, but it's very likely
that this gives the expected result (i.e. the internal 2's complement
representation is unchanged) on all platforms that PHP supports. In any
case, the previous implementationa already had this assumption.

This alternative code path is indeed significantly slower than simply
casting the double (almost an order of magnitude), but that should not
matter because casting doubles with a very high absolute value is a
rare event.

show more ...


12345678910>>...13