【发布时间】:2014-02-03 03:14:07
【问题描述】:
我创建了简单的 dbus 服务,它使用动态分配的数据参数发出信号:
file_name = g_strdup("myfile");
...
...
g_signal_emit_by_name (object, "mysignal", file_name);
g_free(file_name);
在这种情况下,信号侦听器可能会收到已被销毁的file_name 字符串。
那么在g_signal_emit_by_name 通话后立即释放file_name 是否安全,或者我应该等待几秒钟?
或者在这种情况下还有其他释放内存的机制吗?
【问题讨论】: