### Method

# GIRepository ObjectInfo find_vfunc_using_interfaces

since: 2.80

#### Declaration

    GIVFuncInfo*
    gi_object_info_find_vfunc_using_interfaces (
      GIObjectInfo* info,
      const char* name,
      GIBaseInfo** declarer
    )

#### Description

Locate a virtual function slot with name `name`, searching both the object `info` and any interfaces it implements.

`NULL` will be returned if there’s no vfunc available with that name.

Note that the namespace for virtuals is distinct from that of methods; there may or may not be a concrete method associated for a virtual. If there is one, it may be retrieved using `gi_vfunc_info_get_invoker()`, otherwise that method will return `NULL`.

Note that this function does not search parent classes; you will have to chain up if that’s desired.

Available since: 2.80

#### Parameters

`name`

  Type: `const char*`

  Name of vfunc to obtain.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`declarer`

  Type: `GIBaseInfo`

  The `GIObjectInfo` or `GIInterfaceInfo` which declares the vfunc, or `NULL` to ignore. If no vfunc is found, this will return `NULL`.

  The argument will be set by the function.
  The argument can be set to `NULL` by the method.
  The argument can be `NULL`.
  The caller of the method takes ownership of the data, and is responsible for freeing it.

#### Return value

Type: `GIVFuncInfo`

The `GIVFuncInfo`, or `NULL` if none was found. Free the struct by calling `gi_base_info_unref()` when done.

The caller of the method takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.