方法
GLibVariantref_sink
since: 2.24
声明 [src]
GVariant*
g_variant_ref_sink (
GVariant* value
)
描述 [src]
GVariant
使用了浮动的引用计数系统。所有以 g_variant_new_
开头名称的函数都返回浮动引用。
对具有浮动引用的 GVariant
调用 g_variant_ref_sink()
将将浮动引用转换为完整引用。对非浮动 GVariant
调用 g_variant_ref_sink()
将导致添加一个正常引用。
换句话说,如果 value
是浮动的,则此次调用“假定拥有”浮动引用,将其转换为正常引用。如果 value
不是浮动的,则此次调用将添加一个新的正常引用,并将引用计数增加一个。
所有导致 GVariant
实例被插入容器的调用都会在实例上调用 g_variant_ref_sink()
。这意味着如果值刚刚被创建(并且只有它的浮动引用),则容器将在此时单独拥有该值,调用者不需要取消引用它。这使得某些常见的编程样式变得更简单,同时仍然在值不浮动的情况下保持正常的引用计数语义。
自 2.24 版本以来可用。
返回值
类型: GVariant
相同的 value
。
方法调用者负责获取返回数据的所有权,并进行释放。 |