Edited at

php-master-changes 2019-01-08

今日は幾つかの拡張の微妙なコード整理、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


Andrey Hristov: Const changes


twose: Prefix error_code with underscore in FastZPP implementation


remicollet: cleanup merge


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


laruence: Fixed bug #77266 (Assertion failed in dce_live_ranges)