2018-10-11
今日は shadowed properties のプロパティ列挙での扱い修正、不要な分岐/コードの除去、ArrayObject 周りの修正、ドキュメントの更新があった! master だけが動いた日だった!
nikic: Fix foreach/get_object_vars for shadowed properties
- https://github.com/php/php-src/commit/4d5d77904e9e4dc52236ec5416d1ddfef9b3911c
- 親クラスのスコープからオブジェクトへの get_object_vars() や foreach で自身のプロパティを列挙する際、private なプロパティについて子クラスで同名の public プロパティが定義されている場合、その子クラスの public プロパティも見えてしまっていた問題の修正
- 実際見るとわかりやすい
- このケースは get_object_vars() / foreach どちらも親クラスの private プロパティしか見なくなる
- shadowed properties ってよく見るので、適切な訳語が欲しい……
nikic: Remember redundant check in filter.c
- https://github.com/php/php-src/commit/a8bc3889fd07fb4897d1e2b7f2d2b15388d76e39
- ext/filter でハッシュの不要なチェックを除去
nikic: Remove some redundant uses of HASH_OF
- https://github.com/php/php-src/commit/32d7e08286be3f7a1d8529d306a8cecebde8555c
- ext/filter で不要な HASH_OF() を除去
- HASH_OF() は zval がオブジェクトか配列かに応じて分岐しつつハッシュテーブルを取り出す処理、GET の内容とか常に配列で来るので無駄、というやつ
nikic: Remove leftover code dealing with curl wrappers
- https://github.com/php/php-src/commit/a710ceee62680e88e8fe90490c3a91321810fa62
- 削除された curl のストリームラッパー対応コードで、get_headers() の実装内に残ってた部分を除去
petk: Modernize the AC_PRESERVE_HELP_ORDER macro call
- https://github.com/php/php-src/commit/9bbf9967bd2ae5094e00fc6649d46f6082b44097
- autoconf のマクロ AC_PRESERVE_HELP_ORDER を無条件で呼ぶよう修正
- 現在の autoconf の最低要求バージョンは 2.68
nikic: Remove HASH_OF uses in ext/filter
- https://github.com/php/php-src/commit/bfaba83102e886de93aaec7d773ec3adfb2c943f
- ext/filter 内で HASH_OF() 使ってる箇所、あらためて見ると全部配列前提でよかったので、全部 Z_ARRVAL_P() へ置き換え
nikic: Drop unnecessary HASH_OF uses in ext/oci8
- https://github.com/php/php-src/commit/2c7be428530df41bb5de23e7788677930b618903
- ext/oci8 でも HASH_OF() が要らない箇所を修正
nikic: Remove unnecessary HASH_OF uses in mbstring
- https://github.com/php/php-src/commit/900ee5705fb6bbdabe0cc4681ff5b764e9222af8
- ext/mbstring でも HASH_OF() が要らない箇所を修正
nikic: Use ARRAY_OR_OBJECT arg in http_build_query
- https://github.com/php/php-src/commit/4ca5b357717ccf79b86966d04fc03287e551acdc
- http_build_query() の実装で、第一引数が配列とオブジェクトのどちらか、の判定をする実装を自前で持っていたのを Z_PARAM_ARRAY_OR_OBJECT() に置き換え
- エラーメッセージで「Parameter 1 expected to be Array or Object.」とか言っていた部分が「expects parameter 1 to be array, null given」のようにオブジェクトも取れるという情報が出なくなるが、そもそもどっちでも受け付ける、というのをそのうち消す気でいるので、強調したくないらしい
nikic: Remove redundant HASH_OF in mail.c
- https://github.com/php/php-src/commit/a27f772a460fff294374ae4b7a5158a52dae4c6a
- mail.c でも HASH_OF() の要らない箇所を修正
nikic: Remove unnecessary get_hash_table return value checks
- https://github.com/php/php-src/commit/5659035ab69b4c52866a1554d602d551737f7a1e
- ext/spl で ArrayObject の不要なチェック処理を除去
nikic: More straightforward count() on ArrayObject with object
- https://github.com/php/php-src/commit/0697d833837a0361d9344dddcf2be41806b86408
- ext/spl で ArrayObject の中身がオブジェクトである際の count() の実装を単純化/高速化
sgolemon: Update release process information to include the improved bumpRelease script
- https://github.com/php/php-src/commit/da4867195965c2b6e9a04037e1edd40967463db2
- README.RELEASE_PROCESS の内容へ、リリースアナウンスお助けスクリプトの bumpRelease がマイナーバージョンを扱えるようになったことを反映
nikic: Restore array_key_exists() compatibility for ArrayObject
- https://github.com/php/php-src/commit/0b6063f33112b4685bc3c23ae823556fec8f32f1
- 昨日入った get_properties_for ハンドラの修正で ZendFramework が動かなくなっていたのを修正
- array_key_exists() を ArrayObject へ使っていたのが問題だったので、特別対応で array_key_exists() のサポートを復活させた