History log of /PHP-8.0/ext/opcache/Optimizer/zend_func_info.c (Results 101 – 125 of 227)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-7.4.0RC1
# 94e2f25f 03-Sep-2019 Tyson Andre

Add missing opcache return types for functions in spl

(excluding spl_autoload)

spl_object_id() is of the most interest to me,
since I frequently call it in an application.

Add missing opcache return types for functions in spl

(excluding spl_autoload)

spl_object_id() is of the most interest to me,
since I frequently call it in an application.

This includes false/null types caused by wrong argument types and wrong argument
counts.

I can't rule out iterator_to_array returning null in spl_iterator_apply,
so leave MAY_BE_NULL in.

With review comments by nikic:
Co-Authored-By: Nikita Popov <nikita.ppv@googlemail.com>

show more ...


# 597a5da0 03-Sep-2019 Nikita Popov

Support computing func info from ret arg info for internal funcs


# 3cca014c 03-Sep-2019 Nikita Popov

Remove duplicate func info for array_key_first/last

Looks like this was already added in master separately...


# 4de8503c 03-Sep-2019 Tyson Andre

Add missing opcache return info for ext/standard.

array_key_first/last returns null for invalid args,
wrong argument counts, and empty arrays.

random_bytes returns a string or t

Add missing opcache return info for ext/standard.

array_key_first/last returns null for invalid args,
wrong argument counts, and empty arrays.

random_bytes returns a string or throws.

show more ...


# 1a905bcb 03-Sep-2019 Tyson Andre

Add new missing functions from ext/hash


# 14958828 03-Sep-2019 Tyson Andre

Fix opcache optimizer info for time_nanosleep (again)

Fixes my earlier PR #4617

If I remember correctly,
The F0 macro is used for return values that are guaranteed to not be

Fix opcache optimizer info for time_nanosleep (again)

Fixes my earlier PR #4617

If I remember correctly,
The F0 macro is used for return values that are guaranteed to not be
reference counted.
The F1 macro is used for return values that may have up to 1 reference
(i.e. MAY_BE_RC1).

I didn't notice that time_nanosleep needed to be F1 since it could
return an array, and that array is reference counted.

show more ...


# 7f78f839 03-Sep-2019 Nikita Popov

php_stream_from_zval can no longer return false


# 9c3b7ccd 03-Sep-2019 Tyson Andre

Fix opcache return type for hash_update_stream

It can return false if the resource type is wrong.

```
php > var_export(hash_update_stream(hash_init('md5'),
imagecrea

Fix opcache return type for hash_update_stream

It can return false if the resource type is wrong.

```
php > var_export(hash_update_stream(hash_init('md5'),
imagecreate(1,1)));

Warning: hash_update_stream(): supplied resource is not a valid stream
resource in php shell code on line 1
false
```

The return types were initially added in
c88ffa9a5673cb3141660626ba1921671f0b84d6

show more ...


# 0581508b 02-Sep-2019 Dmitry Stogov

Fixed pow() function info


# 69cf5352 30-Aug-2019 Nikita Popov

Fix func info for chop()

chop() is an alias of rtrim() and may return copied strings, so
should use FN.


Revision tags: php-7.1.32, php-7.2.22, php-7.3.9
# 1e82a2d6 25-Aug-2019 Tyson Andre

Also fix signature for passthru

Backported from a1a8d144854acb1c891cf0c21abb0f612b1d8de7
https://www.php.net/manual/en/function.passthru.php#refsect1-function.passthru-returnvalues

Also fix signature for passthru

Backported from a1a8d144854acb1c891cf0c21abb0f612b1d8de7
https://www.php.net/manual/en/function.passthru.php#refsect1-function.passthru-returnvalues

`passthru()` is false with invalid args
`passthru('command')` is null.

show more ...


# f5bccc0e 25-Aug-2019 Tyson Andre

Fix opcache optimizer info for time_nanosleep

This can also return an array. See
https://www.php.net/manual/en/function.time-nanosleep.php#refsect1-function.time-nanosleep-returnvalues

Fix opcache optimizer info for time_nanosleep

This can also return an array. See
https://www.php.net/manual/en/function.time-nanosleep.php#refsect1-function.time-nanosleep-returnvalues

> If the delay was interrupted by a signal, an associative array will be
returned with the components:
>
> - seconds - number of seconds remaining in the delay
> - nanoseconds - number of nanoseconds remaining in the delay

Sending a SIGUSR1 to the below program would trigger this behavior.

```
pcntl_signal(\SIGUSR1, function ($signo, $signinfo) {
echo "Handling a signal $signo\n";
});
echo "Sleeping for 100 seconds\n";
var_export(time_nanosleep(100, 0));
```

The incomplete signature existed since c88ffa9a5.
No phpt tests existed for time_nanosleep returning an array

show more ...


Revision tags: php-7.4.0beta4
# 50be2ecb 20-Aug-2019 Tyson Andre

Fix opcache type info for stream_bucket_make_writable()

Closes GH-4567.


Revision tags: php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2
# 638c2176 23-Jun-2019 Peter Kokot

Remove HAVE_STRCOLL check

The strcoll function is defined in the C89 standard and should be
on today's systems always available via the <string.h> header.

https://port70.net/~ns

Remove HAVE_STRCOLL check

The strcoll function is defined in the C89 standard and should be
on today's systems always available via the <string.h> header.

https://port70.net/~nsz/c/c89/c89-draft.html#4.11.4.3

- Remove also SKIPIF strcoll check in test

show more ...


Revision tags: php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2
# 38c0f605 15-Jun-2019 Tyson Andre

zend_func_info: Remove null from methods with non-null return type

Detected by parsing the strings in zend_func_info.c, looping over them
and checking for inconsistencies with Reflection

zend_func_info: Remove null from methods with non-null return type

Detected by parsing the strings in zend_func_info.c, looping over them
and checking for inconsistencies with Reflection.

(new ReflectionFunction('str_shuffle')->getReturnType()) would be
a non-null 'string', for example.
- e.g. that change was made in 7393777da97977db5a4786a4dbe765bde4bc3921
for php 8.0

Closes GH-4269.

show more ...


# 74589cf6 15-Jun-2019 Tyson Andre

Make opcache zend_func_info consistent with Reflection for ctype

This follows up with php 8.0 adding a real return type
(non-null bool) in 1409a3b1535e221d8449416d77ed45175f3335d2


Revision tags: php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1
# 5d3e3a62 09-Jun-2019 Tyson Andre

Be more precise about possible types for mysqli methods

mysqli has an uncommon approach to 64-bit compatibility:
it will convert numbers that can't be represented on 32-bit
platforms

Be more precise about possible types for mysqli methods

mysqli has an uncommon approach to 64-bit compatibility:
it will convert numbers that can't be represented on 32-bit
platforms to a string.
This is documented at
https://www.php.net/manual/en/mysqli-stmt.affected-rows.php#refsect1-mysqli-stmt.affected-rows-returnvalues

So if there's a query to a remote mysqli server that affects
more than 2.2 billion rows, then the opcache inference might be
incorrect.

(It's possible to add a MAY_BE_STRING_ON_32_BIT_PLATFORM bitflag macro to
account for this, but I don't think there's a need or want to?)

Patches 3162285b86871fb22a85a50ce9bc30823da64b6a

This is based on the list of php 7.4 functions using
MYSQLI_RETURN_LONG_INT in mysqli_api.c

show more ...


# 07c63c6f 09-Jun-2019 Tyson Andre

Fix opcache signatures for mysqli_stat

See mysqli_api.c and https://www.php.net/manual/en/mysqli.stat.php


# 7350e808 09-Jun-2019 Tyson Andre

Fix bug in opcache flags for mysqli_get_charset

https://www.php.net/manual/en/mysqli.get-charset.php
tests/mysqli_field_seek.phpt has a test of this returning an object.

Looking

Fix bug in opcache flags for mysqli_get_charset

https://www.php.net/manual/en/mysqli.get-charset.php
tests/mysqli_field_seek.phpt has a test of this returning an object.

Looking at the source in ext/mysqli/mysqli_nonapi.c,
this should be object|null, not array|null

This might actually cause bugs in opcache's inferences,
(no proof of this)
so it might make sense to pull this patch into an earlier minor version.

show more ...


Revision tags: php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1
# eecd8961 14-May-2019 Nikita Popov

Add get_mangled_object_vars() function


# cdc82f19 09-Jun-2019 Tyson Andre

Fix php 8.0's opcache flags for pathinfo()

See https://php.net/pathinfo

This fixes a bug introduced in the cleanup for commit
0d79c70cf3c10f60a2e8fbfd68903d8716b7b43c

`

Fix php 8.0's opcache flags for pathinfo()

See https://php.net/pathinfo

This fixes a bug introduced in the cleanup for commit
0d79c70cf3c10f60a2e8fbfd68903d8716b7b43c

`pathinfo($str, PATHINFO_EXTENSION)` will always return a string
(if there is no extension, the function returns the empty string)

show more ...


# 5c8b702e 09-Jun-2019 Tyson Andre

Fix typo in opcache function flag info (mage->image)

ext/gd/gd.c seems to return null for wrong parameter count, false for
error, and long otherwise. See https://php.net/imagecoloralloca

Fix typo in opcache function flag info (mage->image)

ext/gd/gd.c seems to return null for wrong parameter count, false for
error, and long otherwise. See https://php.net/imagecolorallocate

In php 8.0, the MAY_BE_NULL can probably be removed.

show more ...


# cbaf37ff 09-Jun-2019 Tyson Andre

Delete opcache flags for php 8.0's removed mbereg*() aliases

See UPGRADING for Mbstring.
All of these are aliases of corresponding `mb_*`
functions that existed in php 7 but were rem

Delete opcache flags for php 8.0's removed mbereg*() aliases

See UPGRADING for Mbstring.
All of these are aliases of corresponding `mb_*`
functions that existed in php 7 but were removed in php 8.

Other functions such as gzgetss were already removed.

show more ...


# b921564a 09-Jun-2019 Tyson Andre

Clean up opcache func flags for set_socket_blocking

It was removed in php 7.0. See https://php.net/set_socket_blocking


# 0542eb5b 11-Jun-2019 Joe Watkins

Rest of c3e78efecfca85fc497357cc31ad4c6f4f7181aa


12345678910