CALayerのxxxColorプロパティに代入したCGColorがメモリリークしてしまう現象

CALayerクラスのBorderColorやBackgroundColorといったxxxColorプロパティに対してCGColorを代入した時、メモリリークが発生してしまう現象が起きた。

以下の様にした時、

layer = CALayer.Create ();
layer.BorderColor = new CGColor(1.0f, 1.0f, 1.0f, 1.0f);
layer.Dispose ();

InsturumentsでAllocation状況をモニタしているとCGColorのインスタンスがメモリ上に残り続けているのを見つけた。
layer.BorderColorが残っているのだろうかと、layer.BorderColorを直接Disposeしたりしてみても状況が変わらない。

結局以下の様にすることで回避できた。

layer = CALayer.Create ();
using (CGColor color = new CGColor (1.0f, 1.0f, 1.0f, 1.0f)) {
  layer.BorderColor = color;
}
layer.Dispose ();

どうやら代入しようとしてnewしたCGColorが残っていたようだ。
代入した物をDisposeすると正常に表示されないのでは?と思ったがなんの問題もなく動いている。内部でコピーしているのだろうか。原因は不明。

MonoTouch v5〜v5.1.2 previewでこの現象を確認している。