MemoryViewから取り出したデータを扱った後にrb_memory_view_releaseするわけだけど
それをrb_ensureでやろうと思うとめんどくさくない?
ensure_funcにrb_memory_view_tを渡したいんだけどVALUEしか受け付けないよね。
単に解放したいんであればselfを渡して、中でrb_memory_view_getするんでもいいかもだけど、
条件付きで解放したい場合はその条件も渡したいわけで、そのためだけにArrayとかラッパークラスを作るのかねえ・・・
「あるオブジェクトがMemoryViewをエクスポートする時はそれを使い、エクスポートしない時はVALUEの操作にフォールバックする」という処理を書いていると、
「MemoryViewを使っているかいないか」という条件に応じてrb_memory_view_releaseをするか(逆にxfreeするか)しないか決めないといけない。
こうして愚痴を書いていたらちょっと問題が整理されたな。
MemoryViewとフラグ一個だけならArrayでもいい気がしてきた。