func DumpCallableInfo(info *C.GICallableInfo) { throwsError := C.g_callable_info_can_throw_gerror(info) == C.gboolean(1) p("can throws error %v\n", throwsError) nArgs := C.g_callable_info_get_n_args(info) for i := C.gint(0); i < nArgs; i++ { argInfo := C.g_callable_info_get_arg(info, i) DumpArgInfo(argInfo) } returnOwnership := C.g_callable_info_get_caller_owns(info) p("return value ownership %s\n", TransferGetName(returnOwnership)) returnType := C.g_callable_info_get_return_type(info) defer C.g_base_info_unref(asBaseInfo(returnType)) p("return type %v\n", returnType) DumpTypeInfo(returnType) isMethod := C.g_callable_info_is_method(info) == C.gboolean(1) p("is method %v\n", isMethod) var iter C.GIAttributeIter var key, value *C.char for C.g_callable_info_iterate_return_attributes(info, &iter, &key, &value) == C.gboolean(1) { p("Attr %s = %s\n", C.GoString(key), C.GoString(value)) } mayReturnNull := C.g_callable_info_may_return_null(info) == C.gboolean(1) p("may return null %v\n", mayReturnNull) skipReturn := C.g_callable_info_skip_return(info) == C.gboolean(1) p("skip return %v\n", skipReturn) }
// g_callable_info_get_caller_owns func (ci *CallableInfo) CallerOwns() Transfer { return Transfer(C.g_callable_info_get_caller_owns((*C.GICallableInfo)(ci.c))) }
func (info *GiInfo) GetCallerOwns() Transfer { return (Transfer)(C.g_callable_info_get_caller_owns((*C.GICallableInfo)(info.ptr))) }