今日は ext/mbstring のバグ修正 / リファクタリング、不要コードの削除、処理系起動時の初期化処理の修正、mod_php で PHP 処理系起動に失敗した場合の処理の修正、コメントの修正、ドキュメントの修正、ext/opcache のリファクタリング、ext/date のタイムゾーン DB の更新、trait のメソッド追加処理の参照カウント操作周りの修正があった!
2018-10-30
nikic: Fix mb_strrpos() with encoding passed as 3rd param
- https://github.com/php/php-src/commit/09c7108f743612e77826eac90e6f4d371d4209f9
- [7.3~]
- ext/mbstring で、7.3 開発版だと mb_strrpos() の第三引数へエンコーディングを渡した場合の挙動が壊れていた問題を修正
dstogov: Removed dead code
- https://github.com/php/php-src/commit/2491b7b65aba22836fa0cb95e58b137b96f428a9
- ext/opcache の不要コードの削除
dstogov: Execute zend_post_startup() with module_initialized flag set.
- https://github.com/php/php-src/commit/7a5416b1c54798e630b5453242c345b22dd4967b
- 処理系起動時(php_module_startup())の初期化処理において、拡張から使えるフックポイント zend_post_startup_cb の呼び出し時に module_initialized フラグを設定するよう修正
dstogov: Stop Apache if PHP wasn't started successful.
- https://github.com/php/php-src/commit/ea2e67876a55ffce2d38bff920ce7afdc7aff847
- sapi/apache2handler で、PHP 処理系の起動に失敗したら DONE を返して httpd を終了するように(?)
- フックが OK か DECLINE 以外を返してきたら続くフックを処理しない実装になってるのは確かだが……
- これ対応として合ってるのかなあ……?
- pre_config では前から DONE 返してるのがあるが
nikic: Use zend_string for mbstring last encoding cache
- https://github.com/php/php-src/commit/a7d6b2c1fb57bb77554d15d753cb44c69872e3cf
- ext/mbstring で、最後に使ったエンコーディング名のキャッシュに zend_string を使うよう修正
nikic: Remove redundant mbfl_string_init calls
- https://github.com/php/php-src/commit/837843ff4a9e5e72ab4c7eb131c0da848e10b7e7
- ext/mbstring で、mbfl_string_init() の不要な呼び出しを除去
nikic: Add missing null initialization
- https://github.com/php/php-src/commit/6da3eac56a2a0750fcc5900525447a8d218af87f
- ↑の zend_string 化で null 初期化の抜けていた箇所を修正
ylixir: fix bug #77079
- https://github.com/php/php-src/commit/8775bead3acf436e2f5da6049ef21d64c77d9f82
- ext/odbc で、odbc_fetch_object() と odbc_fetch_array() のコメント内のシグネチャが間違っていた問題の修正
- genfuncsummary などでソースコードからドキュメントを生成できるよう CODING_STANDARDS で proto の使い方 が決まってる
- バグチケットには psalm などの静的解析機が誤検知する原因と書いてあるが、実際には psalm は phan からシグネチャのデータをとっていて、どちらも手動で別々にメンテされているくさい
- 昔に proto やその生成物から phan のコードが生成されていた可能性はあるが、いま現在は特別同期してないんじゃないかな
- 両方に PR 投げといた(今見たらマージもされてたらしい)
petk: [ci skip] Update NEWS
- https://github.com/php/php-src/commit/91a11111606e4b5c0e8ecf7f7a7f69f5f8e23ef1
- [7.1~]
- ↑ の NEWS への追記
dstogov: Reslove inherited op_array references once afrer all optimizations.
- https://github.com/php/php-src/commit/ebf44fbbda0d21f18817e1ef54c2318eb0efd41a
- ext/opcache で、親から継承されるメソッドの op_array の参照解決を複数箇所でやっていたのを、全ての最適化が済んでから一回だけやるよう修正
derickr: Updated to version 2018.7 (2018g)
- https://github.com/php/php-src/commit/e58388ea6d0b0246f61a9267930c1eba9c0f7f6b
- [7.1~]
- ext/date で タイムゾーン DB のデータを更新
dstogov: Call function_add_ref() in proper place
- https://github.com/php/php-src/commit/2fefa8c61e0bd44a326c5d93e1d1f8410f79233e
- trait のメソッド追加処理において、function_add_ref() の位置を移動
- こうだったのがこうなってのこうなので、わりとテキトーやってる感が否めない
dstogov: Keep original value of "prototype"
- https://github.com/php/php-src/commit/bf38e6c10a3161f684951baba7086a35f66ee867
- ext/opcache で、親から継承されるメソッドの op_array の参照解決処理において、interface / abstract メソッドの互換性チェックで使う prototype の値を維持するよう修正