Когда мне следует позвонить g_value_init
/ g_value_reset
?
В настоящее время я использую g_value_init
и g_value_reset
во всех случаях, но я хочу знать, можно ли его ускорить.
Я знаю, по крайней мере, что:
- При использовании объектов или типов в штучной упаковке определенно необходимо вызвать
g_value_reset
, потому что GValue мог получить ссылку или дублироваться в случаеэто GBoxed
. - При использовании элементарных типов, таких как
guint
или gboolean
(без какого-либо управления памятью), вызов g_value_reset
теоретически не должен быть необходим, поскольку для них не должна выделяться память.Я даже прочитал реализацию, и это подтверждается.Однако я обеспокоен тем, что авторы могут внести изменение и начать выделять некоторую память (или просто выполнить некоторое отслеживание), а затем это приведет к утечке памяти.
Это все мои текущие исследования.Я хотел бы расширить его, возможно, при поддержке официальных ссылок на документацию.Заранее спасибо.