php-master-changes 2019-06-25

この日は preloading のバグ修正、メモリリークの修正、run-tests.php で、非 valgrind 時に USE_ZEND_ALLOC=1 を強制しないようにする修正、分かり辛い goto 利用箇所の修正、継承時の処理のリファクタリング、ドキュメントの更新、opcache で統計情報出力時に誤って符号付きにしていた箇所の修正、phpdbg の off-by-1 の修正、FFI のビットフィールドの操作処理の修正があった！

# 2019-06-25
## dstogov: Fixed bug [78175](https://bugs.php.net/bug.php?id=78175) (Preloading must store default values of static variables and properties)
- https://github.com/php/php-src/commit/0f29fb5cd81d9df4829bc63f704019df910b3075
- [7.4~]
- preload されたコードで静的変数が正常に扱えなかった問題の修正

## nikic: Fix region leak in mb_ereg_replace
- https://github.com/php/php-src/commit/46bad1d67975527a5b01e9140a799dbf64de8863
- [7.4~]
- ext/mbstring で、[mb_ereg_replace()](https://www.php.net/manual/ja/function.mb-ereg-replace.php) のメモリリークを修正

## nikic: Don't force USE_ZEND_ALLOC=0 in run-tests.php
- https://github.com/php/php-src/commit/3a36e68c49f2e0e850494e56e6aa60ccf296c712
- [7.4~]
- run-tests.php で、非 valgrind 時に USE_ZEND_ALLOC=1 を強制しないよう修正
- コミットコメントで 0 と 1 間違ってるくさい

## nikic: Fix EVP_PKEY leak in phar
- https://github.com/php/php-src/commit/31123de0c8261356e312aa5c9eec3afa34b7e41e
- [7.4~]
- ext/phar で、EVP_PKEY_free() 漏れのメモリリークを修正

## nikic: Avoid confusing gotos in phar_split_cache_list
- https://github.com/php/php-src/commit/43dd1ac5709d92b2a96374e9bbe9de2f0c1cbf63
- [7.4~]
- ext/phar で、分かり辛い goto 利用箇所を修正

## dstogov: Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
- https://github.com/php/php-src/commit/759f4ecd8bb2c87babc3890dbf40c3003ee320e0
- [7.4~]
- ZEND_DECLARE_CLASS のオペランド 2 に小文字化した親クラス名を突っ込んで実行時の処理を省略するよう修正

## derickr: Update NEWS for PHP 7.4.0alpha2
- https://github.com/php/php-src/commit/7657741997a7d8cf273fb5d981b46cca3a2bea25
- [7.4~]
- NEWS で PHP 7.4.0alpha2 のリリース日を 6/27 に修正

## derickr: Update NEWS for 7.4.0alpha3
- https://github.com/php/php-src/commit/d8e6054f462ea1234899c6efea6b1593d249e05a
- [7.4~]
- NEWS で 7.4 系の開発バージョンを PHP 7.4.0alpha3 に修正

## dstogov: Prevent useless hash lookups
- https://github.com/php/php-src/commit/bd0cb99d8c57f3f6b49abe4ccfdb2ef72ce3ab78
- [7.4~]
- ハッシュテーブルの不要なルックアップを避けるよう修正

## cmb69: Fix [#78202](https://bugs.php.net/bug.php?id=78202): Opcache stats for cache hits are capped at 32bit NUM
- https://github.com/php/php-src/commit/4366f22dfcadfa080862c3fcbac8e0e42f05bf62
- [7.2~]
- ext/opcache で、統計情報出力時に誤って符号付きにしていた箇所の修正

## dstogov: Reduce overhead of delayed early binding
- https://github.com/php/php-src/commit/e8f1f701016a73da93f0b468c1f70e0ae4e94bec
- [7.4~]
- [delayed early binding](https://externals.io/message/36115) のオーバヘッドを減らすよう修正

## dstogov: Set ZEND_ACC_LINKED flag after early binding (for consistency)
- https://github.com/php/php-src/commit/1d534b9da580783accd87f7edad99c9466c0afbc
- [7.4~]
- ZEND_ACC_LINKED のフラグ設定を early binding の後に行うよう修正
- まあリンクしてない段階でリンクしましたフラグ付いてたらおかしい

## nikic: run-tests: Don't die unnecessarily
- https://github.com/php/php-src/commit/74a7d0084629d6f2e092ce5823af03d868aba19a
- [7.4~]
- run-tests.php で、不要に die しないよう修正
- die ルートで止めるとメモリリークが余分に検出されるので、みたいな話のもよう

## nikic: Fix stream leak in phar cache_list
- https://github.com/php/php-src/commit/c7962207d7b4c1c0449c24338538a474c6f9dc13
- [7.4~]
- ext/phar で、cache_list でリソースリークがあったのを修正

## nikic: Fix TimeZone leak in intl MessageFormat
- https://github.com/php/php-src/commit/77f7ec51521531bc84b4d9dc9bb6767c9f2aeb39
- [7.4~]
- ext/intl で、TimeZone がリークしていた問題の修正

## nikic: Fix UConverter leak
- https://github.com/php/php-src/commit/b53bb3c15b1414e2f695988886b213dbe87bd223
- [7.4~]
- ext/intl で、UConverter::transcode() のメモリ / リソースリークの修正

## nikic: Fix SSL_CTX leak in ftp extension
- https://github.com/php/php-src/commit/6fcae63f614d1ed4aaeaff7b13a7a4627b1f1312
- [7.4~]
- ext/ftp で、SSL_CTX_free() が実行されずリークするケースがあった問題の修正

## nikic: Fix leak on sqlite3 open error
- https://github.com/php/php-src/commit/8277acefbd62a5a4846a10d1d9b4f7daa36ee363
- [7.4~]
- ext/sqlite3 で、[open()](https://php.net/manual/ja/sqlite3.open.php) 失敗時に sqlite3_close() を呼んでいなかった問題の修正

## nikic: Fix CURLINFO_COOKIELIST leak
- https://github.com/php/php-src/commit/8757f30cc7f857f9b619b2f8b2f2731507653846
- [7.4~]
- ext/curl で、[curl_getinfo()](https://www.php.net/manual/ja/function.curl-getinfo.php) で CURLINFO_COOKIELIST を指定した際のメモリ / リソースリークの修正

## nikic: Fix out of bounds write in phpdbg
- https://github.com/php/php-src/commit/42b22d3a9418e948fddf896dbe37536c6cc12f43
- [7.4~]
- sapi/phpdbg で、バッファが 1 バイト足りなかった問題の修正

## nikic: FFI: Perform bitfield operations byte-wise
- https://github.com/php/php-src/commit/0f3ca15bb787fd977a5875c456c2133e86bdd143
- [7.4~]
- ext/ffi で、ビットフィールドの操作処理を修正

## dstogov: Cleanup
- https://github.com/php/php-src/commit/ccbc121cb1d4f6f74f1b7b70f358a26858db7f6a
- [7.4~]
- リンク処理 perform_delayable_implementation_check() とその利用箇所のリファクタリング

## dstogov: Fixed variance check for abstract constructor during erlay binding
- https://github.com/php/php-src/commit/f09d41ffc04894acda1c27851287f007bbd5a030
- [7.4~]
- early binding 時の abstract コンストラクタの variance チェックの修正