GIR parser generates incorrect virtual methods in structs
For following case:
c:type="GdaBlobOpFunctions"
glib:type-name="GdaBlobOpFunctions"
glib:get-type="gda_blob_op_functions_get_type"
c:symbol-prefix="blob_op_functions">
<field name="get_length">
<callback name="get_length">
<return-value transfer-ownership="none">
<type name="glong" c:type="glong"/>
</return-value>
<parameters>
<parameter name="op" transfer-ownership="none">
<type name="BlobOp" c:type="GdaBlobOp*"/>
</parameter>
</parameters>
</callback>
</field>
</record>```
Correct generated code, should:
```[CCode (cheader_filename = "libgda/libgda.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gda_blob_op_functions_get_type ()")]
[Compact]
public class BlobOpFunctions {
public virtual long get_length (BlobOp op);
}```