動的に割り当てられたデータ引数で信号を送信する単純な dbus サービスを作成しました。
file_name = g_strdup("myfile");
...
...
g_signal_emit_by_name (object, "mysignal", file_name);
g_free(file_name);
この場合、シグナル リスナーは、file_name
既に破棄された文字列を受け取る可能性があります。
file_name
通話の直後に解放しても安全g_signal_emit_by_name
ですか、それとも数秒待つ必要がありますか? または、そのような場合にメモリを解放する他のメカニズムはありますか?