今日は幾つかの拡張の微妙なコード整理、mysqlnd のリファクタリング、FastZPP のマクロ内変数定義へのアンダースコア追加、opcache の修正、mb_ereg_replace() の 7.2 以前からの非互換修正があった!
2019-01-08
nikic: Remove unnecessary uses of object_and_properties_init
- https://github.com/php/php-src/commit/ba5cb2eb325ffb933e4120c173c44e2e674e1506
- 不要に object_and_properties_init() を使ってる箇所を object_init_ex() へ置き換えるコード整理
- object_and_properties_init() は 第 3 引数でハッシュテーブルをとり、プロパティの初期化に利用する
- object_init_ex() は 第 3 引数 に 0 を渡して object_and_properties_init() を呼ぶラッパーなので、やってることは変わらず、単にプロパティ指定ここではしないんだよというのの明示かな
Andrey Hristov: Simplify the command factory
- https://github.com/php/php-src/commit/8975e4dcd7d6ff5758cd97a9125eedf7b5aa6e77
- ext/mysqlnd で、コマンド実行の単純化
- 以前は動的にコマンドを組み立てるような使い方を想定してたけどいらなくなったみたいな感じかな
Andrey Hristov: Const changes
- https://github.com/php/php-src/commit/d12443efc7b5381f4eae80ef576039e71ca31c76
- ext/mysqlnd で、より const を追加
twose: Prefix error_code with underscore in FastZPP implementation
- https://github.com/php/php-src/commit/6305119a5193d4318add01190ca4afbb49ded102
- [7.2~]
- FastZPP の実装で、マクロ内の変数定義 error_code を _error_code に修正
- これだけアンダースコア付いてなくて拡張内での利用名と被る可能性があった
- PR:3237
remicollet: cleanup merge
- https://github.com/php/php-src/commit/0d9935739c3a035f74b54aa518f2497975402864
- [7.2~]
- マージの際に入ってたゴミの除去かな
nikic: Don't swap operands of ZEND_MUL
- https://github.com/php/php-src/commit/1165a9068cbf3c3c24a78b47e0effcf9b90ec5bc
- [7.2~]
- ext/opcache で、
$i=expr+$i
を$i=$i+expr
に変換して$i+=expr
にするような最適化処理の際、ZEND_MUL を対象から除外、かな - 行列操作みたいなの用に演算子オーバーロードが行われる際は積が常に可換ではなくなるから、ということらしい
- 実際そんなのやる拡張とかあんのかな
nikic: Fixed bug #77428
- https://github.com/php/php-src/commit/76c687feaf86d305f8ba510a7319ccc1b66a8901
- [7.3~]
- ext/mbstring で、mb_ereg_replace() の動作に 7.2 以前との互換性がなくなっていた部分を修正
- shin1x1 の人が昨日くらい話してて報告された奴
- 見たら早い
- 修正箇所見ると PR:2044 で入った非互換なのかな
- nikic の人いわく今のも前のもおかしいけどとりあえず前の挙動にあわしとく、みたいな感じ
laruence: Fixed bug #77266 (Assertion failed in dce_live_ranges)
- https://github.com/php/php-src/commit/cd49db9d47fa979c308ef25b43123b08be0a5ab0
- [7.3~]
- ext/opcache で、dce_live_ranges のアサーションこけを修正
- SSA 使ったデータフロー解析の最適化導入時に入ったコードあたりなのまで追ったものの時間が足りず(出社時間が来てしまい)追えてない