Guile の g-golf で g_timeout_add を使って queue_draw で drawing_area を再描画しまくると cairo の cairo_destroy で CAIRO_REFERENCE_COUNT_HAS_REFERENCE アサーションが出る問題で苦しんでたんだけど、C 言語で同じものを作ったら発生しないことが分かった……。C プログラマになるか。
Conversation
Notices
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Saturday, 15-May-2021 07:56:14 JST
きゅーけー
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Saturday, 15-May-2021 07:57:15 JST
きゅーけー
複雑なロジックは Guile を埋め込んで実装する方針でいきたい。ただ、私がこれから作るソフトウェアに複雑なロジックなるものが生まれる余地があるかどうかは謎。
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Saturday, 15-May-2021 08:00:09 JST
きゅーけー
Guile の guile-cairo ライブラリでメモリ管理をしているか確認した方がいいかも。destroy してるのでかなり怪しい気がする。。。
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Saturday, 15-May-2021 08:11:24 JST
きゅーけー
あー、これのせいか。たぶん理解できたと思う。http://git.savannah.nongnu.org/cgit/guile-cairo.git/tree/guile-cairo/guile-cairo-smob-types.c#n430
-
きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Saturday, 15-May-2021 08:17:48 JST
きゅーけー
Guile 側でオブジェクトを GC されないようにしたら GC するタイミングを失なってメモリリークするし、GC したら C 側でメモリ管理しているのと競合してエラーになる(たぶん)ので結構積んでるじゃん。結局 C プログラマへの道が開けてしまうのか。
-