Commit Graph

643 Commits

Author SHA1 Message Date
Dmitry Stogov
084c17fe0b Use zend_string_tolower() where it's possible (to avoid reallocations).
Allow zend_string_tolower_ex() to create parsistent strings
2017-11-30 01:13:39 +03:00
Nikita Popov
5dc6392d25 Fixed bug #75575
These functions are never called with needle longer than haystack,
but it makes sense to explicitly check for this, especially as we
already perform a check for empty haystack anyway, which is
naturally subsumed by a haystack_len < needle_len check.
2017-11-28 23:10:50 +01:00
Nikita Popov
26f8fc833b Enable and fix printf() format warnings
Add _unchecked() variants of zend_spprintf and zend_strpprintf for
cases where we specifically want to disable these checks, such as
use of %H.
2017-11-16 21:15:36 +01:00
Dmitry Stogov
ccc12b82da Avoid unnecessary reference-counting on strings. 2017-11-16 17:09:32 +03:00
Dmitry Stogov
ce18738a30 Removed "_" from API functions. 2017-11-16 17:09:01 +03:00
Dmitry Stogov
aeca761856 Removed useless reallocations 2017-10-26 19:13:53 +03:00
Dmitry Stogov
886d4d9ca1 Avoid reallocations when concatenate with empty string 2017-10-26 09:45:02 +03:00
Dmitry Stogov
9cf87aa196 Avoid HashTable allocations for empty arrays (using zend_empty_array). 2017-10-24 17:27:31 +03:00
Anatol Belski
793ca716fb Fix datatypes and compiler warnings
Switch to size_t

Not critical as an unsigned is already used, but fixes a couple of
warnings in other areas.

Normalize signature

It's a function with the usual compare semantics, returning a platform
specific at least produces unnecessary warnings elsewhere and is otherwise
inappropriate.

Fix return value

Drop unused var

Fix compiler warnings

Fix compiler warning

Fix var name in arginfo

Fix cast
2017-10-23 08:56:57 +02:00
Dmitry Stogov
cb9d81ef4f Refactored recursion pretection 2017-10-06 01:34:50 +03:00
Xinchen Hui
ac3c586ca7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
  Compiler warning
2017-09-24 17:25:26 +08:00
Xinchen Hui
bad5639386 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Update NEWS
  Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
  Compiler warning
2017-09-24 17:24:57 +08:00
Xinchen Hui
e8c200515a Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
  Compiler warning
2017-09-24 17:24:23 +08:00
Xinchen Hui
b05ff14a9a Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()). 2017-09-24 17:24:11 +08:00
Dmitry Stogov
44e0b79ac6 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. 2017-09-20 02:25:56 +03:00
Anatol Belski
0d1eeeb68d move zend_ato*() to size_t and remove casts 2017-07-28 14:59:31 +02:00
Sara Golemon
4a6ef8327a Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Simpler fix for #74974
2017-07-27 10:04:59 -04:00
Sara Golemon
b62fb3aa0c Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Simpler fix for #74974
2017-07-27 10:04:14 -04:00
Pedro Magalhães
34e5d3a87d Simpler fix for #74974 2017-07-27 09:25:38 -04:00
Sara Golemon
089f4ff885 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:28 -04:00
Sara Golemon
a4e3589966 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:20 -04:00
Sara Golemon
775b4b54d8
Use compatability zend_isnan() instead of POSIX isnan()
s/isnan/zend_isnan/g
2017-07-22 21:32:44 -04:00
Sara Golemon
e23c132940 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:29 -04:00
Sara Golemon
1229b0f8cb Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:17 -04:00
Sara Golemon
c562d44321
Fix compile-time optimization of NAN comparisons 2017-07-22 21:22:51 -04:00
Anatol Belski
bc5811f361 further sync for vim mode lines 2017-07-04 18:12:45 +02:00
Dmitry Stogov
a08723d3d3 Use interned empty and "one char" strings. 2017-05-18 17:59:59 +03:00
Anatol Belski
c698299550 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.
2017-03-04 10:39:13 +01:00
Xinchen Hui
963981df58 Merge branch 'PHP-7.1'
* PHP-7.1:
  Update NEWS
  Fixed bug #74084 (Out of bound read - zend_mm_alloc_small)
2017-02-12 20:36:43 +08:00
Xinchen Hui
b56114e8fb Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #74084 (Out of bound read - zend_mm_alloc_small)

Conflicts:
	Zend/zend_operators.c
2017-02-12 20:36:18 +08:00
Xinchen Hui
26fdebc63b Fixed bug #74084 (Out of bound read - zend_mm_alloc_small) 2017-02-12 20:34:08 +08:00
Sammy Kaye Powers
dac6c639bb Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
Sammy Kaye Powers
478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Sammy Kaye Powers
9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00
Dmitry Stogov
e8109e09aa Fixed memory leaks caused by exceptions thrown from destructors. 2016-12-07 00:41:07 +03:00
Dmitry Stogov
7d86ed1852 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion).
2016-12-05 21:50:06 +03:00
Dmitry Stogov
2f0e61f4b7 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion).
2016-12-05 21:49:09 +03:00
Dmitry Stogov
a983b728a7 Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion). 2016-12-05 21:45:08 +03:00
Nikita Popov
5e05b9b726 Merge branch 'PHP-7.1' 2016-12-02 17:04:20 +01:00
Nikita Popov
91d365f805 Merge branch 'PHP-7.0' into PHP-7.1 2016-12-02 17:03:59 +01:00
Nikita Popov
8f7325fc24 Fix leak in shift_right_function 2016-12-02 17:03:05 +01:00
Dmitry Stogov
e319504517 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion).
2016-12-02 15:14:48 +03:00
Dmitry Stogov
b3a4de65cd Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion).
2016-12-02 15:14:37 +03:00
Dmitry Stogov
2b70d44b57 Fixed behavior of failing compound assignments (they shouldn't change the source value when exception thrown during type converion). 2016-12-02 15:13:55 +03:00
Dmitry Stogov
0314958a43 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fixed behavior of failing compound assignments (they shouldn't change the source value).
2016-12-02 14:00:50 +03:00
Dmitry Stogov
5a57b3d6e0 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed behavior of failing compound assignments (they shouldn't change the source value).
2016-12-02 14:00:29 +03:00
Dmitry Stogov
dbf39cddd9 Fixed behavior of failing compound assignments (they shouldn't change the source value). 2016-12-02 13:58:44 +03:00
Dmitry Stogov
0ce5f99caf Merge branch 'PHP-7.1'
* PHP-7.1:
  Fixed possible memory leak in &=, |=, ^=.
2016-12-02 12:36:02 +03:00
Dmitry Stogov
04500f1fe0 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed possible memory leak in &=, |=, ^=.
2016-12-02 12:35:44 +03:00
Dmitry Stogov
67d90a4870 Fixed possible memory leak in &=, |=, ^=. 2016-12-02 12:34:46 +03:00
Dmitry Stogov
22cebaf89a Revert "Fix return value memory leaks upon exceptions in opcode operand freeing"
This reverts commit 9ad9d7ae37.
2016-12-02 11:58:41 +03:00
Bob Weinand
9ad9d7ae37 Fix return value memory leaks upon exceptions in opcode operand freeing 2016-11-30 17:44:34 +01:00
Andrea Faulds
a0502b89a6 Convert numeric keys in object/array casts
RFC: https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts

This converts key types as appropriate in object to array and array to object
casts, as well as in get_object_vars().
2016-11-14 18:20:45 +00:00
Nikita Popov
bbdff7ea24 Sync convert_to_null with VM cast behavior
Do not call cast_object, this is useless and we haven't been doing
it in the VM as of 7.0.
2016-09-04 12:36:16 +02:00
Dmitry Stogov
1b4946e658 Use "fast" assembler functions in "slow" ones.
Mark assembler functions that changes memory.
2016-06-01 20:52:14 +03:00
Lauri Kenttä
287f9489d8 Fix bug #72221 (segfault, past-the-end access) 2016-05-28 16:10:16 +08:00
Lauri Kenttä
26fa27d760 Fix bug #72221 (segfault, past-the-end access) 2016-05-21 18:46:00 +03:00
Dmitry Stogov
7b94b958cc Intern some known (and offten used) strings. 2016-05-12 13:47:22 +03:00
Dmitry Stogov
c19cb70dac Revert "Refactor zval cleanup into single function"
This reverts commit bac6fdb0c5.
2016-05-06 10:47:58 +03:00
Bob Weinand
bac6fdb0c5 Refactor zval cleanup into single function
Also use zval_ptr_dtor_nogc() everywhere in Zend in favor of zval_dtor()
2016-05-05 23:31:57 +02:00
Dmitry Stogov
2578d08033 Fixed compilation warnings 2016-04-29 14:44:56 +03:00
Nikita Popov
64f91774f2 Remove IS_VAR_RET_REF flag
Instead decide whether a function returned by reference or by value
by checking whether the return value has REFERENCE type. This means
that functions returning by reference must always return a reference
and functions returning by value must not return a reference.
2016-04-15 15:32:20 +02:00
Dmitry Stogov
0b3e2fe2b1 Delay IS_UNDEF check for FETCH_DIM_R and family 2016-04-13 00:05:19 +03:00
Andrea Faulds
1e82ad8038 Warn about invalid strings in arithmetic
Squashed commit of the following:

commit e05d3b6732
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Mar 30 01:43:35 2016 +0100

    UPGRADING and NEWS

commit 6caf1d4585
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Mar 20 21:18:33 2016 +0000

    Fixes

commit 6dadb1b0ef
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 02:15:01 2016 +0000

    Add test for numeric string errors in assignment

commit bd5f04e8dd
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 23:53:05 2016 +0000

    Add test for numeric string errors

commit c72e92f16d
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 23:28:33 2016 +0000

    Add test for scientific notation in integer operations

commit d94c08852d
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 01:25:57 2016 +0000

    Disable optimiser evaluation for numeric string errors

commit 30ee954ed1
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 01:46:25 2016 +0000

    fixup

commit a6403b79e0
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 22:00:27 2016 +0000

    Do not convert error-causing numeric strings ahead-of-time

commit f9dc354014
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 19:15:38 2016 +0000

    Disable compile-time evaluation for numeric string errors

commit e05b0cc849
Author: Andrea Faulds <ajf@ajf.me>
Date:   Fri Feb 5 11:42:26 2016 +0000

    Make _zval_get_long_func_noisy function for inlining

commit 84d66321a5
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 23:10:00 2016 +0000

    Update tests

commit 5ac4a0cc4b
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 22:08:19 2016 +0000

    Use is_numeric_string_ex for zval_get_long etc.

commit c21f088485
Author: Andrea Faulds <ajf@ajf.me>
Date:   Thu Jan 7 21:13:04 2016 +0000

    Update tests

commit 63e214cf81
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Jan 6 00:28:01 2016 +0000

    Warn on non-/bad numeric strings in arithmetic
2016-03-30 01:44:27 +01:00
Xinchen Hui
9712a974be Also protects object to array cast 2016-03-21 19:12:50 +08:00
Xinchen Hui
97a9470d97 bump year which is missed in rev 49493a2 2016-01-02 17:56:11 +08:00
Anatol Belski
d59eb9fcc3 fix decrement_function regarding bug #70863 2015-11-06 23:07:21 +01:00
Anatol Belski
8155ecba61 Fixed bug #70863 Incorect logic to increment_function for proxy objects 2015-11-06 23:07:16 +01:00
Xinchen Hui
8732ead953 Double declaration 2015-10-12 10:42:04 +08:00
Dmitry Stogov
b8b335c492 Restored the original (php-5) behavior of convert_to_cstring(). It was broken in php7 by mistake and caused problems in ext/pgsql/tests/bug46408.phpt. 2015-10-07 04:26:26 +03:00
Dmitry Stogov
24e88348f3 Revert "Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src"
This reverts commit a6be0f3fd6.
2015-10-06 23:48:12 +03:00
Bob Weinand
a6be0f3fd6 Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src 2015-10-05 14:50:04 +02:00
Xinchen Hui
f3e8675d38 Added folder marks 2015-09-10 15:01:28 +08:00
Dmitry Stogov
c174e4cd73 Change array sorting implementation to avoid two level callbacks system.
Simplify zval comparion API.
2015-09-10 02:51:23 +03:00
Dmitry Stogov
2ea18cd431 Better array_compare improvement 2015-09-09 15:11:03 +03:00
Dmitry Stogov
37f0c6b5cb Add myself into list of authors of the most refactored files. 2015-08-31 11:38:16 +03:00
Dmitry Stogov
9d31b29705 Avoid array duplication 2015-08-25 22:40:33 +03:00
Nikita Popov
0039a3e96f Fixed signed/unsigned warnings in wddx
Also added extra const annotation to zend_memnstr.
2015-07-17 17:19:23 +02:00
Xinchen Hui
e5a996f268 Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive inlining) 2015-07-13 16:22:55 +08:00
Aaron Piotrowski
5df893ce3c Use NULL where possible for exception class
Matches usage of zend_throw_exception()/zend_throw_exception_ex().
2015-07-07 12:10:55 -05:00
Anatol Belski
a97f764472 bring back the division by zero warning 2015-07-05 20:18:17 +02:00
Aaron Piotrowski
22c38b2ef5 Remove need to pass error level 2015-07-03 17:53:41 -05:00
Aaron Piotrowski
5a99c07ecc Enable throwing custom exceptions from errors 2015-07-03 17:53:40 -05:00
Bob Weinand
94722e12cf Introduce ArithmeticError 2015-07-02 20:47:44 +02:00
Xinchen Hui
ba91bc36cd Same here 2015-07-02 12:23:50 +08:00
Xinchen Hui
ba711aec30 Use one_char_string 2015-07-02 12:19:55 +08:00
Xinchen Hui
0e68e27854 Use one_char_string 2015-07-02 12:18:23 +08:00
Bob Weinand
007d7ac7ca Use DivisionByZeroError instead of exception for %/intdiv() 2015-07-02 02:20:58 +02:00
Bob Weinand
f9724b93f6 Remove warning upon division by zero 2015-07-02 02:20:58 +02:00
Dmitry Stogov
d2d326a381 Cleanup (avoid reallocatios and side effects in php_strip_tags) 2015-07-01 19:04:18 +03:00
Dmitry Stogov
7aa7627172 Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes). 2015-06-30 13:59:27 +03:00
Dmitry Stogov
4bd22cf1c1 Improved zend_string API (Francois Laupretre)
Squashed commit of the following:

commit d96eab8d79
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 b352643910
Author: Francois Laupretre <francois@tekwire.net>
Date:   Thu Jun 25 13:45:06 2015 +0200

    Improve zend_string API

    Add missing methods
2015-06-29 16:44:54 +03:00
Dmitry Stogov
1bba4452e7 Reverted wrong fb08798c9f 2015-06-29 12:20:09 +03:00
Bob Weinand
fb08798c9f Fix bug #69957 (Different ways of handling div/mod by zero) 2015-06-28 18:22:59 +02:00
Nikita Popov
8a83aed458 Drop duplicate object-to-type notices
We already generate a recoverable fatal for these earlier, no need
to throw an additional notice.
2015-06-22 16:25:32 +02:00
Dmitry Stogov
b97df475df Fixed crash in Zend/tests/bug69891.phpt on x86 (32-bit).
compare_function() now has to be compatible with binary_op_type (use fastcall convention).
Introduced new zval_compare_function() to be used as zval comparison callback instead of compare_function().
2015-06-22 12:53:52 +03:00
Dmitry Stogov
4a6e1345e2 Use COW to prevent unnecessary duplication of dynamic propertyes of stdClass (and other classes without predefined properties). 2015-06-17 12:50:16 +03:00
Nikita Popov
fb346c8f93 Support references in convert_to_*
conver_to_* functions now accept REFERENCE values, which will be
unwrapped before performing the usual conversion. This is consistent
with convert_scalar_to_number and matches the expected behavior in
a couple random use-sites I checked.

Also includes a couple fixes/cleanups elsewhere and two tests for
cases that previously didn't work (though the reference issue existed
all over the place).
2015-06-16 19:55:33 +02:00
Nikita Popov
183c00ddb6 Fix references handling in convert_scalar_to_number 2015-06-16 18:02:45 +02:00
Nikita Popov
5d3cf577aa 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.
2015-06-11 23:23:57 +02:00
Bob Weinand
9ca564d5f3 fix bitwise object operations 2015-06-04 16:09:22 +02:00
Bob Weinand
8a1c5d15d2 Use CG(one_char_string) if possible in bitwise string operations
emalloc() is not cheap... Also, a good part of bitwise string ops out there are on single bytes.
2015-06-03 02:57:16 +02:00
Dmitry Stogov
5fc88a9968 Inline IS_LONG value calculation and avoid strtol() call. 2015-05-05 11:09:18 +03:00
Dmitry Stogov
d880ead8a7 Improve fast_is_[not_]identical() functions to teturn value instead of takeing additional arguments.
Pair INSTANCEOF with the following JMPZ/JMPNZ.
2015-04-29 16:43:23 +03:00
Nikita Popov
23c7f19e41 Undef results for new arithmetic exceptions
For the compound assing case (e.g. $a <<= $b) the result is going
to be dtored, so we have to set *some* value.
2015-04-06 21:52:20 +02:00
Dmitry Stogov
5820be029a 0.0 / 0.0 = NaN 2015-04-06 22:03:44 +03:00
Anatol Belski
f0c533f421 fix build 2015-04-06 13:56:47 +02:00
Dmitry Stogov
cae0147ed3 Fixed weird operators behavior. Division by zero now emits warning and returns +/-INF, modulo by zero and intdid() throws an exception, shifts by negative offset throw exceptions. Compile-time evaluation of division by zero is disabled. 2015-04-06 14:30:05 +03:00
Dmitry Stogov
53d20140fb Fixed performance degradation introduced with lateast EnfineException related changes.
Restore original errors order in executor.
2015-04-02 03:56:42 +03:00
Dmitry Stogov
ec760d8fff Convert fatal errors into EngineExceptions 2015-04-01 20:01:57 +03:00
Dmitry Stogov
780a8123fe Convert fatal errors into EngineExceptions 2015-04-01 16:48:15 +03:00
Dmitry Stogov
e8672deefc Convert "Unsupported operands" fatal error into EngineException (exceptions can't be thrown at compile-time yet, so unsuported operands in constant expressions are still lead to fatal error). 2015-03-31 13:25:26 +03:00
Dmitry Stogov
0ce7b4c8c6 Removed unused functions 2015-03-24 23:40:20 +03:00
Dmitry Stogov
d146d15003 Optimize zend_string_realloc() add more specialized versions zend_string_extend() and zend_string_truncate() 2015-03-20 02:02:42 +03:00
Dmitry Stogov
4d4a5336f1 Embed "fast" operator functions (add, sub, increment, etc) into executor with additional optimizations 2015-03-17 18:53:19 +03:00
Dmitry Stogov
f42ebdd4e9 Fixed inconsistency 2015-03-14 15:11:55 +03:00
Dmitry Stogov
db10b72523 Use fastcall calling convention for most critical ZE subsystems. 2015-03-13 21:10:09 +03:00
Dmitry Stogov
716da71446 Don't inline slow path 2015-02-26 01:28:47 +03:00
Dmitry Stogov
e10e151e9b 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.
2015-02-13 22:20:39 +03:00
Nikita Popov
d133e68bab Remove support for hex number from is_numeric_string 2015-01-28 22:54:17 +01:00
Nikita Popov
6093c9370b Fix resource leak when casting to string 2015-01-24 23:18:26 +01:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Dmitry Stogov
90c20b4c24 Fixed typo 2015-01-14 21:09:06 +03:00
Dmitry Stogov
2325758624 Improve "instanceof". Interfaces of the left operand should be checked only if the right operand is interafce itself. 2015-01-14 15:06:26 +03:00
Xinchen Hui
2d8fd4b335 Add hinting 2015-01-12 22:06:40 -05:00
Xinchen Hui
2f1ddff2a5 Faster strrpos implementation 2015-01-12 17:24:37 +08:00
Xinchen Hui
31817447cc Faster zend_memnstr for long text 2015-01-12 15:34:46 +08:00
Stanislav Malyshev
b7a7b1a624 trailing whitespace removal 2015-01-10 15:07:38 -08:00
Nikita Popov
3e826c9736 Fix the same leak with %= 2015-01-07 23:21:12 +01:00
Nikita Popov
98c2ceacf8 Fix leak for compound shift self-assign error cases 2015-01-07 23:13:45 +01:00
Dmitry Stogov
c42ac09518 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.
2014-12-24 15:04:51 +03:00
Xinchen Hui
4b26c5d004 Please becareful with the tailed space after slash 2014-12-22 22:59:17 -05:00
Andrea Faulds
b2853e7494 share that hunk of code 2014-12-23 01:51:19 +00:00
Xinchen Hui
b5b617674e Micro optimaztion (yeah, I know compiler supposed to do that) 2014-12-22 00:10:46 -05:00
Xinchen Hui
c24125e2f9 Micro optimization 2014-12-21 23:16:25 -05:00
Xinchen Hui
201e1b8a8d Micro optimizations 2014-12-21 22:35:25 -05:00
Andrea Faulds
e5eb9530ab Use "float" and "integer" in typehint and zpp errors 2014-12-21 13:23:02 +00:00
Anatol Belski
a857f3a147 Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  Fix bug #67106 split main fpm config
  split fpm config to two parts. PR#903
  fix typo
  Fix undefined behaviour in strnatcmp
  Fix undefined behaviour in strnatcmp
  Fixed memory leak introduced by 73458e8f
  update NEWS
  move the test to the right place
  Fixed bug #68545 NULL pointer dereference in unserialize.c
2014-12-14 19:44:24 +01:00
Anatol Belski
bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Andrea Faulds
8c99b65c4d Fixed memory leak introduced by 73458e8f 2014-12-13 21:11:09 +00:00
Dmitry Stogov
2ea5f7aea4 Removed unused variables 2014-12-12 08:09:42 +03:00
Dmitry Stogov
73458e8f19 Replaced zendi_convert_to_long() with _zval_get_long_func() 2014-12-11 15:01:06 +03:00
Dmitry Stogov
27dc5986df Moved zend_is_true() from zend_execute.h/zend_execute_API.c into zend_operators.h/zend_operators.c.
Splited the most expensive part of inline i_zend_is_true() into a separate zend_object_is_true().
Replaced zendi_convert_to_long() with cals to zend_is_true().
2014-12-11 13:18:40 +03:00
Dmitry Stogov
5ba4ae7f67 Move checks for references into slow paths of operator functions. Remove duplicate opcode handlers. 2014-12-06 02:14:45 +03:00
Anatol Belski
ac964fbe30 fix datatype mismatches 2014-10-27 16:38:41 +01:00
Xinchen Hui
c584798b05 Useless assignment 2014-10-22 17:30:19 +08:00
Dmitry Stogov
089f496799 Moved proxy object support in ASSIGN_ADD (and family) from VM to slow paths of corresponding operators 2014-10-21 03:24:20 +04:00
Anatol Belski
c1e92d9fed fix C89 compat 2014-09-25 20:28:34 +02:00
krakjoe
eabad90acb fix indentation 2014-09-25 16:31:39 +01:00
krakjoe
abdc8c3061 fix zts build 2014-09-25 16:15:02 +01:00