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でもいい気がしてきた。

0

If you have a fediverse account, you can quote this note from your own instance. Search https://bookwor.ms/users/KitaitiMakoto/statuses/115977631368728098 on your instance and quote it. (Note that quoting is not supported in Mastodon.)