おーぷんそーすおもしろいです

帰宅してついったのタイムラインを眺めてたら、昼間にFlashPlayer10の件で祭りになっていた様子。これリアルタイムで見てたら仕事に手が付けられなくなるところでした。危ない危ない。

どうやたVectorクラスによるGenericsが使えるようになるらしく、これで可読性、速度が向上するのではないかと思います。で、よく分からないまま定数プールのタイプ29を調べろという指令が出たので、Tamarinリポジトリを漁ってみました。

結論から言うと、29(0x1D)はCONSTANT_TypeNameでした(ActionBlockConstants.h)。AVM(ActionScriptVM)の組み込み型みたいなものだと思えばいいんでしょうか。実際にAVMで動かすときには、これを使ってVectorの型を取ってくるみたいです(該当コード)。Vectorクラス自体はAS3(?)でこのように記述されています。また、Vector関連の組み込みメソッド(もちろん他も)のIDはbuiltin.hにずらずらと書かれています。

こういうソースを見てるとやっぱり勉強になりますね。きれいな設計をしたければ、人のを真似するのがいいんだろうとは思いますが、設計の方向性にも色々あって悩むところです。気になってるのは以下の要素。

  • どれだけ実装を隠蔽すればいいのか?
    • pimplとかinterfaceとか
    • .cppでstatic関数を書きまくったりするのか?
  • スマートポインタでがっちがちに固めるのか?
  • イベント伝達の方法は?
    • 関数ポインタ、イベントリスナインタフェース
  • constはどれぐらい使うのか?
    • 特にメソッド後置const(って言うの?)

まぁざっとこんなところで。趣味といえばそれまでになってしまいそうなんですが、絶対的な答えがないことが根本的な問題ですね。