On 2021-03-21 18:05:25 +0100, Sebastian Ramacher wrote: > Control: tags -1 moreinfo > > Hi Rico > > On 2021-03-19 16:43:09 +0100, Rico Tzschichholz wrote: > > Package: release.debian.org > > Severity: normal > > User: release.debian.org@packages.debian.org > > Usertags: unblock > > X-Debbugs-Cc: ricotz@ubuntu.com > > > > Please unblock package vala > > > > [ Reason ] > > Vala 0.48.x series is a Long-Term support version and receives important bug > > fixes and binding fixes. > > > > It is part of GNOME SDK and improves the stability of the vala compiler shipped > > in Debian. > > > > Upstream summary at > > https://gitlab.gnome.org/GNOME/vala/-/commit/10166000cbf8963cfebae5e15fa0f13b15791308 > > > > [ Impact ] > > Vala is a compiler and affects every reverse-dependency. > > > > [ Tests ] > > The vala 0.48.x series is constantly used by current package set of Debian > > testing. > > The upstream test suite is extended with every release. > > http://ci.vala-project.org:8010/builders/vala-0.48/builds/39 > > > > [ Risks ] > > Vala is a compiler and affects every reverse-dependency. > > > > [ Other info ] > > Upstream between 0.48.14 and 0.48.15 > > https://gitlab.gnome.org/GNOME/vala/-/compare/8b87a6dbc354d5ec4a04fe6f65238e884bbd7211...10166000cbf8963cfebae5e15fa0f13b15791308 > > > > unblock vala/0.48.15-1 > > 109 files changed, 13216 insertions(+), 11665 deletions(-) > > That's quite a lot. Could you please prepare a filtered diff with the > relevant changes? Especially the changes to some of the *.c files look > like they were generated from the corresponding vala sources. Sorry, I missed the filtered diff. In any case, I rebuilt all the reverse dependencies of vala to check for regressions. Unfortunately, libisocodes is failing to build in unstable (see also https://tests.reproducible-builds.org/debian/rbuild/unstable/amd64/libisocodes_1.2.3-1.rbuild.log.gz). I haven't checked yet whether this failure is caused by vala or some other change in unstable, but until somebody does, let's put this one on hold. Cheers > > Cheers > > > > diff --git a/NEWS b/NEWS > > index 782900d78..e78d744d0 100644 > > --- a/NEWS > > +++ b/NEWS > > @@ -1,3 +1,48 @@ > > +Vala 0.48.15 > > +============ > > + * Various improvements and bug fixes: > > + - codegen: > > + + More use of get_ccode_type_name() > > + + "_first_array" parameter for params-array is variadic too > > + + Inherit GType from base struct of SimpleType structs > > + + Error for missing type-arguments of HashTable (de)serialization [#1147] > > + + Free intermediate temp-variables of postcondition expression [#80] > > + + Use the one available source_reference for internal error [#436] > > + + Fix access to captured generics in async method of interfaces [#537] > > + + Don't ever create null-aware free macro for GenericType > > + + Don't add generics arguments/parameters to async finish method > > + + Drop inner casts before converting between generics and integers > > + + Include "glib.h" for deprecated symbols (GOBJECT) [#1155] > > + - vala: > > + + Report warning if --target-glib=auto was not evaluated successfully > > + + Fix ownership inheritance of "unowned var" in foreach statement > > + + Add missing null-check in DataType.get_type_signature() > > + + Check array type of declarations for errornous type-arguments > > + + Check (optional) type-arguments of array creation expression > > + + Replace all type parameter occurances in parameters for signal delegate > > + + Improve error for incompatible expressions in conditional expression > > + - gdbus: Don't leak memory of deserialized arguments on error in wrapper method > > + - girparser: > > + + Reuse populated Node.gtype_struct_for instead of resolving again > > + + Evaluate "glib:type-struct" twice to pick up reparented structs > > + + Allow overriding of "Compact" attribute for classes > > + + Handle empty "<type/>" element and report an error > > + + Add support for NoWrapper metadata for methods > > + - testrunner: Include Gio-2.0/gio-2.0 for GIR tests too > > + > > + * Bindings: > > + - glib-2.0,gio-2.0: Add some missing type-arguments > > + - gio-2.0: Add some missing NoWrapper and CCode.has_typedef attributes > > + - gnutls: Fix some binding errors > > + - gsl: Fix some binding errors > > + - gtk4: Add Gtk.INVALID_LIST_POSITION [#1151] > > + - gtk4-unix-print: Switch to gir > > + - gtk4: Update to 4.1.2 > > + - libwnck-3.0: Update to 3.36.0 > > + - linux: Provide Input.Event.input_event_sec/input_event_usec fields [#1152] > > + - vapi: Fix a couple of attribute typos > > + - webkit2gtk-4.0: Update to 2.31.91 > > + > > Vala 0.48.14 > > ============ > > * Highlights: > > diff --git a/build-aux/testrunner.sh b/build-aux/testrunner.sh > > index dd97adb08..6c31fbe76 100755 > > --- a/build-aux/testrunner.sh > > +++ b/build-aux/testrunner.sh > > @@ -105,6 +105,7 @@ function sourceheader() { > > xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> > > <include name="GLib" version="2.0"/> > > <include name="GObject" version="2.0"/> > > + <include name="Gio" version="2.0"/> > > <c:include name="test.h"/> > > <namespace name="Test" > > version="1.2" > > @@ -130,7 +131,8 @@ function sourceend() { > > echo " </namespace>" >> $SOURCEFILE > > echo "</repository>" >> $SOURCEFILE > > fi > > - echo "$VAPIGEN $VAPIGENFLAGS --library $ns $ns.gir && tail -n +5 $ns.vapi|sed '\$d'|diff -wu $ns.vapi.ref -" > check > > + PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg") > > + echo "$VAPIGEN $VAPIGENFLAGS $PACKAGEFLAGS --library $ns $ns.gir && tail -n +5 $ns.vapi|sed '\$d'|diff -wu $ns.vapi.ref -" > check > > else > > PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg") > > echo "$VALAC $VALAFLAGS $PACKAGEFLAGS -o $ns$EXEEXT $SOURCEFILE" >> prepare > > diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala > > index b2b2e7e1e..851778171 100644 > > --- a/codegen/valaccodearraymodule.vala > > +++ b/codegen/valaccodearraymodule.vala > > @@ -148,7 +148,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { > > > > List<CCodeExpression> size = ((GLibValue) value).array_length_cvalues; > > if (size == null || size.size < dim) { > > - Report.error (null, "internal error: invalid array_length for given dimension"); > > + Report.error (array_type.source_reference, "internal: invalid array_length for given dimension"); > > return new CCodeInvalidExpression (); > > } > > return size[dim - 1]; > > diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala > > index dd5cb8a52..e647b4152 100644 > > --- a/codegen/valaccodeattribute.vala > > +++ b/codegen/valaccodeattribute.vala > > @@ -842,7 +842,7 @@ public class Vala.CCodeAttribute : AttributeCache { > > return "void"; > > } else if (node is ClassType) { > > var type = (ClassType) node; > > - return "%sClass*".printf (get_ccode_name (type.class_symbol)); > > + return "%s*".printf (get_ccode_type_name (type.class_symbol)); > > } else if (node is InterfaceType) { > > var type = (InterfaceType) node; > > return "%s*".printf (get_ccode_type_name (type.interface_symbol)); > > @@ -1014,8 +1014,8 @@ public class Vala.CCodeAttribute : AttributeCache { > > return get_ccode_upper_case_name (sym, "TYPE_"); > > } else if (sym is Struct) { > > unowned Struct st = (Struct) sym; > > - if (!get_ccode_has_type_id (st)) { > > - unowned Struct? base_struct = st.base_struct; > > + unowned Struct? base_struct = st.base_struct; > > + if (!get_ccode_has_type_id (st) || (base_struct != null && base_struct.is_simple_type ())) { > > if (base_struct != null) { > > return get_ccode_type_id (base_struct); > > } > > diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala > > index 60c4d34cd..412ec82d4 100644 > > --- a/codegen/valaccodebasemodule.vala > > +++ b/codegen/valaccodebasemodule.vala > > @@ -828,7 +828,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > > > var cenum = new CCodeEnum (get_ccode_name (en)); > > > > - cenum.modifiers |= (en.version.deprecated ? CCodeModifiers.DEPRECATED : 0); > > + if (en.version.deprecated) { > > + if (context.profile == Profile.GOBJECT) { > > + decl_space.add_include ("glib.h"); > > + } > > + cenum.modifiers |= CCodeModifiers.DEPRECATED; > > + } > > > > var current_cfile = cfile; > > cfile = decl_space; > > @@ -1649,6 +1654,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > } > > > > if (prop.version.deprecated) { > > + if (context.profile == Profile.GOBJECT) { > > + decl_space.add_include ("glib.h"); > > + } > > function.modifiers |= CCodeModifiers.DEPRECATED; > > } > > > > @@ -2834,9 +2842,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > > > string method_name = "get_%s_type".printf (type_parameter.name.ascii_down ()); > > var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface))); > > - cast_self.add_argument (new CCodeIdentifier ("self")); > > + cast_self.add_argument (get_this_cexpression ()); > > var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name)); > > - function_call.add_argument (new CCodeIdentifier ("self")); > > + function_call.add_argument (get_this_cexpression ()); > > return function_call; > > } > > > > @@ -3461,9 +3469,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > > > string method_name = "get_%s_destroy_func".printf (type_parameter.name.ascii_down ()); > > var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface))); > > - cast_self.add_argument (new CCodeIdentifier ("self")); > > + cast_self.add_argument (get_this_cexpression ()); > > var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name)); > > - function_call.add_argument (new CCodeIdentifier ("self")); > > + function_call.add_argument (get_this_cexpression ()); > > return function_call; > > } > > > > @@ -3695,7 +3703,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > } > > } > > > > - if (!is_gcollection && ccall.call is CCodeIdentifier && !(type is ArrayType) && !is_macro_definition) { > > + if (!is_gcollection && ccall.call is CCodeIdentifier && !(type is ArrayType) && !(type is GenericType) && !is_macro_definition) { > > // generate and use NULL-aware free macro to simplify code > > > > var freeid = (CCodeIdentifier) ccall.call; > > @@ -5926,8 +5934,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > generate_type_declaration (actual_type, cfile); > > result = new CCodeCastExpression (cexpr, get_ccode_name (actual_type)); > > } else if (analyzer.is_signed_integer_type_argument (actual_type)) { > > + // FIXME this should not happen > > + while (cexpr is CCodeCastExpression) { > > + cexpr = ((CCodeCastExpression) cexpr).inner; > > + } > > result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), get_ccode_name (actual_type)); > > } else if (analyzer.is_unsigned_integer_type_argument (actual_type)) { > > + // FIXME this should not happen > > + while (cexpr is CCodeCastExpression) { > > + cexpr = ((CCodeCastExpression) cexpr).inner; > > + } > > result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), get_ccode_name (actual_type)); > > } > > return result; > > @@ -5937,8 +5953,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > unowned SemanticAnalyzer analyzer = context.analyzer; > > var result = cexpr; > > if (analyzer.is_signed_integer_type_argument (actual_type)) { > > + // FIXME this should not happen > > + while (cexpr is CCodeCastExpression) { > > + cexpr = ((CCodeCastExpression) cexpr).inner; > > + } > > result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), get_ccode_name (pointer_type)); > > } else if (analyzer.is_unsigned_integer_type_argument (actual_type)) { > > + // FIXME this should not happen > > + while (cexpr is CCodeCastExpression) { > > + cexpr = ((CCodeCastExpression) cexpr).inner; > > + } > > result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), get_ccode_name (pointer_type)); > > } > > return result; > > @@ -6461,6 +6485,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { > > requires_assert = true; > > > > ccode.add_expression (cassert); > > + > > + foreach (var value in temp_ref_values) { > > + ccode.add_expression (destroy_value (value)); > > + } > > + > > + temp_ref_values.clear (); > > } > > > > public unowned DataType? get_this_type () { > > diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala > > index dd3e0fcf6..b0770a5a0 100644 > > --- a/codegen/valaccodedelegatemodule.vala > > +++ b/codegen/valaccodedelegatemodule.vala > > @@ -111,7 +111,13 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule { > > } > > > > var ctypedef = new CCodeTypeDefinition (get_ccode_name (creturn_type), cfundecl); > > - ctypedef.modifiers |= (d.version.deprecated ? CCodeModifiers.DEPRECATED : 0); > > + > > + if (d.version.deprecated) { > > + if (context.profile == Profile.GOBJECT) { > > + decl_space.add_include ("glib.h"); > > + } > > + ctypedef.modifiers |= CCodeModifiers.DEPRECATED; > > + } > > > > decl_space.add_type_declaration (ctypedef); > > } > > diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala > > index def8ae955..f15c660ee 100644 > > --- a/codegen/valaccodemethodmodule.vala > > +++ b/codegen/valaccodemethodmodule.vala > > @@ -178,6 +178,9 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { > > } > > > > if (m.version.deprecated) { > > + if (context.profile == Profile.GOBJECT) { > > + decl_space.add_include ("glib.h"); > > + } > > function.modifiers |= CCodeModifiers.DEPRECATED; > > } > > > > @@ -917,7 +920,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { > > } > > > > cparam = new CCodeParameter ("_first_%s".printf (get_ccode_name (param)), ctypename); > > - cparam_map.set (get_param_pos (get_ccode_pos (param), false), cparam); > > + cparam_map.set (get_param_pos (get_ccode_pos (param) - 0.1, true), cparam); > > > > va_list_name = "_va_list_%s".printf (get_ccode_name (param)); > > } > > @@ -979,7 +982,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule { > > cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), class_param); > > } > > > > - if (is_gtypeinstance_creation_method (m)) { > > + if (is_gtypeinstance_creation_method (m) && (direction & 1) == 1) { > > // memory management for generic types > > int type_param_index = 0; > > var cl = (Class) m.parent_symbol; > > diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala > > index 2eab9e0e1..edd392304 100644 > > --- a/codegen/valaccodestructmodule.vala > > +++ b/codegen/valaccodestructmodule.vala > > @@ -77,7 +77,13 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule { > > } > > > > var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st))); > > - instance_struct.modifiers |= (st.version.deprecated ? CCodeModifiers.DEPRECATED : 0); > > + > > + if (st.version.deprecated) { > > + if (context.profile == Profile.GOBJECT) { > > + decl_space.add_include ("glib.h"); > > + } > > + instance_struct.modifiers |= CCodeModifiers.DEPRECATED; > > + } > > > > foreach (Field f in st.get_fields ()) { > > if (f.binding == MemberBinding.INSTANCE) { > > diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala > > index 6eca1d14a..f0afb3c6a 100644 > > --- a/codegen/valagdbusservermodule.vala > > +++ b/codegen/valagdbusservermodule.vala > > @@ -193,6 +193,8 @@ public class Vala.GDBusServerModule : GDBusClientModule { > > } > > > > ccode.close (); > > + } else if (!need_goto_label && m.tree_can_fail && requires_destroy (owned_type)) { > > + need_goto_label = true; > > } > > } > > } > > diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala > > index 7fea7c92e..5d3960ba7 100644 > > --- a/codegen/valagtypemodule.vala > > +++ b/codegen/valagtypemodule.vala > > @@ -75,7 +75,7 @@ public class Vala.GTypeModule : GErrorModule { > > macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_name (cl)); > > decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_cast_function (cl)), macro)); > > > > - macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl)); > > + macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl)); > > decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_type_function (cl)), macro)); > > > > macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (get_ccode_type_id (cl)); > > @@ -84,7 +84,7 @@ public class Vala.GTypeModule : GErrorModule { > > macro = "(G_TYPE_CHECK_CLASS_TYPE ((klass), %s))".printf (get_ccode_type_id (cl)); > > decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_type_check_function (cl)), macro)); > > > > - macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl)); > > + macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl)); > > decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_get_function (cl)), macro)); > > decl_space.add_type_declaration (new CCodeNewline ()); > > } > > @@ -473,7 +473,7 @@ public class Vala.GTypeModule : GErrorModule { > > bool has_class_locks = false; > > > > var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_name (cl))); > > - var type_priv_struct = new CCodeStruct ("_%sClassPrivate".printf (get_ccode_name (cl))); > > + var type_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_type_name (cl))); > > > > if (is_gtypeinstance) { > > /* create type, dup_func, and destroy_func fields for generic types */ > > @@ -527,7 +527,7 @@ public class Vala.GTypeModule : GErrorModule { > > > > if (is_gtypeinstance) { > > if (cl.has_class_private_fields || has_class_locks) { > > - decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sClassPrivate".printf (get_ccode_name (cl))))); > > + decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (get_ccode_type_name (cl))))); > > } > > > > /* only add the *Private struct if it is not empty, i.e. we actually have private data */ > > @@ -559,7 +559,7 @@ public class Vala.GTypeModule : GErrorModule { > > if (cl.has_class_private_fields || has_class_locks) { > > decl_space.add_type_definition (type_priv_struct); > > > > - string macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))".printf (get_ccode_type_id (cl), get_ccode_name (cl)); > > + string macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sPrivate))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl)); > > decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_get_private_function (cl)), macro)); > > } > > } > > @@ -1189,7 +1189,7 @@ public class Vala.GTypeModule : GErrorModule { > > push_context (base_init_context); > > > > var base_init = new CCodeFunction ("%s_base_init".printf (get_ccode_lower_case_name (cl, null)), "void"); > > - base_init.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl)))); > > + base_init.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl)))); > > base_init.modifiers = CCodeModifiers.STATIC; > > > > push_function (base_init); > > @@ -1211,7 +1211,7 @@ public class Vala.GTypeModule : GErrorModule { > > push_context (class_init_context); > > > > var func = new CCodeFunction ("%s_class_init".printf (get_ccode_lower_case_name (cl, null))); > > - func.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl)))); > > + func.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl)))); > > func.add_parameter (new CCodeParameter ("klass_data", "gpointer")); > > func.modifiers = CCodeModifiers.STATIC; > > > > @@ -1240,7 +1240,7 @@ public class Vala.GTypeModule : GErrorModule { > > fundamental_class = fundamental_class.base_class; > > } > > > > - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (fundamental_class))); > > + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (fundamental_class))); > > var finalize_assignment = new CCodeAssignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%sfinalize".printf (get_ccode_lower_case_prefix (cl)))); > > ccode.add_expression (finalize_assignment); > > } > > @@ -1266,7 +1266,7 @@ public class Vala.GTypeModule : GErrorModule { > > > > CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (m)); > > cfunc = cast_method_pointer (m.base_method, cfunc, base_type, (m.coroutine ? 1 : 3)); > > - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (base_type))); > > + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (base_type))); > > ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (m.base_method)), cfunc); > > > > if (m.coroutine) { > > @@ -1283,7 +1283,7 @@ public class Vala.GTypeModule : GErrorModule { > > continue; > > } > > > > - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (cl))); > > + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (cl))); > > ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (sig.default_handler)), new CCodeIdentifier (get_ccode_real_name (sig.default_handler))); > > } > > > > @@ -1690,7 +1690,7 @@ public class Vala.GTypeModule : GErrorModule { > > var function = new CCodeFunction ("%s_class_finalize".printf (get_ccode_lower_case_name (cl, null)), "void"); > > function.modifiers = CCodeModifiers.STATIC; > > > > - function.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl)))); > > + function.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl)))); > > > > push_function (function); > > > > @@ -1712,7 +1712,7 @@ public class Vala.GTypeModule : GErrorModule { > > var function = new CCodeFunction ("%s_base_finalize".printf (get_ccode_lower_case_name (cl, null)), "void"); > > function.modifiers = CCodeModifiers.STATIC; > > > > - function.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl)))); > > + function.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl)))); > > function.add_parameter (new CCodeParameter ("klass_data", "gpointer")); > > > > push_function (function); > > @@ -2187,7 +2187,7 @@ public class Vala.GTypeModule : GErrorModule { > > push_context (new EmitContext (iface)); > > > > var default_init = new CCodeFunction ("%s_default_init".printf (get_ccode_lower_case_name (iface, null)), "void"); > > - default_init.add_parameter (new CCodeParameter ("iface", "%sIface *".printf (get_ccode_name (iface)))); > > + default_init.add_parameter (new CCodeParameter ("iface", "%s *".printf (get_ccode_type_name (iface)))); > > default_init.add_parameter (new CCodeParameter ("iface_data", "gpointer")); > > default_init.modifiers = CCodeModifiers.STATIC; > > > > diff --git a/codegen/valagvariantmodule.vala b/codegen/valagvariantmodule.vala > > index bd45a7738..d4719b906 100644 > > --- a/codegen/valagvariantmodule.vala > > +++ b/codegen/valagvariantmodule.vala > > @@ -468,7 +468,10 @@ public class Vala.GVariantModule : GValueModule { > > string value_name = "_tmp%d_".printf (next_temp_var_id++); > > > > var type_args = type.get_type_arguments (); > > - assert (type_args.size == 2); > > + if (type_args.size != 2) { > > + Report.error (type.source_reference, "Missing type-arguments for GVariant deserialization of `%s'".printf (type.type_symbol.get_full_name ())); > > + return new CCodeInvalidExpression (); > > + } > > var key_type = type_args.get (0); > > var value_type = type_args.get (1); > > > > @@ -785,7 +788,10 @@ public class Vala.GVariantModule : GValueModule { > > string value_name = "_tmp%d_".printf (next_temp_var_id++); > > > > var type_args = type.get_type_arguments (); > > - assert (type_args.size == 2); > > + if (type_args.size != 2) { > > + Report.error (type.source_reference, "Missing type-arguments for GVariant serialization of `%s'".printf (type.type_symbol.get_full_name ())); > > + return new CCodeInvalidExpression (); > > + } > > var key_type = type_args.get (0); > > var value_type = type_args.get (1); > > > > diff --git a/codegen/valatyperegisterfunction.vala b/codegen/valatyperegisterfunction.vala > > index eac326312..2150df0d7 100644 > > --- a/codegen/valatyperegisterfunction.vala > > +++ b/codegen/valatyperegisterfunction.vala > > @@ -223,7 +223,7 @@ public abstract class Vala.TypeRegisterFunction { > > > > add_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_add_class_private")); > > add_class_private_call.add_argument (new CCodeIdentifier (type_id_name)); > > - add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf (get_ccode_name (type_symbol)))); > > + add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sPrivate)".printf (get_ccode_type_name (cl)))); > > type_init.add_statement (new CCodeExpressionStatement (add_class_private_call)); > > } > > > > diff --git a/doc/vala-gen-introspect.1 b/doc/vala-gen-introspect.1 > > index 250e2e6aa..48edff8a3 100644 > > --- a/doc/vala-gen-introspect.1 > > +++ b/doc/vala-gen-introspect.1 > > @@ -1,5 +1,5 @@ > > .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1. > > -.TH VALA-GEN-INTROSPECT "1" "February 2021" "gen-introspect 0.48.14" "User Commands" > > +.TH VALA-GEN-INTROSPECT "1" "March 2021" "gen-introspect 0.48.15" "User Commands" > > .SH NAME > > vala-gen-introspect \- generate a GI file for GObject and glib based packages > > .SH SYNOPSIS > > diff --git a/doc/valac.1 b/doc/valac.1 > > index 8af927f0c..0a09d4469 100644 > > --- a/doc/valac.1 > > +++ b/doc/valac.1 > > @@ -1,5 +1,5 @@ > > .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1. > > -.TH VALAC "1" "February 2021" "Vala 0.48.14" "User Commands" > > +.TH VALAC "1" "March 2021" "Vala 0.48.15" "User Commands" > > .SH NAME > > valac \- compiler that translates Vala source code into C source and header files > > .SH SYNOPSIS > > diff --git a/doc/valadoc.1 b/doc/valadoc.1 > > index fd7a785a0..fe893c3ea 100644 > > --- a/doc/valadoc.1 > > +++ b/doc/valadoc.1 > > @@ -1,5 +1,5 @@ > > .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1. > > -.TH VALADOC "1" "February 2021" "Valadoc 0.48.14" "User Commands" > > +.TH VALADOC "1" "March 2021" "Valadoc 0.48.15" "User Commands" > > .SH NAME > > valadoc \- Vala Documentation Tool > > .SH SYNOPSIS > > diff --git a/doc/vapigen.1 b/doc/vapigen.1 > > index ca2e1cd00..54daa1bf4 100644 > > --- a/doc/vapigen.1 > > +++ b/doc/vapigen.1 > > @@ -1,5 +1,5 @@ > > .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1. > > -.TH VAPIGEN "1" "February 2021" "Vala API Generator 0.48.14" "User Commands" > > +.TH VAPIGEN "1" "March 2021" "Vala API Generator 0.48.15" "User Commands" > > .SH NAME > > vapigen \- generate a Vala API > > .SH SYNOPSIS > > diff --git a/tests/annotations/deprecated-delegate-minimal.vala b/tests/annotations/deprecated-delegate-minimal.vala > > new file mode 100644 > > index 000000000..3e34e8657 > > diff --git a/tests/annotations/deprecated-enum-minimal.vala b/tests/annotations/deprecated-enum-minimal.vala > > new file mode 100644 > > index 000000000..91f0be73e > > diff --git a/tests/annotations/deprecated-method-minimal.vala b/tests/annotations/deprecated-method-minimal.vala > > new file mode 100644 > > index 000000000..99aba27e8 > > diff --git a/tests/annotations/deprecated-property-minimal.vala b/tests/annotations/deprecated-property-minimal.vala > > new file mode 100644 > > index 000000000..a52e7733f > > diff --git a/tests/annotations/deprecated-struct-minimal.vala b/tests/annotations/deprecated-struct-minimal.vala > > new file mode 100644 > > index 000000000..6b1c34493 > > diff --git a/tests/basic-types/gvariants-hashtable-missing-type-arguments.test b/tests/basic-types/gvariants-hashtable-missing-type-arguments.test > > new file mode 100644 > > index 000000000..2ce71ded5 > > diff --git a/tests/generics/gvariant-serialization.test b/tests/generics/gvariant-serialization.test > > new file mode 100644 > > index 000000000..e9f9ad593 > > diff --git a/tests/generics/integer-member-access.vala b/tests/generics/integer-member-access.vala > > new file mode 100644 > > index 000000000..47dc31a13 > > diff --git a/tests/gir/async-creation-method.test b/tests/gir/async-creation-method.test > > new file mode 100644 > > index 000000000..fccafb0b8 > > diff --git a/tests/gir/method-class.test b/tests/gir/method-class.test > > new file mode 100644 > > index 000000000..adb7ec105 > > diff --git a/tests/gir/method-nowrapper.test b/tests/gir/method-nowrapper.test > > new file mode 100644 > > index 000000000..ed2c1deca > > diff --git a/tests/gir/signal-virtual.test b/tests/gir/signal-virtual.test > > new file mode 100644 > > index 000000000..b0073eddd > > diff --git a/tests/methods/params-array-with-throws.vala b/tests/methods/params-array-with-throws.vala > > new file mode 100644 > > index 000000000..9bffd6680 > > diff --git a/tests/methods/postconditions-temp-variables.vala b/tests/methods/postconditions-temp-variables.vala > > new file mode 100644 > > index 000000000..46414725d > > diff --git a/tests/methods/preconditions-temp-variables.vala b/tests/methods/preconditions-temp-variables.vala > > new file mode 100644 > > index 000000000..b116166bb > > diff --git a/tests/objects/bug626038-2.vala b/tests/objects/bug626038-2.vala > > new file mode 100644 > > index 000000000..2a2422846 > > diff --git a/tests/objects/interface-async-captured-generic.vala b/tests/objects/interface-async-captured-generic.vala > > new file mode 100644 > > index 000000000..ae51d676a > > diff --git a/tests/posix/string-concat.vala b/tests/posix/string-concat.vala > > new file mode 100644 > > index 000000000..ead6abeed > > diff --git a/tests/semantic/array-invalid-type-argument.test b/tests/semantic/array-invalid-type-argument.test > > new file mode 100644 > > index 000000000..89e6d4039 > > diff --git a/tests/semantic/array-too-few-type-arguments.test b/tests/semantic/array-too-few-type-arguments.test > > new file mode 100644 > > index 000000000..3161b5b3e > > diff --git a/tests/semantic/array-too-many-type-arguments.test b/tests/semantic/array-too-many-type-arguments.test > > new file mode 100644 > > index 000000000..84d64e83f > > diff --git a/tests/semantic/assignment-fixed-array-length.test b/tests/semantic/assignment-fixed-array-length.test > > new file mode 100644 > > index 000000000..5de56ba56 > > diff --git a/tests/semantic/conditional-expression-incompatible.test b/tests/semantic/conditional-expression-incompatible.test > > new file mode 100644 > > index 000000000..1d8c108c3 > > diff --git a/tests/structs/gtype-base-struct.vala b/tests/structs/gtype-base-struct.vala > > new file mode 100644 > > index 000000000..3a4c2b946 > > diff --git a/vala/valaarraycreationexpression.vala b/vala/valaarraycreationexpression.vala > > index 534481562..5e0f46172 100644 > > --- a/vala/valaarraycreationexpression.vala > > +++ b/vala/valaarraycreationexpression.vala > > @@ -245,6 +245,12 @@ public class Vala.ArrayCreationExpression : Expression { > > > > if (element_type != null) { > > element_type.check (context); > > + > > + // check whether there is the expected amount of type-arguments > > + if (!element_type.check_type_arguments (context, true)) { > > + error = true; > > + return false; > > + } > > } > > > > if (length_type == null) { > > diff --git a/vala/valaarraytype.vala b/vala/valaarraytype.vala > > index 588539c12..7fff66b04 100644 > > --- a/vala/valaarraytype.vala > > +++ b/vala/valaarraytype.vala > > @@ -324,7 +324,18 @@ public class Vala.ArrayType : ReferenceType { > > } > > } > > > > - return element_type.check (context); > > + if (!element_type.check (context)) { > > + error = true; > > + return false; > > + } > > + > > + // check whether there is the expected amount of type-arguments > > + if (!element_type.check_type_arguments (context, true)) { > > + error = true; > > + return false; > > + } > > + > > + return true; > > } > > > > public override DataType get_actual_type (DataType? derived_instance_type, List<DataType>? method_type_arguments, CodeNode? node_reference) { > > diff --git a/vala/valaclass.vala b/vala/valaclass.vala > > index dcd3ecacc..3fffdb352 100644 > > --- a/vala/valaclass.vala > > +++ b/vala/valaclass.vala > > @@ -555,15 +555,9 @@ public class Vala.Class : ObjectTypeSymbol { > > return false; > > } > > > > - int n_type_args = base_type_reference.get_type_arguments ().size; > > - int n_type_params = ((ObjectTypeSymbol) base_type_reference.type_symbol).get_type_parameters ().size; > > - if (n_type_args < n_type_params) { > > + // check whether there is the expected amount of type-arguments > > + if (!base_type_reference.check_type_arguments (context)) { > > error = true; > > - Report.error (base_type_reference.source_reference, "too few type arguments"); > > - return false; > > - } else if (n_type_args > n_type_params) { > > - error = true; > > - Report.error (base_type_reference.source_reference, "too many type arguments"); > > return false; > > } > > } > > diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala > > index af9afed33..051cc2c00 100644 > > --- a/vala/valacodecontext.vala > > +++ b/vala/valacodecontext.vala > > @@ -602,10 +602,13 @@ public class Vala.CodeContext { > > if (target_glib == "auto") { > > var available_glib = pkg_config_modversion ("glib-2.0"); > > if (available_glib != null && available_glib.scanf ("%d.%d", out glib_major, out glib_minor) >= 2) { > > - glib_minor -= ++glib_minor % 2; > > + glib_minor++; > > + glib_minor -= glib_minor % 2; > > set_target_glib_version ("%d.%d".printf (glib_major, glib_minor)); > > - return; > > + } else { > > + Report.warning (null, "Could not determine the version of `glib-2.0', target version of glib was not set"); > > } > > + return; > > } > > > > glib_major = target_glib_major; > > diff --git a/vala/valaconditionalexpression.vala b/vala/valaconditionalexpression.vala > > index 868b58108..01983ed25 100644 > > --- a/vala/valaconditionalexpression.vala > > +++ b/vala/valaconditionalexpression.vala > > @@ -194,7 +194,8 @@ public class Vala.ConditionalExpression : Expression { > > value_type = false_expression.value_type.copy (); > > } else { > > error = true; > > - Report.error (condition.source_reference, "Incompatible expressions"); > > + var source_reference = new SourceReference (true_expression.source_reference.file, true_expression.source_reference.begin, false_expression.source_reference.end); > > + Report.error (source_reference, "Cannot resolve target type from `%s' and `%s'".printf (true_expression.value_type.to_prototype_string (), false_expression.value_type.to_prototype_string ())); > > return false; > > } > > > > diff --git a/vala/valadatatype.vala b/vala/valadatatype.vala > > index bb00ff8cf..209a40821 100644 > > --- a/vala/valadatatype.vala > > +++ b/vala/valadatatype.vala > > @@ -497,6 +497,38 @@ public abstract class Vala.DataType : CodeNode { > > return result; > > } > > > > + public bool is_generic () { > > + if (this is GenericType) { > > + return true; > > + } > > + > > + if (!has_type_arguments ()) { > > + return false; > > + } > > + foreach (var type_arg in type_argument_list) { > > + if (type_arg.is_generic ()) { > > + return true; > > + } > > + } > > + return false; > > + } > > + > > + public void replace_type_parameter (TypeParameter old_type_param, TypeParameter new_type_param) { > > + if (this is GenericType) { > > + unowned GenericType generic_type = (GenericType) this; > > + if (generic_type.type_parameter == old_type_param) { > > + generic_type.type_parameter = new_type_param; > > + } > > + return; > > + } > > + if (!has_type_arguments ()) { > > + return; > > + } > > + foreach (var type_arg in type_argument_list) { > > + type_arg.replace_type_parameter (old_type_param, new_type_param); > > + } > > + } > > + > > /** > > * Search for the type parameter in this formal type and match it in > > * value_type. > > @@ -574,7 +606,12 @@ public abstract class Vala.DataType : CodeNode { > > str.append_c ('('); > > foreach (Field f in st.get_fields ()) { > > if (f.binding == MemberBinding.INSTANCE) { > > - str.append (f.variable_type.get_type_signature (f)); > > + var s = f.variable_type.get_type_signature (f); > > + if (s != null) { > > + str.append (s); > > + } else { > > + return null; > > + } > > } > > } > > str.append_c (')'); > > @@ -612,4 +649,49 @@ public abstract class Vala.DataType : CodeNode { > > return null; > > } > > } > > + > > + /** > > + * Returns whether the given amount of type-argument matches the symbol's count of type-parameters > > + * > > + * @param context a CodeContext > > + * @param allow_none whether no type-argments are allowed > > + * @return true if successful > > + */ > > + public bool check_type_arguments (CodeContext context, bool allow_none = false) { > > + int n_type_args = get_type_arguments ().size; > > + int expected_n_type_args = 0; > > + > > + if (type_symbol is ObjectTypeSymbol) { > > + expected_n_type_args = ((ObjectTypeSymbol) type_symbol).get_type_parameters ().size; > > + } else if (type_symbol is Struct) { > > + expected_n_type_args = ((Struct) type_symbol).get_type_parameters ().size; > > + } else if (type_symbol is Delegate) { > > + expected_n_type_args = ((Delegate) type_symbol).get_type_parameters ().size; > > + } else if (n_type_args > 0) { > > + Report.error (source_reference, "`%s' does not support type arguments".printf (type_symbol.get_full_name ())); > > + error = true; > > + return false; > > + } else { > > + // nothing to do here > > + return true; > > + } > > + > > + if ((!allow_none || n_type_args > 0) && n_type_args < expected_n_type_args) { > > + error = true; > > + Report.error (source_reference, "too few type arguments for `%s'".printf (type_symbol.get_full_name ())); > > + return false; > > + } else if ((!allow_none || n_type_args > 0) && n_type_args > expected_n_type_args) { > > + error = true; > > + Report.error (source_reference, "too many type arguments for `%s'".printf (type_symbol.get_full_name ())); > > + return false; > > + } > > + > > + foreach (DataType type in get_type_arguments ()) { > > + if (!type.check (context)) { > > + return false; > > + } > > + } > > + > > + return true; > > + } > > } > > diff --git a/vala/valadelegatetype.vala b/vala/valadelegatetype.vala > > index 4029f00af..9821a9e70 100644 > > --- a/vala/valadelegatetype.vala > > +++ b/vala/valadelegatetype.vala > > @@ -99,23 +99,9 @@ public class Vala.DelegateType : CallableType { > > return false; > > } > > > > - var n_type_params = delegate_symbol.get_type_parameters ().size; > > - var n_type_args = get_type_arguments ().size; > > - if (n_type_args > 0 && n_type_args < n_type_params) { > > - error = true; > > - Report.error (source_reference, "too few type arguments"); > > + // check whether there is the expected amount of type-arguments > > + if (!check_type_arguments (context, true)) { > > return false; > > - } else if (n_type_args > 0 && n_type_args > n_type_params) { > > - error = true; > > - Report.error (source_reference, "too many type arguments"); > > - return false; > > - } > > - > > - foreach (DataType type in get_type_arguments ()) { > > - if (!type.check (context)) { > > - error = true; > > - return false; > > - } > > } > > > > return true; > > diff --git a/vala/valaforeachstatement.vala b/vala/valaforeachstatement.vala > > index a04076b58..e225047bc 100644 > > --- a/vala/valaforeachstatement.vala > > +++ b/vala/valaforeachstatement.vala > > @@ -332,9 +332,10 @@ public class Vala.ForeachStatement : Block { > > // analyze element type > > if (type_reference is VarType) { > > // var type > > + bool value_owned = type_reference.value_owned; > > type_reference = element_type.copy (); > > // FIXME Only follows "unowned var" otherwise inherit ownership of element-type > > - if (!type_reference.value_owned) { > > + if (!value_owned) { > > type_reference.value_owned = false; > > } > > } else if (!element_type.compatible (type_reference)) { > > @@ -354,9 +355,10 @@ public class Vala.ForeachStatement : Block { > > // analyze element type > > if (type_reference is VarType) { > > // var type > > + bool value_owned = type_reference.value_owned; > > type_reference = element_type.copy (); > > // FIXME Only follows "unowned var" otherwise inherit ownership of element-type > > - if (!type_reference.value_owned) { > > + if (!value_owned) { > > type_reference.value_owned = false; > > } > > } else if (!element_type.compatible (type_reference)) { > > diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala > > index fe9ea451d..5496023c2 100644 > > --- a/vala/valagirparser.vala > > +++ b/vala/valagirparser.vala > > @@ -63,6 +63,7 @@ public class Vala.GirParser : CodeVisitor { > > VFUNC_NAME, > > VIRTUAL, > > ABSTRACT, > > + COMPACT, > > SEALED, > > SCOPE, > > STRUCT, > > @@ -93,6 +94,7 @@ public class Vala.GirParser : CodeVisitor { > > DESTROY_NOTIFY_CNAME, > > FINISH_VFUNC_NAME, > > NO_ACCESSOR_METHOD, > > + NO_WRAPPER, > > CNAME, > > DELEGATE_TARGET, > > CTYPE; > > @@ -537,6 +539,8 @@ public class Vala.GirParser : CodeVisitor { > > public ArrayList<int> destroy_parameters; > > // record-specific > > public UnresolvedSymbol gtype_struct_for; > > + // class-specific > > + public UnresolvedSymbol type_struct; > > // alias-specific > > public DataType base_type; > > // struct-specific > > @@ -854,6 +858,25 @@ public class Vala.GirParser : CodeVisitor { > > return res; > > } > > > > + static void move_class_methods (Node target, Node? source) { > > + if (source == null) { > > + return; > > + } > > + > > + var i = 0; > > + while (i < source.members.size) { > > + var node = source.members[i]; > > + if (node.symbol is Method) { > > + source.remove_member (node); > > + target.add_member (node); > > + > > + ((Method) node.symbol).binding = MemberBinding.CLASS; > > + } else { > > + i++; > > + } > > + } > > + } > > + > > public void process (GirParser parser) { > > if (processed) { > > return; > > @@ -881,24 +904,12 @@ public class Vala.GirParser : CodeVisitor { > > } > > > > if (symbol is Class && girdata != null) { > > + if (type_struct != null) { > > + move_class_methods (this, parser.resolve_node (parent, type_struct)); > > + } > > var class_struct = girdata["glib:type-struct"]; > > if (class_struct != null) { > > - var klass = parser.resolve_node (parent, parser.parse_symbol_from_string (class_struct, source_reference)); > > - if (klass != null) { > > - var i = 0; > > - while ( i < klass.members.size ) { > > - var node = klass.members[i]; > > - if (node.symbol is Method) { > > - klass.remove_member (node); > > - this.add_member (node); > > - > > - Method m = (Method) node.symbol; > > - m.binding = MemberBinding.CLASS; > > - } else { > > - i++; > > - } > > - } > > - } > > + move_class_methods (this, parser.resolve_node (parent, parser.parse_symbol_from_string (class_struct, source_reference))); > > } > > } > > > > @@ -1202,9 +1213,8 @@ public class Vala.GirParser : CodeVisitor { > > merged = true; > > } else { > > // record for a gtype > > - var gtype_struct_for = girdata["glib:is-gtype-struct-for"]; > > if (gtype_struct_for != null) { > > - var obj = parser.resolve_node (parent, parser.parse_symbol_from_string (gtype_struct_for, source_reference)); > > + var obj = parser.resolve_node (parent, gtype_struct_for); > > if (obj != null && obj.symbol is Interface && "%sIface".printf (obj.get_cname ()) != get_cname ()) { > > // set the interface struct name > > obj.symbol.set_attribute_string ("CCode", "type_cname", get_cname ()); > > @@ -2713,7 +2723,16 @@ public class Vala.GirParser : CodeVisitor { > > type_name = ctype; > > } > > > > - DataType type = parse_type_from_gir_name (type_name, out no_array_length, out array_null_terminated, ctype); > > + DataType type; > > + if (type_name != null) { > > + type = parse_type_from_gir_name (type_name, out no_array_length, out array_null_terminated, ctype); > > + } else { > > + // empty <type/> > > + no_array_length = false; > > + array_null_terminated = false; > > + type = new InvalidType (); > > + Report.error (get_current_src (), "empty type element"); > > + } > > > > // type arguments / element types > > while (current_token == MarkupTokenType.START_ELEMENT) { > > @@ -2932,6 +2951,11 @@ public class Vala.GirParser : CodeVisitor { > > if (parent != null) { > > cl.add_base_type (parse_type_from_gir_name (parent)); > > } > > + var type_struct = reader.get_attribute ("glib:type-struct"); > > + if (type_struct != null) { > > + current.type_struct = parse_symbol_from_string (type_struct, current.source_reference); > > + unresolved_gir_symbols.add (current.type_struct); > > + } > > current.symbol = cl; > > } else { > > cl = (Class) current.symbol; > > @@ -3270,9 +3294,12 @@ public class Vala.GirParser : CodeVisitor { > > } else { > > m.is_virtual = true; > > } > > - if (invoker == null && !metadata.has_argument (ArgumentType.VFUNC_NAME)) { > > + if (metadata.has_argument (ArgumentType.NO_WRAPPER)) { > > + s.set_attribute ("NoWrapper", metadata.get_bool (ArgumentType.NO_WRAPPER), s.source_reference); > > + } else if (invoker == null && !metadata.has_argument (ArgumentType.VFUNC_NAME)) { > > s.set_attribute ("NoWrapper", true, s.source_reference); > > - } if (current.girdata["name"] != name) { > > + } > > + if (current.girdata["name"] != name) { > > m.set_attribute_string ("CCode", "vfunc_name", current.girdata["name"]); > > } > > } else if (symbol_type == "function") { > > @@ -3482,7 +3509,11 @@ public class Vala.GirParser : CodeVisitor { > > bool require_copy_free = false; > > if (current.new_symbol) { > > cl = new Class (current.name, current.source_reference); > > - cl.is_compact = true; > > + if (metadata.has_argument (ArgumentType.COMPACT)) { > > + cl.is_compact = metadata.get_bool (ArgumentType.COMPACT); > > + } else { > > + cl.is_compact = true; > > + } > > current.symbol = cl; > > } else { > > cl = (Class) current.symbol; > > diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala > > index ea9565755..321058ae6 100644 > > --- a/vala/valaobjectcreationexpression.vala > > +++ b/vala/valaobjectcreationexpression.vala > > @@ -256,14 +256,9 @@ public class Vala.ObjectCreationExpression : Expression { > > value_type = type_reference.copy (); > > value_type.value_owned = true; > > > > - int given_num_type_args = type_reference.get_type_arguments ().size; > > - int expected_num_type_args = 0; > > - > > if (type is Class) { > > var cl = (Class) type; > > > > - expected_num_type_args = cl.get_type_parameters ().size; > > - > > if (struct_creation) { > > error = true; > > Report.error (source_reference, "syntax error, use `new' to create new objects"); > > @@ -320,8 +315,6 @@ public class Vala.ObjectCreationExpression : Expression { > > } else if (type is Struct) { > > var st = (Struct) type; > > > > - expected_num_type_args = st.get_type_parameters ().size; > > - > > if (!struct_creation && !context.deprecated) { > > Report.warning (source_reference, "deprecated syntax, don't use `new' to initialize structs"); > > } > > @@ -337,13 +330,9 @@ public class Vala.ObjectCreationExpression : Expression { > > } > > } > > > > - if (expected_num_type_args > given_num_type_args) { > > - error = true; > > - Report.error (source_reference, "too few type arguments"); > > - return false; > > - } else if (expected_num_type_args < given_num_type_args) { > > + // check whether there is the expected amount of type-arguments > > + if (!type_reference.check_type_arguments (context)) { > > error = true; > > - Report.error (source_reference, "too many type arguments"); > > return false; > > } > > > > diff --git a/vala/valaobjecttype.vala b/vala/valaobjecttype.vala > > index 53101926c..8e08ade76 100644 > > --- a/vala/valaobjecttype.vala > > +++ b/vala/valaobjecttype.vala > > @@ -103,21 +103,9 @@ public class Vala.ObjectType : ReferenceType { > > return false; > > } > > > > - int n_type_args = get_type_arguments ().size; > > - if (n_type_args > 0 && n_type_args < object_type_symbol.get_type_parameters ().size) { > > - error = true; > > - Report.error (source_reference, "too few type arguments"); > > + // check whether there is the expected amount of type-arguments > > + if (!check_type_arguments (context, true)) { > > return false; > > - } else if (n_type_args > 0 && n_type_args > object_type_symbol.get_type_parameters ().size) { > > - error = true; > > - Report.error (source_reference, "too many type arguments"); > > - return false; > > - } > > - > > - foreach (DataType type in get_type_arguments ()) { > > - if (!type.check (context)) { > > - return false; > > - } > > } > > > > return true; > > diff --git a/vala/valasignal.vala b/vala/valasignal.vala > > index 392b31489..c63542617 100644 > > --- a/vala/valasignal.vala > > +++ b/vala/valasignal.vala > > @@ -122,7 +122,7 @@ public class Vala.Signal : Symbol, Callable { > > actual_param.variable_type = actual_param.variable_type.get_actual_type (sender_type, null, node_reference); > > generated_delegate.add_parameter (actual_param); > > > > - if (actual_param.variable_type is GenericType) { > > + if (actual_param.variable_type.is_generic ()) { > > is_generic = true; > > } > > } > > @@ -136,9 +136,8 @@ public class Vala.Signal : Symbol, Callable { > > // parameter types must refer to the delegate type parameters > > // instead of to the class type parameters > > foreach (var param in generated_delegate.get_parameters ()) { > > - unowned GenericType? generic_type = param.variable_type as GenericType; > > - if (generic_type != null) { > > - generic_type.type_parameter = generated_delegate.get_type_parameters ().get (generated_delegate.get_type_parameter_index (generic_type.type_parameter.name)); > > + foreach (var type_param in generated_delegate.get_type_parameters ()) { > > + param.variable_type.replace_type_parameter (cl.get_type_parameters ().get (cl.get_type_parameter_index (type_param.name)), type_param); > > } > > } > > } > > diff --git a/vapi/Makefile.am b/vapi/Makefile.am > > index 5136d5812..854ba8642 100644 > > --- a/vapi/Makefile.am > > +++ b/vapi/Makefile.am > > @@ -584,7 +584,7 @@ gtk+-3.0: > > $(GENVAPI) --library $(srcdir)/gtk+-3.0 --pkg atk --pkg gdk-3.0 --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg pango --pkg cairo --metadatadir $(METADATADIR) $(METADATADIR)/Gtk-3.0-custom.vala $(GIRDIR)/Gtk-3.0.gir > > > > gtk4: > > - $(GENVAPI) --library $(srcdir)/gtk4 --pkg cairo --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg graphene-gobject-1.0 --pkg pango --pkg x11 \ > > + $(GENVAPI) --library $(srcdir)/gtk4 --pkg cairo --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg graphene-gobject-1.0 --pkg pango --pkg pangocairo --pkg x11 \ > > --metadatadir $(METADATADIR) \ > > $(METADATADIR)/GdkWayland-4.0-custom.vala $(GIRDIR)/GdkWayland-4.0.gir \ > > $(METADATADIR)/GdkX11-4.0-custom.vala $(GIRDIR)/GdkX11-4.0.gir \ > > @@ -599,7 +599,9 @@ gtk+-unix-print-3.0: > > $(GENVAPI) --library $(srcdir)/gtk+-unix-print-3.0 $(PACKAGESDIR)/gtk+-unix-print-3.0/gtk+-unix-print-3.0-custom.vala $(PACKAGESDIR)/gtk+-unix-print-3.0/gtk+-unix-print-3.0.gi > > > > gtk4-unix-print: > > - $(GENVAPI) --library $(srcdir)/gtk4-unix-print $(PACKAGESDIR)/gtk4-unix-print/gtk4-unix-print-custom.vala $(PACKAGESDIR)/gtk4-unix-print/gtk4-unix-print.gi > > + ln -s $(GIRDIR)/Gtk-4.0.gir GtkUnixPrint-4.0.gir; \ > > + $(GENVAPI) --library $(srcdir)/gtk4-unix-print --pkg gtk4 --pkg pangocairo --metadatadir $(METADATADIR) $(METADATADIR)/GtkUnixPrint-4.0-custom.vala GtkUnixPrint-4.0.gir; \ > > + rm -f GtkUnixPrint-4.0.gir > > > > gtksourceview-2.0: > > $(GENVAPI) --library $(srcdir)/gtksourceview-2.0 $(PACKAGESDIR)/gtksourceview-2.0/gtksourceview-2.0.gi > > diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi > > index d9aeb4189..f9bdad9ca 100644 > > --- a/vapi/gio-2.0.vapi > > +++ b/vapi/gio-2.0.vapi > > @@ -1682,7 +1682,7 @@ namespace GLib { > > [Version (since = "2.64")] > > public bool find (GLib.Object item, out uint position); > > [Version (since = "2.64")] > > - public bool find_with_equal_func (GLib.Object item, GLib.EqualFunc equal_func, out uint position); > > + public bool find_with_equal_func (GLib.Object item, GLib.EqualFunc<GLib.Object> equal_func, out uint position); > > [Version (since = "2.44")] > > public void insert (uint position, GLib.Object item); > > [Version (since = "2.44")] > > @@ -2284,10 +2284,10 @@ namespace GLib { > > public void changed (string key, void* origin_tag); > > [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")] > > [Version (since = "2.26")] > > - public void changed_tree (GLib.Tree tree, void* origin_tag); > > + public void changed_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, void* origin_tag); > > [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")] > > [Version (since = "2.26")] > > - public static void flatten_tree (GLib.Tree tree, out string path, [CCode (array_length = false, array_null_terminated = true)] out (unowned string)[] keys, [CCode (array_length = false, array_null_terminated = true)] out (unowned GLib.Variant)[] values); > > + public static void flatten_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, out string path, [CCode (array_length = false, array_null_terminated = true)] out (unowned string)[] keys, [CCode (array_length = false, array_null_terminated = true)] out (unowned GLib.Variant)[] values); > > [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")] > > [Version (since = "2.28")] > > public static GLib.SettingsBackend get_default (); > > @@ -2337,7 +2337,7 @@ namespace GLib { > > public virtual bool write (string key, GLib.Variant value, void* origin_tag); > > [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")] > > [NoWrapper] > > - public virtual bool write_tree (GLib.Tree tree, void* origin_tag); > > + public virtual bool write_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, void* origin_tag); > > } > > [CCode (cheader_filename = "gio/gio.h", ref_function = "g_settings_schema_ref", type_id = "g_settings_schema_get_type ()", unref_function = "g_settings_schema_unref")] > > [Compact] > > @@ -3432,14 +3432,19 @@ namespace GLib { > > public bool condition_wait (GLib.IOCondition condition, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > public GLib.Source create_source (GLib.IOCondition condition, GLib.Cancellable? cancellable = null); > > [CCode (vfunc_name = "condition_check")] > > + [NoWrapper] > > public virtual GLib.IOCondition datagram_condition_check (GLib.IOCondition condition); > > [CCode (vfunc_name = "condition_wait")] > > + [NoWrapper] > > public virtual bool datagram_condition_wait (GLib.IOCondition condition, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [CCode (vfunc_name = "create_source")] > > + [NoWrapper] > > public virtual GLib.Source datagram_create_source (GLib.IOCondition condition, GLib.Cancellable? cancellable = null); > > [CCode (vfunc_name = "receive_messages")] > > + [NoWrapper] > > public virtual int datagram_receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [CCode (vfunc_name = "send_messages")] > > + [NoWrapper] > > public virtual int datagram_send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error; > > @@ -3823,6 +3828,7 @@ namespace GLib { > > public abstract bool is_readable (); > > public ssize_t read_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [CCode (vfunc_name = "read_nonblocking")] > > + [NoWrapper] > > public abstract ssize_t read_nonblocking_fn ([CCode (array_length_cname = "count", array_length_pos = 1.1, array_length_type = "gsize")] uint8[] buffer) throws GLib.Error; > > } > > [CCode (cheader_filename = "gio/gio.h", type_cname = "GPollableOutputStreamInterface", type_id = "g_pollable_output_stream_get_type ()")] > > @@ -3833,10 +3839,12 @@ namespace GLib { > > public abstract bool is_writable (); > > public ssize_t write_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [CCode (vfunc_name = "write_nonblocking")] > > + [NoWrapper] > > public abstract ssize_t write_nonblocking_fn ([CCode (array_length_cname = "count", array_length_pos = 1.1, array_length_type = "gsize")] uint8[]? buffer) throws GLib.Error; > > [Version (since = "2.60")] > > public GLib.PollableReturn writev_nonblocking ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [CCode (vfunc_name = "writev_nonblocking")] > > + [NoWrapper] > > [Version (since = "2.60")] > > public abstract GLib.PollableReturn writev_nonblocking_fn ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written) throws GLib.Error; > > } > > @@ -4906,9 +4914,9 @@ namespace GLib { > > public delegate GLib.Variant SettingsBindSetMappingShared (GLib.Value value, GLib.VariantType expected_type, void* user_data); > > [CCode (cheader_filename = "gio/gio.h", instance_pos = 2.9)] > > public delegate bool SettingsGetMapping (GLib.Variant value, out void* result); > > - [CCode (cheader_filename = "gio/gio.h")] > > + [CCode (cheader_filename = "gio/gio.h", has_typedef = false)] > > public delegate void SimpleActionActivateCallback (GLib.SimpleAction action, GLib.Variant? parameter); > > - [CCode (cheader_filename = "gio/gio.h")] > > + [CCode (cheader_filename = "gio/gio.h", has_typedef = false)] > > public delegate void SimpleActionChangeStateCallback (GLib.SimpleAction action, GLib.Variant value); > > [CCode (cheader_filename = "gio/gio.h", has_target = false)] > > public delegate void SimpleAsyncThreadFunc (GLib.SimpleAsyncResult res, GLib.Object object, GLib.Cancellable? cancellable = null); > > diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi > > index 39a6b0b88..71df44b9d 100644 > > --- a/vapi/glib-2.0.vapi > > +++ b/vapi/glib-2.0.vapi > > @@ -2165,7 +2165,7 @@ namespace GLib { > > public static void yield (); > > public static void exit (T retval); > > [Version (deprecated_since = "2.32", since = "2.10")] > > - public static void @foreach (Func<Thread> thread_func); > > + public static void @foreach (Func<Thread<T>> thread_func); > > > > [CCode (cname = "g_usleep")] > > public static void usleep (ulong microseconds); > > @@ -2346,10 +2346,10 @@ namespace GLib { > > [CCode (cname = "g_thread_pool_free")] > > void _free (bool immediate, bool wait); > > [CCode (cname = "vala__g_thread_pool_free_wrapper")] > > - public static void free (owned ThreadPool? pool, bool immediate, bool wait) { > > - ThreadPool* ptr = (owned) pool; > > + public static void free (owned ThreadPool<T>? pool, bool immediate, bool wait) { > > + ThreadPool<T>* ptr = (owned) pool; > > if (ptr != null) { > > - ((ThreadPool)ptr)._free (immediate, wait); > > + ((ThreadPool<T>)ptr)._free (immediate, wait); > > } > > } > > public static void set_max_unused_threads (int max_threads); > > @@ -4864,7 +4864,7 @@ namespace GLib { > > public uint get_length (); > > [Version (since = "2.4")] > > public void reverse (); > > - public Queue copy (); > > + public Queue<G> copy (); > > [Version (since = "2.4")] > > public unowned List<G> find (G data); > > [Version (since = "2.4")] > > @@ -5392,8 +5392,8 @@ namespace GLib { > > > > /* N-ary Trees */ > > > > - public delegate bool NodeTraverseFunc (Node node); > > - public delegate void NodeForeachFunc (Node node); > > + public delegate bool NodeTraverseFunc<G> (Node<G> node); > > + public delegate void NodeForeachFunc<G> (Node<G> node); > > > > [CCode (cprefix = "G_TRAVERSE_")] > > public enum TraverseFlags { > > @@ -5421,8 +5421,8 @@ namespace GLib { > > public unowned Node<G> append_data (owned G data); > > public unowned Node<G> prepend_data (owned G data); > > public void reverse_children (); > > - public void traverse (TraverseType order, TraverseFlags flags, int max_depth, NodeTraverseFunc func); > > - public void children_foreach (TraverseFlags flags, NodeForeachFunc func); > > + public void traverse (TraverseType order, TraverseFlags flags, int max_depth, NodeTraverseFunc<G> func); > > + public void children_foreach (TraverseFlags flags, NodeForeachFunc<G> func); > > public unowned Node<G> get_root (); > > public unowned Node<G> find (TraverseType order, TraverseFlags flags, G data); > > public unowned Node<G> find_child (TraverseFlags flags, G data); > > @@ -5458,10 +5458,10 @@ namespace GLib { > > } > > > > public G data; > > - public Node next; > > - public Node prev; > > - public Node parent; > > - public Node children; > > + public Node<G> next; > > + public Node<G> prev; > > + public Node<G> parent; > > + public Node<G> children; > > } > > > > /* Quarks */ > > diff --git a/vapi/gnet-2.0.vapi b/vapi/gnet-2.0.vapi > > index b15338cbf..9bafd317e 100644 > > --- a/vapi/gnet-2.0.vapi > > +++ b/vapi/gnet-2.0.vapi > > @@ -115,17 +115,17 @@ namespace GNet { > > } > > > > public class IOChannel { > > - [CCode(name = "gnet_io_channel_writen")] > > + [CCode(cname = "gnet_io_channel_writen")] > > public static GLib.IOError writen(GLib.IOChannel chan, string buf, > > size_t len, out size_t bytes_written); > > > > - [CCode(name = "gnet_io_channel_readn")] > > + [CCode(cname = "gnet_io_channel_readn")] > > public static GLib.IOError readn(GLib.IOChannel chan, string buf, > > size_t len, out size_t bytes_read); > > - [CCode(name = "gnet_io_channel_readline")] > > + [CCode(cname = "gnet_io_channel_readline")] > > public static GLib.IOError readline(GLib.IOChannel chan, string buf, > > size_t len, out size_t bytes_read); > > - [CCode(name = "gnet_io_channel_readline_strdup")] > > + [CCode(cname = "gnet_io_channel_readline_strdup")] > > public static GLib.IOError readline_strdup(GLib.IOChannel chan, > > out string buf, > > size_t bytes_read); > > diff --git a/vapi/gnutls.vapi b/vapi/gnutls.vapi > > index a7299af33..9369792f4 100644 > > --- a/vapi/gnutls.vapi > > +++ b/vapi/gnutls.vapi > > @@ -904,9 +904,9 @@ namespace GnuTLS > > public struct Ava > > { > > [CCode (cname = "oid.data", array_length_cname = "oid.size")] > > - uint8[] oid; > > + unowned uint8[] oid; > > [CCode (cname = "value.data", array_length_cname = "value.size")] > > - uint8[] value; > > + unowned uint8[] value; > > ulong value_tag; > > } > > > > @@ -1711,13 +1711,13 @@ namespace GnuTLS > > { > > public CertificateType type; > > [CCode (cname = "cert.x509", array_length_cname = "ncerts", array_length_type = "unsigned int")] > > - public X509.Certificate[] cert_x509; > > + public unowned X509.Certificate[] cert_x509; > > [CCode (cname = "cert.pgp")] > > - public OpenPGP.Certificate cert_pgp; > > + public unowned OpenPGP.Certificate cert_pgp; > > [CCode (cname = "key.x509")] > > - public X509.PrivateKey key_x509; > > + public unowned X509.PrivateKey key_x509; > > [CCode (cname = "key.pgp")] > > - public OpenPGP.PrivateKey key_pgp; > > + public unowned OpenPGP.PrivateKey key_pgp; > > public uint deinit_all; > > } > > > > diff --git a/vapi/gsl.vapi b/vapi/gsl.vapi > > index 2631e5a5f..1b328af9f 100644 > > --- a/vapi/gsl.vapi > > +++ b/vapi/gsl.vapi > > @@ -66,10 +66,6 @@ namespace Gsl > > MASS_NEUTRON, > > RYDBERG, > > BOLTZMANN, > > - BOHR_MAGNETON, > > - NUCLEAR_MAGNETON, > > - ELECTRON_MAGNETIC_MOMENT, > > - PROTON_MAGNETIC_MOMENT, > > MOLAR_GAS, > > STANDARD_GAS_VOLUME, > > MINUTE, > > @@ -128,9 +124,6 @@ namespace Gsl > > PSI, > > POISE, > > STOKES, > > - FARADAY, > > - ELECTRON_CHARGE, > > - GAUSS, > > STILB, > > LUMEN, > > LUX, > > @@ -169,10 +162,6 @@ namespace Gsl > > MASS_NEUTRON, > > RYDBERG, > > BOLTZMANN, > > - BOHR_MAGNETON, > > - NUCLEAR_MAGNETON, > > - ELECTRON_MAGNETIC_MOMENT, > > - PROTON_MAGNETIC_MOMENT, > > MOLAR_GAS, > > STANDARD_GAS_VOLUME, > > MINUTE, > > @@ -231,9 +220,6 @@ namespace Gsl > > PSI, > > POISE, > > STOKES, > > - FARADAY, > > - ELECTRON_CHARGE, > > - GAUSS, > > STILB, > > LUMEN, > > LUX, > > @@ -251,7 +237,13 @@ namespace Gsl > > JOULE, > > ERG, > > STEFAN_BOLTZMANN_CONSTANT, > > - THOMSON_CROSS_SECTION > > + THOMSON_CROSS_SECTION, > > + BOHR_MAGNETON, > > + NUCLEAR_MAGNETON, > > + ELECTRON_MAGNETIC_MOMENT, > > + PROTON_MAGNETIC_MOMENT, > > + FARADAY, > > + ELECTRON_CHARGE > > } > > > > [CCode (cprefix="GSL_CONST_MKS_", cheader_filename="gsl/gsl_const_mks.h", has_type_id = false)] > > @@ -272,10 +264,6 @@ namespace Gsl > > MASS_NEUTRON, > > RYDBERG, > > BOLTZMANN, > > - BOHR_MAGNETON, > > - NUCLEAR_MAGNETON, > > - ELECTRON_MAGNETIC_MOMENT, > > - PROTON_MAGNETIC_MOMENT, > > MOLAR_GAS, > > STANDARD_GAS_VOLUME, > > MINUTE, > > @@ -334,9 +322,6 @@ namespace Gsl > > PSI, > > POISE, > > STOKES, > > - FARADAY, > > - ELECTRON_CHARGE, > > - GAUSS, > > STILB, > > LUMEN, > > LUX, > > @@ -353,11 +338,18 @@ namespace Gsl > > DYNE, > > JOULE, > > ERG, > > + BOHR_MAGNETON, > > + NUCLEAR_MAGNETON, > > + ELECTRON_MAGNETIC_MOMENT, > > + PROTON_MAGNETIC_MOMENT, > > STEFAN_BOLTZMANN_CONSTANT, > > THOMSON_CROSS_SECTION, > > + FARADAY, > > + ELECTRON_CHARGE, > > VACUUM_PERMITTIVITY, > > VACUUM_PERMEABILITY, > > - DEBYE > > + DEBYE, > > + GAUSS > > } > > > > [CCode (cprefix="GSL_CONST_MKSA_", cheader_filename="gsl/gsl_const_mksa.h", has_type_id = false)] > > @@ -378,10 +370,6 @@ namespace Gsl > > MASS_NEUTRON, > > RYDBERG, > > BOLTZMANN, > > - BOHR_MAGNETON, > > - NUCLEAR_MAGNETON, > > - ELECTRON_MAGNETIC_MOMENT, > > - PROTON_MAGNETIC_MOMENT, > > MOLAR_GAS, > > STANDARD_GAS_VOLUME, > > MINUTE, > > @@ -440,9 +428,6 @@ namespace Gsl > > PSI, > > POISE, > > STOKES, > > - FARADAY, > > - ELECTRON_CHARGE, > > - GAUSS, > > STILB, > > LUMEN, > > LUX, > > @@ -461,9 +446,16 @@ namespace Gsl > > ERG, > > STEFAN_BOLTZMANN_CONSTANT, > > THOMSON_CROSS_SECTION, > > + BOHR_MAGNETON, > > + NUCLEAR_MAGNETON, > > + ELECTRON_MAGNETIC_MOMENT, > > + PROTON_MAGNETIC_MOMENT, > > + FARADAY, > > + ELECTRON_CHARGE, > > VACUUM_PERMITTIVITY, > > VACUUM_PERMEABILITY, > > - DEBYE > > + DEBYE, > > + GAUSS > > } > > > > > > @@ -518,9 +510,9 @@ namespace Gsl > > APPROX > > } > > > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_error_handler_t*", has_target = false)] > > public delegate void ErrorHandler (string reason, string file, int line, int errno); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_stream_handler_t*", has_target = false)] > > public delegate void StreamHandler (string label, string file, int line, string reason); > > > > [CCode (lower_case_cprefix="gsl_", cheader_filename="gsl/gsl_errno.h")] > > @@ -568,9 +560,9 @@ namespace Gsl > > > > /* The isnan, isinf and finite are define in the double type. The elementary functions are in GLib.Math */ > > > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate double _Function (double x, void* params); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void _FunctionFdf (double x, void* params, out double f, out double df); > > > > [SimpleType] > > @@ -910,7 +902,7 @@ namespace Gsl > > public static int CL_array (double lmin, int kmax, double eta, [CCode (array_length = false)] double[] cl); > > } > > > > - [CCode (lower_case_cprefix="gsl_sf_coupling_", cheader_filename="gsl/gsl_coupling.h")] > > + [CCode (lower_case_cprefix="gsl_sf_coupling_", cheader_filename="gsl/gsl_sf_coupling.h")] > > namespace Coupling > > { > > public static double 3j (int two_ja, int two_jb, int two_jc, int two_ma, int two_mb, int two_mc); > > @@ -990,8 +982,8 @@ namespace Gsl > > public static int E_e (double phi, double k, Mode mode, out Result result); > > public static double P (double phi, double k, double n, Mode mode); > > public static int P_e (double phi, double k, double n, Mode mode, out Result result); > > - public static double D (double phi, double k, double n, Mode mode); > > - public static int D_e (double phi, double k, double n, Mode mode, out Result result); > > + public static double D (double phi, double k, Mode mode); > > + public static int D_e (double phi, double k, Mode mode, out Result result); > > > > public static double RC (double x, double y, Mode mode); > > public static int RC_e (double x, double y, Mode mode, out Result result); > > @@ -1003,7 +995,7 @@ namespace Gsl > > public static int RJ_e (double x, double y, double z, double p, Mode mode, out Result result); > > } > > > > - [CCode (lower_case_cprefix="gsl_sf_elljac_", cheader_filename="gsl/gsl_elljac.h")] > > + [CCode (lower_case_cprefix="gsl_sf_elljac_", cheader_filename="gsl/gsl_sf_elljac.h")] > > namespace EllJac > > { > > public static int e (double u, double m, out double sn, out double cn, out double dn); > > @@ -1037,8 +1029,8 @@ namespace Gsl > > public static int exp_mult_e10_e (double x, double y, out ResultE10 result); > > public static int exp_err_e (double x, double dx, out Result result); > > public static int exp_err_e10_e (double x, double dx, out ResultE10 result); > > - public static int exp_mul_err_e (double x, double dx, double y, double dy, out Result result); > > - public static int exp_mul_err_e10_e (double x, double dx, double y, double dy, out ResultE10 result); > > + public static int exp_mult_err_e (double x, double dx, double y, double dy, out Result result); > > + public static int exp_mult_err_e10_e (double x, double dx, double y, double dy, out ResultE10 result); > > public static double expm1 (double x); > > public static int expm1_e (double x, out Result result); > > public static double exprel (double x); > > @@ -1060,8 +1052,8 @@ namespace Gsl > > public static int expint_En_e (int n, double x, out Result result); > > public static double expint_Ei (double x); > > public static int expint_Ei_e (double x, out Result result); > > - public static double expint_Ei_3 (double x); > > - public static int expint_Ei_3_e (double x, out Result result); > > + public static double expint_3 (double x); > > + public static int expint_3_e (double x, out Result result); > > public static double Shi (double x); > > public static int Shi_e (double x, out Result result); > > public static double Chi (double x); > > @@ -1074,7 +1066,7 @@ namespace Gsl > > public static double atanint_e (double x, out Result result); > > } > > > > - [CCode (lower_case_cprefix="gsl_sf_fermi_dirac_", cheader_filename="gsl/gsl_sf_fermi_dirach.h")] > > + [CCode (lower_case_cprefix="gsl_sf_fermi_dirac_", cheader_filename="gsl/gsl_sf_fermi_dirac.h")] > > namespace FermiDirac > > { > > public static double m1 (double x); > > @@ -1174,10 +1166,10 @@ namespace Gsl > > [CCode (cname="gsl_sf_gegenpoly_3_e")] > > public static double C3_e (double lambda, double x, out Result result); > > [CCode (cname="gsl_sf_gegenpoly_n")] > > - public static double Cn (double lambda, double x); > > + public static double Cn (int n, double lambda, double x); > > [CCode (cname="gsl_sf_gegenpoly_n_e")] > > - public static double Cn_e (double lambda, double x, out Result result); > > - public static int array (int nmax, double lambda, double x, out Result result); > > + public static double Cn_e (int n, double lambda, double x, out Result result); > > + public static int array (int nmax, double lambda, double x, [CCode (array_length = false)] double[] result_array); > > } > > > > [CCode (lower_case_cprefix="gsl_sf_hyperg_", cheader_filename="gsl/gsl_sf_hyperg.h")] > > @@ -1260,11 +1252,11 @@ namespace Gsl > > public static double Plm (int l, int m, double x); > > public static int Plm_e (int l, int m, double x, out Result result); > > public static int Plm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array); > > - public static int Plm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array); > > + public static int Plm_deriv_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array, [CCode (array_length = false)] double[] result_deriv_array); > > public static double sphPlm (int l, int m, double x); > > public static int sphPlm_e (int l, int m, double x, out Result result); > > public static int sphPlm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array); > > - public static int sphPlm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array); > > + public static int sphPlm_deriv_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array, [CCode (array_length = false)] double[] result_deriv_array); > > public static int array_size (int lmax, int m); > > > > [CCode (cname="gsl_sf_conicalP_half")] > > @@ -1338,21 +1330,21 @@ namespace Gsl > > > > public static int a_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > public static int b_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > - public static int a (int order, double qq, out Result result); > > - public static int b (int order, double qq, out Result result); > > + public static int a (int order, double qq); > > + public static int b (int order, double qq); > > public static int a_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff); > > public static int b_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff); > > > > [CCode (cname="gsl_sf_mathieu_alloc")] > > public MathieuWorkspace (size_t nn, double qq); > > > > - public static int ce (int order, double qq, double zz, out Result result); > > - public static int se (int order, double qq, double zz, out Result result); > > + public static int ce (int order, double qq, double zz); > > + public static int se (int order, double qq, double zz); > > public static int ce_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > public static int se_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > > > - public static int Mc (int kind, int order, double qq, double zz, out Result result); > > - public static int Ms (int kind, int order, double qq, double zz, out Result result); > > + public static int Mc (int kind, int order, double qq, double zz); > > + public static int Ms (int kind, int order, double qq, double zz); > > public static int Mc_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > public static int Ms_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array); > > } > > @@ -1380,7 +1372,7 @@ namespace Gsl > > public static int psi_1_e (double x, out Result result); > > > > public static double psi_n (int n, double x); > > - public static int psi_e_n (int n, double x, out Result result); > > + public static int psi_n_e (int n, double x, out Result result); > > } > > > > [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_synchrotron.h")] > > @@ -1619,8 +1611,8 @@ namespace Gsl > > > > public VectorComplexView subvector (size_t i, size_t n); > > public VectorComplexView subvector_with_stride (size_t i, size_t stride, size_t n); > > - public VectorView complex_real (); > > - public VectorView complex_imag (); > > + public VectorView const_real (); > > + public VectorView const_imag (); > > > > public int memcpy (VectorComplex src); > > public int swap (VectorComplex w); > > @@ -1632,15 +1624,8 @@ namespace Gsl > > public int sub (VectorComplex b); > > public int mul (VectorComplex b); > > public int div (VectorComplex b); > > - public int scale (double x); > > - public int add_constant (double x); > > - > > - public double max (); > > - public double min (); > > - public void minmax (out double min_out, out double max_out); > > - public size_t max_index (); > > - public size_t min_index (); > > - public void minmax_index (out size_t imin, out size_t imax); > > + public int scale (Complex x); > > + public int add_constant (Complex x); > > > > public bool isnull (); > > public bool ispos (); > > @@ -1657,7 +1642,7 @@ namespace Gsl > > public static MatrixView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2); > > public static MatrixView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda); > > public static MatrixView vector (Vector v, size_t n1, size_t n2); > > - public static MatrixView vectr_with_tda (Vector v, size_t n1, size_t n2, size_t tda); > > + public static MatrixView vector_with_tda (Vector v, size_t n1, size_t n2, size_t tda); > > } > > > > [Compact] > > @@ -1680,7 +1665,9 @@ namespace Gsl > > [CCode (cname="gsl_matrix_alloc_from_matrix")] > > public Matrix.from_matrix (Matrix m, size_t k1, size_t k2, size_t n1, size_t n2); > > > > + [CCode (cname="gsl_vector_alloc_row_from_matrix")] > > public Vector alloc_row_from_matrix (size_t i); > > + [CCode (cname="gsl_vector_alloc_col_from_matrix")] > > public Vector alloc_col_from_matrix (size_t j); > > > > public double @get (size_t i, size_t j); > > @@ -1752,7 +1739,7 @@ namespace Gsl > > public static MatrixComplexView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2); > > public static MatrixComplexView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda); > > public static MatrixComplexView vector (VectorComplex v, size_t n1, size_t n2); > > - public static MatrixComplexView vectr_with_tda (VectorComplex v, size_t n1, size_t n2, size_t tda); > > + public static MatrixComplexView vector_with_tda (VectorComplex v, size_t n1, size_t n2, size_t tda); > > } > > > > [Compact] > > @@ -1775,14 +1762,16 @@ namespace Gsl > > [CCode (cname="gsl_matrix_complex_alloc_from_matrix")] > > public MatrixComplex.from_matrix (MatrixComplex m, size_t k1, size_t k2, size_t n1, size_t n2); > > > > + [CCode (cname="gsl_vector_complex_alloc_row_from_matrix")] > > public VectorComplex alloc_row_from_matrix (size_t i); > > + [CCode (cname="gsl_vector_complex_alloc_col_from_matrix")] > > public VectorComplex alloc_col_from_matrix (size_t j); > > > > - public double @get (size_t i, size_t j); > > - public void @set (size_t i, size_t j, double x); > > - public double* ptr (size_t i, size_t j); > > + public Complex @get (size_t i, size_t j); > > + public void @set (size_t i, size_t j, Complex x); > > + public Complex* ptr (size_t i, size_t j); > > > > - public void set_all (double x); > > + public void set_all (Complex x); > > public void set_zero (); > > public void set_identity (); > > > > @@ -1821,16 +1810,9 @@ namespace Gsl > > public int sub (MatrixComplex b); > > public int mul_elements (MatrixComplex b); > > public int div_elements (MatrixComplex b); > > - public int scale (double x); > > - public int add_constant (double x); > > - public int add_diagonal (double x); > > - > > - public double max (); > > - public double min (); > > - public void minmax (out double min_out, out double max_out); > > - public void max_index (out size_t imax, out size_t jmax); > > - public void min_index (out size_t imin, out size_t jmin); > > - public void minmax_index (out size_t imin, out size_t jmin, out size_t imax, out size_t jmax); > > + public int scale (Complex x); > > + public int add_constant (Complex x); > > + public int add_diagonal (Complex x); > > > > public bool isnull (); > > public bool ispos (); > > @@ -1913,9 +1895,9 @@ namespace Gsl > > namespace PermuteVectorComplex > > { > > [CCode (cname="gsl_permute_vector_complex")] > > - public static int permute (Permutation p, Vector v); > > + public static int permute (Permutation p, VectorComplex v); > > [CCode (cname="gsl_permute_vector_complex_inverse")] > > - public static int permute_inverse (Permutation p, Vector v); > > + public static int permute_inverse (Permutation p, VectorComplex v); > > } > > > > > > @@ -2001,7 +1983,7 @@ namespace Gsl > > public static int LU_refine (Matrix A, Matrix LU, Permutation p, Vector b, Vector x, Vector residual); > > public static int complex_LU_refine (MatrixComplex A, MatrixComplex LU, Permutation p, VectorComplex b, VectorComplex x, VectorComplex residual); > > public static int LU_invert (Matrix LU, Permutation p, Matrix inverse); > > - public static int complex_LU_invert (MatrixComplex LU, Permutation p, Matrix inverse); > > + public static int complex_LU_invert (MatrixComplex LU, Permutation p, MatrixComplex inverse); > > public static double LU_det (Matrix LU, int signum); > > public static Complex complex_LU_det (MatrixComplex LU, int signum); > > public static double LU_lndet (Matrix LU); > > @@ -2065,7 +2047,7 @@ namespace Gsl > > public static int bidiag_unpack2 (Matrix A, Vector tau_U, Vector tau_V, Matrix V); > > public static int bidiag_unpack_B (Matrix A, Vector diag, Vector superdiag); > > > > - public static int householder_tansform (Vector v); > > + public static int householder_transform (Vector v); > > public static Complex complex_householder_transform (VectorComplex V); > > public static int householder_hm (double tau, Vector v, Matrix A); > > public static int complex_householder_hm (Complex tau, VectorComplex V, MatrixComplex A); > > @@ -2140,7 +2122,7 @@ namespace Gsl > > [CCode (cname="gsl_eigen_herm_alloc")] > > public EigenHermWorkspace (size_t n); > > [CCode (cname="gsl_eigen_herm", instance_pos=-1)] > > - public int init (MatrixComplex A, VectorComplex eval); > > + public int init (MatrixComplex A, Vector eval); > > } > > > > [Compact] > > @@ -2157,7 +2139,7 @@ namespace Gsl > > [CCode (cname="gsl_eigen_hermv_alloc")] > > public EigenHermvWorkspace (size_t n); > > [CCode (cname="gsl_eigen_hermv", instance_pos=-1)] > > - public int init (MatrixComplex A, VectorComplex eval, MatrixComplex evec); > > + public int init (MatrixComplex A, Vector eval, MatrixComplex evec); > > } > > > > [Compact] > > @@ -2322,7 +2304,7 @@ namespace Gsl > > /* > > * Fast Fourier Transforms (FFTs) > > */ > > - [CCode (cname="gsl_fft_direction", cheader_filename="gsl/gsl_fft.h", has_type_id = false)] > > + [CCode (cname="gsl_fft_direction", cprefix = "gsl_fft_", cheader_filename="gsl/gsl_fft.h", has_type_id = false)] > > public enum FFTDirection > > { > > forward = -1, > > @@ -2336,11 +2318,12 @@ namespace Gsl > > public size_t n; > > public size_t nf; > > public size_t factor[64]; > > - public Complex twiddle[64]; > > - public Complex trig; > > + public Complex* twiddle[64]; > > + public Complex* trig; > > > > [CCode (cname="gsl_fft_complex_wavetable_alloc")] > > public FFTComplexWavetable (size_t n); > > + [CCode (cname="gsl_fft_complex_memcpy")] > > public int memcpy (FFTComplexWavetable src); > > } > > > > @@ -2355,7 +2338,6 @@ namespace Gsl > > public FFTComplexWorkspace (size_t n); > > } > > > > - [Compact] > > [CCode (lower_case_cprefix="gsl_fft_complex_", cheader_filename="gsl/gsl_fft_complex.h")] > > namespace FFTComplex > > { > > @@ -2381,8 +2363,8 @@ namespace Gsl > > public size_t n; > > public size_t nf; > > public size_t factor[64]; > > - public Complex twiddle[64]; > > - public Complex trig; > > + public Complex* twiddle[64]; > > + public Complex* trig; > > > > [CCode (cname="gsl_fft_real_wavetable_alloc")] > > public FFTRealWavetable (size_t n); > > @@ -2399,11 +2381,10 @@ namespace Gsl > > public FFTRealWorkspace (size_t n); > > } > > > > - [Compact] > > [CCode (lower_case_cprefix="gsl_fft_real_", cheader_filename="gsl/gsl_fft_real.h")] > > namespace FFTReal > > { > > - public static int radix2_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n); > > + public static int radix2_transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n); > > public static int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTRealWavetable wavetable, FFTRealWorkspace work); > > public static int unpack ([CCode (array_length = false)] double[] real_coefficient, [CCode (array_length = false)] double[] complex_coeficient, size_t stride, size_t n); > > } > > @@ -2415,8 +2396,8 @@ namespace Gsl > > public size_t n; > > public size_t nf; > > public size_t factor[64]; > > - public Complex twiddle[64]; > > - public Complex trig; > > + public Complex* twiddle[64]; > > + public Complex* trig; > > > > [CCode (cname="gsl_fft_halfcomplex_wavetable_alloc")] > > public FFTHalfcomplexWavetable (size_t n); > > @@ -2439,7 +2420,7 @@ namespace Gsl > > /* > > * Numerical Integration > > */ > > - [CCode (cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h", has_type_id = false)] > > + [CCode (cname = "enum gsl_integration_qawo_enum", cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h", has_type_id = false)] > > public enum QAWO > > { > > COSINE, > > @@ -2523,7 +2504,7 @@ namespace Gsl > > public static void qk61 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc); > > public static void qcheb (Function* f, double a, double b, out double cheb12, out double cheb24); > > > > - public static void qk (int n, [CCode (array_length = false)] double[] xgk, [CCode (array_length = false)] double[] wg, [CCode (array_length = false)] double[] wgk, [CCode (array_length = false)] double[] fv1, [CCode (array_length = false)] double[] fv2, Function* f, double a, double b, out double result, out double abserr, out double resabs, double resasc); > > + public static void qk (int n, [CCode (array_length = false)] double[] xgk, [CCode (array_length = false)] double[] wg, [CCode (array_length = false)] double[] wgk, [CCode (array_length = false)] double[] fv1, [CCode (array_length = false)] double[] fv2, Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc); > > public static int qng (Function* f, double a, double b, double epsabs, double epsrel, out double result, out double abserr, out size_t neval); > > public static int qag (Function* f, double a, double b, double epsabs, double epsrel, size_t limit, int key, IntegrationWorkspace workspace, out double result, out double abserr); > > public static int qagi (Function* f, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr); > > @@ -2541,18 +2522,18 @@ namespace Gsl > > /* > > * Random Number Generation > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void RNGSetState (void *state, ulong seed); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate ulong RNGGetState (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate double RNGGetDouble (void* state); > > > > [SimpleType] > > [CCode (cname="gsl_rng_type", cheader_filename="gsl/gsl_rng.h", has_type_id = false)] > > public struct RNGType > > { > > - public string name; > > + public unowned string name; > > public ulong max; > > public ulong min; > > public size_t size; > > @@ -2797,18 +2778,18 @@ namespace Gsl > > /* > > * Quasi-Random Sequences > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate size_t QRNGStateSize (uint dimension); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int QRNGInitState (void* state, uint dimension); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int QRNGGetState2 (void* state, uint dimension, out double x); > > > > [SimpleType] > > [CCode (cname="gsl_qrng_type", cheader_filename="gsl/gsl_qrng.h", has_type_id = false)] > > public struct QRNGType > > { > > - public string name; > > + public unowned string name; > > public uint max_dimension; > > public QRNGStateSize state_size; > > public QRNGInitState init_state; > > @@ -2989,7 +2970,7 @@ namespace Gsl > > > > [CCode (cname="gsl_ran_discrete_preproc")] > > public RanDiscrete (size_t K, double* P); > > - [CCode (cname="gsl_ran_discrete")] > > + [CCode (cname="gsl_ran_discrete", instance_pos = -1)] > > public size_t discrete (RNG g); > > [CCode (instance_pos=-1)] > > public double pdf (size_t k); > > @@ -3179,9 +3160,9 @@ namespace Gsl > > public double cov (); > > > > public double sum (); > > - public int equal_bins_p (Histogram h2) ; > > - public int add (Histogram h2); > > - public int sub (Histogram h2); > > + public int equal_bins_p (Histogram2d h2); > > + public int add (Histogram2d h2); > > + public int sub (Histogram2d h2); > > public int mul (Histogram2d h2); > > public int div (Histogram2d h2); > > public int scale (double scale); > > @@ -3191,7 +3172,7 @@ namespace Gsl > > public int fwrite (GLib.FileStream stream); > > [CCode (instance_pos=-1)] > > public int fread (GLib.FileStream stream); > > - public static int fprintf (GLib.FileStream stream, Histogram h, string range_format, string bin_format); > > + public static int fprintf (GLib.FileStream stream, Histogram2d h, string range_format, string bin_format); > > [CCode (instance_pos=-1)] > > public int fscanf (GLib.FileStream stream); > > } > > @@ -3216,14 +3197,16 @@ namespace Gsl > > /* > > * N-Tuples > > */ > > - [CCode (has_target = false)] > > - public delegate int NTupleFunc (void* ntuple_data, void* params); > > + [CCode (has_target = false, has_typedef = false)] > > + public delegate int NTupleSelectFunc (void* ntuple_data, void* params); > > + [CCode (has_target = false, has_typedef = false)] > > + public delegate double NTupleValueFunc (void* ntuple_data, void* params); > > > > [SimpleType] > > [CCode (cname="gsl_ntuple_select_fn", cheader_filename="gsl/gsl_ntuple.h", has_type_id = false)] > > public struct NTupleSelectFn > > { > > - public NTupleFunc function; > > + public NTupleSelectFunc function; > > public void* params; > > } > > > > @@ -3231,7 +3214,7 @@ namespace Gsl > > [CCode (cname="gsl_ntuple_value_fn", cheader_filename="gsl/gsl_ntuple.h", has_type_id = false)] > > public struct NTupleValueFn > > { > > - public NTupleFunc function; > > + public NTupleValueFunc function; > > public void* params; > > } > > > > @@ -3240,7 +3223,7 @@ namespace Gsl > > public class NTuple > > { > > public GLib.FileStream file; > > - public void* ntrupel_data; > > + public void* ntuple_data; > > public size_t size; > > > > public static NTuple open (string filename, void* ntuple_data, size_t size); > > @@ -3264,7 +3247,7 @@ namespace Gsl > > STRATIFIED > > } > > > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate double MonteFunc ([CCode (array_length = false)] double[] x_array, size_t dim, void* params); > > > > [SimpleType] > > @@ -3384,19 +3367,19 @@ namespace Gsl > > [CCode (lower_case_cprefix="gsl_siman_", cheader_filename="gsl/gsl_siman.h", has_type_id = false)] > > namespace Siman > > { > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_Efunc_t", has_target = false)] > > public delegate double Efunc_t (void *xp); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_step_t", has_target = false)] > > public delegate void step_t (RNG r, void *xp, double step_size); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_metric_t", has_target = false)] > > public delegate double metric_t (void *xp, void* yp); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_print_t", has_target = false)] > > public delegate void print_t (void* xp); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_copy_t", has_target = false)] > > public delegate void copy_t (void* source, void* dest); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_copy_construct_t", has_target = false)] > > public delegate void copy_construct_t (void* xp); > > - [CCode (has_target = false)] > > + [CCode (cname = "gsl_siman_destroy_t", has_target = false)] > > public delegate void destroy_t (void* xp); > > > > public static void solve(RNG r, void *x0_p, Efunc_t Ef, step_t take_step, metric_t distance, print_t print_position, copy_t copyfunc, copy_construct_t copy_constructor, destroy_t destructor, size_t element_size, SimanParams params); > > @@ -3415,27 +3398,27 @@ namespace Gsl > > DEC > > } > > > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivFunction (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dydt, void* params); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivJacobian (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dfdy, [CCode (array_length = false)] double[] dfdt, void* params); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void* OdeivStepAlloc (size_t dim); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivStepApply (void* state, size_t dim, double t, double h, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] dydt_in, [CCode (array_length = false)] double[] dydt_out, OdeivSystem* dydt); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivStepReset (void* state, size_t dim); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate uint OdeivStepOrder (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void OdeivStepFree (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void* OdeivControlAlloc (); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivControlInit (void* state, double eps_abs, double eps_rel, double a_y, double a_dydt); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int OdeivControlHadjust (void* state, size_t dim, uint ord, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] yp, [CCode (array_length = false)] double[] h); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void OdeivControlFree (void* state); > > > > [SimpleType] > > @@ -3452,7 +3435,7 @@ namespace Gsl > > [CCode (cname="gsl_odeiv_step_type", cheader_filename="gsl/gsl_odeiv.h", has_type_id = false)] > > public struct OdeivStepType > > { > > - public string name; > > + public unowned string name; > > public int can_use_dydt_in; > > public int gives_exact_dydt_out; > > public OdeivStepAlloc alloc; > > @@ -3499,7 +3482,7 @@ namespace Gsl > > [CCode (cname="gsl_odeiv_control_type", cheader_filename="gsl/gsl_odeiv.h", has_type_id = false)] > > public struct OdeivControlType > > { > > - public string name; > > + public unowned string name; > > public OdeivControlAlloc alloc; > > public OdeivControlInit init; > > public OdeivControlHadjust hadjust; > > @@ -3552,19 +3535,19 @@ namespace Gsl > > /* > > * Interpolation > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void* InterpAlloc (size_t size); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int InterpInit (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int InterpEval (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int InterpEvalDeriv (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_p); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int InterpEvalDeriv2 (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_pp); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int InterpEvalInteg (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, InterpAccel* i, double a, double b, out double result); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void InterpFree (void* t); > > > > [Compact] > > @@ -3585,7 +3568,7 @@ namespace Gsl > > [CCode (cname="gsl_interp_type", cheader_filename="gsl/gsl_interp.h", has_type_id = false)] > > public struct InterpType > > { > > - public string name; > > + public unowned string name; > > public uint min_size; > > public InterpAlloc alloc; > > public InterpInit init; > > @@ -3618,7 +3601,7 @@ namespace Gsl > > public void* state; > > > > [CCode (cname="gsl_interp_alloc")] > > - public Interp (InterpType T, size_t n); > > + public Interp (InterpType* T, size_t n); > > public int init ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size); > > public string name (); > > public uint min_size (); > > @@ -3660,7 +3643,7 @@ namespace Gsl > > /* > > * Numerical Differentiation > > */ > > - [CCode (lower_case_cprefix="gsl_deriv_", cheader_fileame="gsl/gsl_deriv.h")] > > + [CCode (lower_case_cprefix="gsl_deriv_", cheader_filename="gsl/gsl_deriv.h")] > > namespace Deriv > > { > > public static int central (Function* f, double x, double h, out double result, out double abserr); > > @@ -3754,21 +3737,21 @@ namespace Gsl > > /* > > * Wavelet Transforms > > */ > > - [CCode (has_type_id = false)] > > + [CCode (cname = "gsl_wavelet_direction", cprefix = "gsl_wavelet_", has_type_id = false)] > > public enum WaveletDirection > > { > > forward = 1, > > backward = -1 > > } > > > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int WaveletInit (double** h1, double** g1, double** h2, double** g2, size_t* nc, size_t* offset, size_t member); > > > > [SimpleType] > > [CCode (cname="gsl_wavelet_type", cheader_filename="gsl/gsl_wavelet.h", has_type_id = false)] > > public struct WaveletType > > { > > - public string name; > > + public unowned string name; > > public WaveletInit init; > > } > > > > @@ -3817,25 +3800,25 @@ namespace Gsl > > public int transform_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir, WaveletWorkspace work); > > [CCode (cname="gsl_wavelet2d_transform_forward")] > > public int transform_forward_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work); > > - [CCode (cname="gsl_wavelet2d__transform_inverse")] > > + [CCode (cname="gsl_wavelet2d_transform_inverse")] > > public int transform_inverse_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform")] > > public int nstransform ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir,WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform_forward")] > > public int nstransform_forward ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform_inverse")] > > public int nstransform_inverse ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace * work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_transform_matrix")] > > public int transform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_transform_matrix_forward")] > > public int transform_matrix_forward (Matrix a, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_transform_matrix_inverse")] > > public int transform_matrix_inverse (Matrix a, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform_matrix")] > > public int nstransform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform_matrix_forward")] > > public int nstransform_matrix_forward (Matrix a, WaveletWorkspace work); > > - [CCode (cprefix="gsl_wavelet2d_")] > > + [CCode (cname="gsl_wavelet2d_nstransform_matrix_inverse")] > > public int nstransform_matrix_inverse (Matrix a, WaveletWorkspace work); > > } > > > > @@ -3869,20 +3852,20 @@ namespace Gsl > > /* > > * One dimensional Root-Finding > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int RootFsolverSet (void* state, Function* f, double* root, double x_lower, double x_upper); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int RootFsolverIterate (void* state, Function* f, double* root, double* x_lower, double* x_upper); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int RootFdfsolverSet (void* state, FunctionFdf* f, double* root); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int RootFdfsolverIterate (void* state, FunctionFdf* d, double* root); > > > > [SimpleType] > > [CCode (cname="gsl_root_fsolver_type", cheader_filename="gsl/gsl_roots.h", has_type_id = false)] > > public struct RootFsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public RootFsolverSet @set; > > public RootFsolverIterate iterate; > > @@ -3910,7 +3893,7 @@ namespace Gsl > > [CCode (cname="gsl_root_fdfsolver_type", cheader_filename="gsl/gsl_roots.h", has_type_id = false)] > > public struct RootFdfsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public RootFdfsolverSet @set; > > public RootFdfsolverIterate iterate; > > @@ -3960,18 +3943,18 @@ namespace Gsl > > /* > > * One dimensional Minimization > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MinSet (void* state, Function* f, double xminimun, double f_minimum, double x_lower, double f_lower, double x_upper, double f_upper); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MinIterate (void *state, Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MinBracketingFunction (Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper, size_t eval_max); > > > > [SimpleType] > > [CCode (cname="gsl_min_fminimizer_type", cheader_filename="gsl/gsl_min.h", has_type_id = false)] > > public struct MinFminimizerType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MinSet @set; > > public MinIterate iterate; > > @@ -4019,27 +4002,27 @@ namespace Gsl > > /* > > * Multidimensional Root-Finding > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootF (Vector x, void* params, Vector f); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFAlloc (void* state, size_t n); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFSet (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFIterate (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void MultirootFFree (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootDF (Vector x, void* params, Matrix df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFDF (Vector x, void* params, Vector f, Matrix df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFdfAlloc (void* state, size_t n); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFdfSet (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFdfIterate (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultirootFdfFree (void* state); > > > > [SimpleType] > > @@ -4058,7 +4041,7 @@ namespace Gsl > > [CCode (cname="gsl_multiroot_fsolver_type", cheader_filename="gsl/gsl_multiroots.h", has_type_id = false)] > > public struct MultirootFsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultirootFAlloc alloc; > > public MultirootFSet @set; > > @@ -4100,7 +4083,7 @@ namespace Gsl > > [CCode (cname="gsl_multiroot_fdfsolver_type", cheader_filename="gsl/gsl_multiroots.h", has_type_id = false)] > > public struct MultirootFdfsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultirootFdfAlloc alloc; > > public MultirootFdfSet @set; > > @@ -4157,19 +4140,19 @@ namespace Gsl > > /* > > * Multidimensional Minimization > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate double MultiminF (Vector x, void* params); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void MultiminDf (Vector x, void* params, Vector df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void MultiminFdf (Vector x, void* params, double* f, Vector df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFAlloc (void *state, size_t n); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFSet (void* state, MultiminFunction* f, Vector x, double* size); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFIterate (void* state, MultiminFunction* f, Vector x, double* size, double* fval); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFFree (void* state); > > > > [SimpleType] > > @@ -4199,7 +4182,7 @@ namespace Gsl > > [CCode (cname="gsl_multimin_fminimizer_type", cheader_filename="gsl/gsl_multimin.h", has_type_id = false)] > > public struct MultiminFminimizerType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultiminFAlloc alloc; > > public MultiminFSet @set; > > @@ -4233,22 +4216,22 @@ namespace Gsl > > public static int size (double size, double epsabs); > > } > > > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFdfAlloc (void *state, size_t n); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFdfSet (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, double step_size, double tol); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFdfIterate (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFdfRestart (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultiminFdfFree (void* state); > > > > [SimpleType] > > [CCode (cname="gsl_multimin_fdfminimizer_type", cheader_filename="gsl/gsl_multimin.h", has_type_id = false)] > > public struct MultiminFdfminimizerType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultiminFdfAlloc alloc; > > public MultiminFdfSet @set; > > @@ -4302,7 +4285,7 @@ namespace Gsl > > namespace Fit > > { > > public static int linear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, out double sumsq); > > - public static int wlinear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, double chisq); > > + public static int wlinear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, out double chisq); > > public static int linear_est (double x, double c0, double c1, double cov00, double cov01, double cov11, out double y, out double y_err); > > public static int mul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq); > > public static int wmul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq); > > @@ -4331,7 +4314,7 @@ namespace Gsl > > namespace Multifit > > { > > public static int linear (Matrix X, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work); > > - public static int linear_svd (Matrix X, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work); > > + public static int linear_svd (Matrix X, MultifitLinearWorkspace work); > > public static int wlinear (Matrix X, Vector w, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work); > > public static int wlinear_svd (Matrix X, Vector w, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work); > > public static int linear_est (Vector x, Vector c, Matrix cov, out double y, out double y_err); > > @@ -4342,27 +4325,27 @@ namespace Gsl > > /* > > * Nonlinear Least-Squares Fitting > > */ > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitF (Vector x, void* params, Vector f); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFAlloc (void* state, size_t n, size_t p); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFSet (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFIterate (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void MultifitFFree (void* state); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitDf (Vector x, void* params, Matrix df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFdf (Vector x, void* params, Vector f, Matrix df); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFdfAlloc (void* state, size_t n, size_t p); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFdfSet (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate int MultifitFdfIterate (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx); > > - [CCode (has_target = false)] > > + [CCode (has_target = false, has_typedef = false)] > > public delegate void MultifitFdfFree (void* state); > > > > [CCode (lower_case_cprefix="gsl_multifit_", cheader_filename="gsl/gsl_multifit_nlin.h")] > > @@ -4373,7 +4356,7 @@ namespace Gsl > > } > > > > [SimpleType] > > - [CCode (cname="gsl_multifit_function", cheader_filename="gls/gsl_multifit_nlin.h", has_type_id = false)] > > + [CCode (cname="gsl_multifit_function", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)] > > public struct MultifitFunction > > { > > public MultifitF f; > > @@ -4386,7 +4369,7 @@ namespace Gsl > > [CCode (cname="gsl_multifit_fsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)] > > public struct MultifitFsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultifitFAlloc alloc; > > public MultifitFSet @set; > > @@ -4429,7 +4412,7 @@ namespace Gsl > > [CCode (cname="gsl_multifit_fdfsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)] > > public struct MultifitFdfsolverType > > { > > - public string name; > > + public unowned string name; > > public size_t size; > > public MultifitFdfAlloc alloc; > > public MultifitFdfSet @set; > > @@ -4445,8 +4428,10 @@ namespace Gsl > > public MultifitFunctionFdf* fdf; > > public Vector x; > > public Vector f; > > - public Vector J; > > public Vector dx; > > + public Vector g; > > + public Vector sqrt_wts; > > + public size_t niter; > > public void* state; > > > > [CCode (cname="gsl_multifit_fdfsolver_alloc")] > > diff --git a/vapi/gstreamer-audio-1.0.vapi b/vapi/gstreamer-audio-1.0.vapi > > index 16c60fdb8..21dfdfde9 100644 > > --- a/vapi/gstreamer-audio-1.0.vapi > > +++ b/vapi/gstreamer-audio-1.0.vapi > > @@ -341,6 +341,8 @@ namespace Gst { > > public weak Gst.Audio.Info info; > > [CCode (has_construct_function = false)] > > protected Filter (); > > + [CCode (cname = "gst_audio_filter_class_add_pad_templates")] > > + public class void add_pad_templates (Gst.Caps allowed_caps); > > [NoWrapper] > > public virtual bool setup (Gst.Audio.Info info); > > } > > diff --git a/vapi/gstreamer-rtsp-1.0.vapi b/vapi/gstreamer-rtsp-1.0.vapi > > index 988d1deb3..fafa3293b 100644 > > --- a/vapi/gstreamer-rtsp-1.0.vapi > > +++ b/vapi/gstreamer-rtsp-1.0.vapi > > @@ -239,7 +239,7 @@ namespace Gst { > > public Gst.RTSP.Result wait_backlog_usec (int64 timeout); > > public Gst.RTSP.Result write_data ([CCode (array_length_cname = "size", array_length_pos = 1.5, array_length_type = "guint")] owned uint8[] data, out uint id); > > } > > - [CCode (cheader_filename = "gst/rtsp/rtsp.h", type_id = "gst_rtsp_extension_get_type ()")] > > + [CCode (cheader_filename = "gst/rtsp/rtsp.h", type_cname = "GstRTSPExtensionInterface", type_id = "gst_rtsp_extension_get_type ()")] > > [GIR (name = "RTSPExtension")] > > public interface Extension : GLib.Object { > > public abstract Gst.RTSP.Result after_send (Gst.RTSP.Message req, Gst.RTSP.Message resp); > > diff --git a/vapi/gstreamer-tag-1.0.vapi b/vapi/gstreamer-tag-1.0.vapi > > index 953fe1711..1ef26138b 100644 > > --- a/vapi/gstreamer-tag-1.0.vapi > > +++ b/vapi/gstreamer-tag-1.0.vapi > > @@ -134,7 +134,7 @@ namespace Gst { > > [NoWrapper] > > public virtual Gst.Buffer render_start_tag (Gst.TagList tag_list); > > } > > - [CCode (cheader_filename = "gst/tag/tag.h", type_id = "gst_tag_xmp_writer_get_type ()")] > > + [CCode (cheader_filename = "gst/tag/tag.h", type_cname = "GstTagXmpWriterInterface", type_id = "gst_tag_xmp_writer_get_type ()")] > > [GIR (name = "TagXmpWriter")] > > public interface XmpWriter : Gst.Element { > > public void add_all_schemas (); > > diff --git a/vapi/gstreamer-video-1.0.vapi b/vapi/gstreamer-video-1.0.vapi > > index 8730c72ed..2129c3a4e 100644 > > --- a/vapi/gstreamer-video-1.0.vapi > > +++ b/vapi/gstreamer-video-1.0.vapi > > @@ -518,7 +518,7 @@ namespace Gst { > > [HasEmitter] > > public virtual signal void value_changed (Gst.Video.ColorBalanceChannel channel, int value); > > } > > - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_direction_get_type ()")] > > + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoDirectionInterface", type_id = "gst_video_direction_get_type ()")] > > [GIR (name = "VideoDirection")] > > [Version (since = "1.10")] > > public interface Direction : GLib.Object { > > @@ -560,7 +560,7 @@ namespace Gst { > > [Version (since = "1.18")] > > public void send_mouse_scroll_event (double x, double y, double delta_x, double delta_y); > > } > > - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_orientation_get_type ()")] > > + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoOrientationInterface", type_id = "gst_video_orientation_get_type ()")] > > [GIR (name = "VideoOrientation")] > > public interface Orientation : GLib.Object { > > public abstract bool get_hcenter (out int center); > > @@ -572,7 +572,7 @@ namespace Gst { > > public abstract bool set_vcenter (int center); > > public abstract bool set_vflip (bool flip); > > } > > - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_overlay_get_type ()")] > > + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoOverlayInterface", type_id = "gst_video_overlay_get_type ()")] > > [GIR (name = "VideoOverlay")] > > public interface Overlay : GLib.Object { > > public abstract void expose (); > > diff --git a/vapi/gtk4-unix-print.vapi b/vapi/gtk4-unix-print.vapi > > index 38a742e01..6885b50ae 100644 > > --- a/vapi/gtk4-unix-print.vapi > > +++ b/vapi/gtk4-unix-print.vapi > > @@ -2,10 +2,10 @@ > > > > [CCode (cprefix = "Gtk", gir_namespace = "Gtk", gir_version = "4.0", lower_case_cprefix = "gtk_")] > > namespace Gtk { > > - [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > - public class PageSetupUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager, Gtk.Root { > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_page_setup_unix_dialog_get_type ()")] > > + public class PageSetupUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager { > > [CCode (has_construct_function = false, type = "GtkWidget*")] > > - public PageSetupUnixDialog (string title, Gtk.Window parent); > > + public PageSetupUnixDialog (string? title, Gtk.Window? parent); > > public unowned Gtk.PageSetup get_page_setup (); > > public unowned Gtk.PrintSettings get_print_settings (); > > public void set_page_setup (Gtk.PageSetup page_setup); > > @@ -14,7 +14,7 @@ namespace Gtk { > > [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > public abstract class PrintBackend : GLib.Object { > > } > > - [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_print_job_get_type ()")] > > public class PrintJob : GLib.Object { > > [CCode (has_construct_function = false)] > > public PrintJob (string title, Gtk.Printer printer, Gtk.PrintSettings settings, Gtk.PageSetup page_setup); > > @@ -22,6 +22,7 @@ namespace Gtk { > > public uint get_n_up (); > > public Gtk.NumberUpLayout get_n_up_layout (); > > public int get_num_copies (); > > + [CCode (array_length_pos = 0.1)] > > public unowned Gtk.PageRange[] get_page_ranges (); > > public Gtk.PageSet get_page_set (); > > public Gtk.PrintPages get_pages (); > > @@ -39,7 +40,7 @@ namespace Gtk { > > public void set_n_up (uint n_up); > > public void set_n_up_layout (Gtk.NumberUpLayout layout); > > public void set_num_copies (int num_copies); > > - public void set_page_ranges (Gtk.PageRange[] ranges); > > + public void set_page_ranges ([CCode (array_length_cname = "n_ranges", array_length_pos = 1.1)] owned Gtk.PageRange[] ranges); > > public void set_page_set (Gtk.PageSet page_set); > > public void set_pages (Gtk.PrintPages pages); > > public void set_reverse (bool reverse); > > @@ -54,12 +55,12 @@ namespace Gtk { > > public Gtk.PrintSettings settings { get; construct; } > > public string title { get; construct; } > > public bool track_print_status { get; set; } > > - public virtual signal void status_changed (); > > + public signal void status_changed (); > > } > > - [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > - public class PrintUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager, Gtk.Root { > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_print_unix_dialog_get_type ()")] > > + public class PrintUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager { > > [CCode (has_construct_function = false, type = "GtkWidget*")] > > - public PrintUnixDialog (string title, Gtk.Window parent); > > + public PrintUnixDialog (string? title, Gtk.Window? parent); > > public void add_custom_tab (Gtk.Widget child, Gtk.Widget tab_label); > > public int get_current_page (); > > public bool get_embed_page_setup (); > > @@ -75,7 +76,7 @@ namespace Gtk { > > public void set_has_selection (bool has_selection); > > public void set_manual_capabilities (Gtk.PrintCapabilities capabilities); > > public void set_page_setup (Gtk.PageSetup page_setup); > > - public void set_settings (Gtk.PrintSettings settings); > > + public void set_settings (Gtk.PrintSettings? settings); > > public void set_support_selection (bool support_selection); > > public int current_page { get; set; } > > public bool embed_page_setup { get; set; } > > @@ -87,7 +88,7 @@ namespace Gtk { > > public Gtk.Printer selected_printer { get; } > > public bool support_selection { get; set; } > > } > > - [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_printer_get_type ()")] > > public class Printer : GLib.Object { > > [CCode (has_construct_function = false)] > > public Printer (string name, Gtk.PrintBackend backend, bool virtual_); > > @@ -132,9 +133,9 @@ namespace Gtk { > > [NoAccessorMethod] > > public bool paused { get; } > > public string state_message { get; } > > - public virtual signal void details_acquired (bool p0); > > + public signal void details_acquired (bool success); > > } > > - [CCode (cheader_filename = "gtk/gtkunixprint.h", cprefix = "GTK_PRINT_CAPABILITY_")] > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", cprefix = "GTK_PRINT_CAPABILITY_", type_id = "gtk_print_capabilities_get_type ()")] > > [Flags] > > public enum PrintCapabilities { > > PAGE_SET, > > @@ -150,8 +151,8 @@ namespace Gtk { > > } > > [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)] > > public delegate void PrintJobCompleteFunc (Gtk.PrintJob print_job) throws GLib.Error; > > - [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)] > > public delegate bool PrinterFunc (Gtk.Printer printer); > > [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > - public static void enumerate_printers (owned Gtk.PrinterFunc func, bool wait); > > + public static void enumerate_printers ([CCode (delegate_target_pos = 1.33333, destroy_notify_pos = 1.66667)] owned Gtk.PrinterFunc func, bool wait); > > } > > diff --git a/vapi/gtk4.vapi b/vapi/gtk4.vapi > > index 841487e8d..99574a9c2 100644 > > --- a/vapi/gtk4.vapi > > +++ b/vapi/gtk4.vapi > > @@ -5301,12 +5301,16 @@ namespace Gdk { > > public unowned Gdk.Rectangle? get_anchor_rect (); > > public void get_offset (out int dx, out int dy); > > public Gdk.Gravity get_rect_anchor (); > > + [Version (since = "4.2")] > > + public void get_shadow_width (out int left, out int right, out int top, out int bottom); > > public Gdk.Gravity get_surface_anchor (); > > public unowned Gdk.PopupLayout @ref (); > > public void set_anchor_hints (Gdk.AnchorHints anchor_hints); > > public void set_anchor_rect (Gdk.Rectangle anchor_rect); > > public void set_offset (int dx, int dy); > > public void set_rect_anchor (Gdk.Gravity anchor); > > + [Version (since = "4.2")] > > + public void set_shadow_width (int left, int right, int top, int bottom); > > public void set_surface_anchor (Gdk.Gravity anchor); > > public void unref (); > > } > > @@ -6004,6 +6008,8 @@ namespace Gsk { > > public class ConicGradientNode : Gsk.RenderNode { > > [CCode (has_construct_function = false, type = "GskRenderNode*")] > > public ConicGradientNode (Graphene.Rect bounds, Graphene.Point center, float rotation, [CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1, array_length_type = "gsize")] Gsk.ColorStop[] color_stops); > > + [Version (since = "4.2")] > > + public float get_angle (); > > public unowned Graphene.Point? get_center (); > > [CCode (array_length_pos = 0.1, array_length_type = "gsize")] > > public unowned Gsk.ColorStop[] get_color_stops (); > > @@ -6097,6 +6103,12 @@ namespace Gsk { > > public size_t get_n_color_stops (); > > public unowned Graphene.Point? get_start (); > > } > > + [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_ngl_renderer_get_type ()")] > > + public class NglRenderer : Gsk.Renderer { > > + [CCode (has_construct_function = false, type = "GskRenderer*")] > > + [Version (since = "4.2")] > > + public NglRenderer (); > > + } > > [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_opacity_node_get_type ()")] > > public class OpacityNode : Gsk.RenderNode { > > [CCode (has_construct_function = false, type = "GskRenderNode*")] > > @@ -6451,7 +6463,7 @@ namespace Gtk { > > public void set_license_type (Gtk.License license_type); > > public void set_logo (Gdk.Paintable? logo); > > public void set_logo_icon_name (string? icon_name); > > - public void set_program_name (string name); > > + public void set_program_name (string? name); > > public void set_system_information (string? system_information); > > public void set_translator_credits (string? translator_credits); > > public void set_version (string? version); > > @@ -7388,6 +7400,8 @@ namespace Gtk { > > public bool inconsistent { get; set; } > > public string label { get; set; } > > public bool use_underline { get; set; } > > + [Version (since = "4.2")] > > + public virtual signal void activate (); > > public virtual signal void toggled (); > > } > > [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_closure_expression_get_type ()")] > > @@ -8191,9 +8205,10 @@ namespace Gtk { > > public void unref (); > > public unowned Gtk.ExpressionWatch watch (GLib.Object? this_, owned Gtk.ExpressionNotify notify); > > } > > - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false, ref_function = "gtk_expression_watch_ref", unref_function = "gtk_expression_watch_unref")] > > - [Compact] > > + [CCode (cheader_filename = "gtk/gtk.h", ref_function = "gtk_expression_watch_ref", type_id = "gtk_expression_watch_get_type ()", unref_function = "gtk_expression_watch_unref")] > > public class ExpressionWatch { > > + [CCode (has_construct_function = false)] > > + protected ExpressionWatch (); > > public bool evaluate (GLib.Value value); > > public unowned Gtk.ExpressionWatch @ref (); > > public void unref (); > > @@ -8697,11 +8712,15 @@ namespace Gtk { > > public virtual void focus_in (); > > public virtual void focus_out (); > > public virtual void get_preedit_string (out string str, out Pango.AttrList attrs, out int cursor_pos); > > + [Version (deprecated = true, deprecated_since = "4.2")] > > public virtual bool get_surrounding (out string text, out int cursor_index); > > + public virtual bool get_surrounding_with_selection (out string text, out int cursor_index, out int anchor_index); > > public virtual void reset (); > > public virtual void set_client_widget (Gtk.Widget? widget); > > public virtual void set_cursor_location (Gdk.Rectangle area); > > + [Version (deprecated = true, deprecated_since = "4.2")] > > public virtual void set_surrounding (string text, int len, int cursor_index); > > + public virtual void set_surrounding_with_selection (string text, int len, int cursor_index, int anchor_index); > > public virtual void set_use_preedit (bool use_preedit); > > [NoAccessorMethod] > > public Gtk.InputHints input_hints { get; set; } > > @@ -9114,7 +9133,7 @@ namespace Gtk { > > public unowned Gtk.Adjustment get_adjustment (); > > public unowned Gtk.ListBoxRow? get_row_at_index (int index_); > > public unowned Gtk.ListBoxRow? get_row_at_y (int y); > > - public unowned Gtk.ListBoxRow get_selected_row (); > > + public unowned Gtk.ListBoxRow? get_selected_row (); > > public GLib.List<weak Gtk.ListBoxRow> get_selected_rows (); > > public Gtk.SelectionMode get_selection_mode (); > > public bool get_show_separators (); > > @@ -10642,7 +10661,7 @@ namespace Gtk { > > public bool get_can_unselect (); > > public unowned GLib.ListModel get_model (); > > public uint get_selected (); > > - public void* get_selected_item (); > > + public unowned GLib.Object? get_selected_item (); > > public void set_autoselect (bool autoselect); > > public void set_can_unselect (bool can_unselect); > > public void set_model (GLib.ListModel? model); > > @@ -11083,10 +11102,6 @@ namespace Gtk { > > public signal void preedit_changed (string preedit); > > public signal void toggle_overwrite (); > > } > > - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false)] > > - [Compact] > > - public class TextBTree { > > - } > > [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_text_buffer_get_type ()")] > > public class TextBuffer : GLib.Object { > > [CCode (has_construct_function = false)] > > @@ -12078,7 +12093,7 @@ namespace Gtk { > > public int get_margin_end (); > > public int get_margin_start (); > > public int get_margin_top (); > > - public unowned string? get_name (); > > + public unowned string get_name (); > > public unowned Gtk.Native? get_native (); > > public unowned Gtk.Widget? get_next_sibling (); > > public double get_opacity (); > > @@ -12292,6 +12307,8 @@ namespace Gtk { > > public unowned Gtk.Widget? get_focus (); > > public bool get_focus_visible (); > > public unowned Gtk.WindowGroup get_group (); > > + [Version (since = "4.2")] > > + public bool get_handle_menubar_accel (); > > public bool get_hide_on_close (); > > public unowned string? get_icon_name (); > > public bool get_mnemonics_visible (); > > @@ -12321,6 +12338,8 @@ namespace Gtk { > > public void set_display (Gdk.Display display); > > public void set_focus (Gtk.Widget? focus); > > public void set_focus_visible (bool setting); > > + [Version (since = "4.2")] > > + public void set_handle_menubar_accel (bool handle_menubar_accel); > > public void set_hide_on_close (bool setting); > > public void set_icon_name (string? name); > > public static void set_interactive_debugging (bool enable); > > @@ -12351,6 +12370,8 @@ namespace Gtk { > > public Gtk.Widget focus_widget { owned get; set; } > > [NoAccessorMethod] > > public bool fullscreened { get; set construct; } > > + [Version (since = "4.2")] > > + public bool handle_menubar_accel { get; set; } > > public bool hide_on_close { get; set; } > > public string icon_name { get; set; } > > [NoAccessorMethod] > > @@ -12852,11 +12873,6 @@ namespace Gtk { > > public Gtk.Requisition? copy (); > > public void free (); > > } > > - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false)] > > - public struct SettingsValue { > > - public weak string origin; > > - public GLib.Value value; > > - } > > [CCode (cheader_filename = "gtk/gtk.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gtk_text_iter_get_type ()")] > > public struct TextIter { > > public void assign (Gtk.TextIter other); > > @@ -13509,7 +13525,9 @@ namespace Gtk { > > public enum Ordering { > > SMALLER, > > EQUAL, > > - LARGER > > + LARGER; > > + [CCode (cheader_filename = "gtk/gtk.h")] > > + public static Gtk.Ordering from_cmpfunc (int cmpfunc_result); > > } > > [CCode (cheader_filename = "gtk/gtk.h", cprefix = "GTK_ORIENTATION_", type_id = "gtk_orientation_get_type ()")] > > public enum Orientation { > > @@ -14103,6 +14121,8 @@ namespace Gtk { > > public const int INPUT_ERROR; > > [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_INTERFACE_AGE")] > > public const int INTERFACE_AGE; > > + [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_INVALID_LIST_POSITION")] > > + public const uint INVALID_LIST_POSITION; > > [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_LEVEL_BAR_OFFSET_FULL")] > > public const string LEVEL_BAR_OFFSET_FULL; > > [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_LEVEL_BAR_OFFSET_HIGH")] > > @@ -14236,7 +14256,7 @@ namespace Gtk { > > [CCode (cheader_filename = "gtk/gtk.h")] > > public static void disable_setlocale (); > > [CCode (cheader_filename = "gtk/gtk.h")] > > - public static int distribute_natural_allocation (int extra_space, uint n_requested_sizes, Gtk.RequestedSize sizes); > > + public static int distribute_natural_allocation (int extra_space, [CCode (array_length_cname = "n_requested_sizes", array_length_pos = 1.5, array_length_type = "guint")] Gtk.RequestedSize[] sizes); > > [CCode (cheader_filename = "gtk/gtk.h")] > > public static bool drag_check_threshold (Gtk.Widget widget, int start_x, int start_y, int current_x, int current_y); > > [CCode (cheader_filename = "gtk/gtk.h")] > > @@ -14258,8 +14278,6 @@ namespace Gtk { > > [CCode (cheader_filename = "gtk/gtk.h")] > > public static void hsv_to_rgb (float h, float s, float v, out float r, out float g, out float b); > > [CCode (cheader_filename = "gtk/gtk.h")] > > - public static void im_modules_init (); > > - [CCode (cheader_filename = "gtk/gtk.h")] > > public static void init (); > > [CCode (cheader_filename = "gtk/gtk.h")] > > public static bool init_check (); > > diff --git a/vapi/libftdi.vapi b/vapi/libftdi.vapi > > index 7008985a0..b98f097e0 100644 > > --- a/vapi/libftdi.vapi > > +++ b/vapi/libftdi.vapi > > @@ -1,4 +1,4 @@ > > -[CCode (cprefix = "FTDI_", lower_case_prefix = "ftdi_", cheader_filename = "ftdi.h")] > > +[CCode (cprefix = "FTDI_", lower_case_cprefix = "ftdi_", cheader_filename = "ftdi.h")] > > namespace FTDI { > > > > public const int DEFAULT_EEPROM_SIZE; > > diff --git a/vapi/libwnck-3.0.vapi b/vapi/libwnck-3.0.vapi > > index 537099c2d..9fce7617f 100644 > > --- a/vapi/libwnck-3.0.vapi > > +++ b/vapi/libwnck-3.0.vapi > > @@ -61,6 +61,17 @@ namespace Wnck { > > public virtual signal void icon_changed (); > > public virtual signal void name_changed (); > > } > > + [CCode (cheader_filename = "libwnck/libwnck.h", type_id = "wnck_image_menu_item_get_type ()")] > > + public class ImageMenuItem : Gtk.MenuItem, Atk.Implementor, Gtk.Actionable, Gtk.Activatable, Gtk.Buildable { > > + [CCode (has_construct_function = false, type = "GtkWidget*")] > > + public ImageMenuItem (); > > + public void make_label_bold (); > > + public void make_label_normal (); > > + public void set_image_from_icon_pixbuf (Gdk.Pixbuf pixbuf); > > + public void set_image_from_window (Wnck.Window window); > > + [CCode (has_construct_function = false, type = "GtkWidget*")] > > + public ImageMenuItem.with_label (string label); > > + } > > [CCode (cheader_filename = "libwnck/libwnck.h", type_id = "wnck_pager_get_type ()")] > > public class Pager : Gtk.Widget, Atk.Implementor, Gtk.Buildable { > > [CCode (has_construct_function = false, type = "GtkWidget*")] > > @@ -70,6 +81,7 @@ namespace Wnck { > > public void set_display_mode (Wnck.PagerDisplayMode mode); > > public bool set_n_rows (int n_rows); > > public bool set_orientation (Gtk.Orientation orientation); > > + [Version (since = "3.36")] > > public void set_scroll_mode (Wnck.PagerScrollMode scroll_mode); > > [Version (since = "2.2")] > > public void set_shadow_type (Gtk.ShadowType shadow_type); > > @@ -363,9 +375,11 @@ namespace Wnck { > > CONTENT > > } > > [CCode (cheader_filename = "libwnck/libwnck.h", cprefix = "WNCK_PAGER_SCROLL_", type_id = "wnck_pager_scroll_mode_get_type ()")] > > + [Version (since = "3.36")] > > public enum PagerScrollMode { > > @2D, > > - @1D > > + @1D, > > + NONE > > } > > [CCode (cheader_filename = "libwnck/libwnck.h", cprefix = "WNCK_TASKLIST_", type_id = "wnck_tasklist_grouping_type_get_type ()")] > > public enum TasklistGroupingType { > > diff --git a/vapi/linux.vapi b/vapi/linux.vapi > > index 25b5188f3..37441b0fa 100644 > > --- a/vapi/linux.vapi > > +++ b/vapi/linux.vapi > > @@ -664,7 +664,7 @@ namespace Linux { > > SET_TEARSYNC > > } > > > > - [Flags, CCode (cname = "int", has_type_id = false, prefix = "OMAPFB_CAPS_")] > > + [Flags, CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_CAPS_")] > > public enum Caps { > > GENERIC_MASK, > > LCDC_MASK, > > @@ -1644,7 +1644,10 @@ namespace Linux { > > > > [CCode (cname = "struct input_event", has_type_id = false, cheader_filename = "linux/input.h")] > > public struct Event { > > + [Version (deprecated = true, replacement = "Event.input_event_sec and Event.input_event_usec")] > > public Posix.timeval time; > > + public time_t input_event_sec; > > + public long input_event_usec; > > public uint16 type; > > public uint16 code; > > public int32 value; > > diff --git a/vapi/metadata/Gdk-4.0.metadata b/vapi/metadata/Gdk-4.0.metadata > > index 3053be7df..40cb0fcbf 100644 > > --- a/vapi/metadata/Gdk-4.0.metadata > > +++ b/vapi/metadata/Gdk-4.0.metadata > > @@ -57,5 +57,3 @@ Device > > > > // vapigen actually generates the correctly, but in away that breaks BC > > Rectangle.union return_void > > - > > -DrawingContext skip > > diff --git a/vapi/metadata/Gio-2.0-custom.vala b/vapi/metadata/Gio-2.0-custom.vala > > index 9bb88ae92..1b212271a 100644 > > --- a/vapi/metadata/Gio-2.0-custom.vala > > +++ b/vapi/metadata/Gio-2.0-custom.vala > > @@ -177,7 +177,9 @@ namespace GLib { > > } > > } > > > > + [CCode (has_typedef = false)] > > public delegate void SimpleActionActivateCallback (SimpleAction action, Variant? parameter); > > + [CCode (has_typedef = false)] > > public delegate void SimpleActionChangeStateCallback (SimpleAction action, Variant value); > > [CCode (cheader_filename = "gio/gio.h", cname = "GAsyncReadyCallback", instance_pos = 2.9)] > > public delegate void TaskReadyCallback (GLib.Object? source_object, GLib.Task task); > > diff --git a/vapi/metadata/Gio-2.0.metadata b/vapi/metadata/Gio-2.0.metadata > > index 51c5e7079..2da6f7838 100644 > > --- a/vapi/metadata/Gio-2.0.metadata > > +++ b/vapi/metadata/Gio-2.0.metadata > > @@ -55,6 +55,9 @@ dbus_address_get_for_bus_sync parent="GLib.BusType" name="get_address_sync" > > SETTINGS_BACKEND_EXTENSION_POINT_NAME cheader_filename="gio/gsettingsbackend.h" feature_test_macro="G_SETTINGS_ENABLE_BACKEND" > > SettingsBackend > > .* cheader_filename="gio/gsettingsbackend.h" feature_test_macro="G_SETTINGS_ENABLE_BACKEND" > > + .changed_tree.tree type="GLib.Tree<string,GLib.Variant>" > > + .flatten_tree.tree type="GLib.Tree<string,GLib.Variant>" > > + .write_tree.tree type="GLib.Tree<string,GLib.Variant>" > > > > Action > > .parameter_type nullable > > @@ -81,11 +84,11 @@ Cancellable > > Credentials > > .get_native skip=false > > DatagramBased > > - .condition_check#virtual_method virtual name="datagram_condition_check" > > - .condition_wait#virtual_method virtual name="datagram_condition_wait" > > - .create_source#virtual_method virtual name="datagram_create_source" > > - .receive_messages#virtual_method virtual name="datagram_receive_messages" > > - .send_messages#virtual_method virtual name="datagram_send_messages" > > + .condition_check#virtual_method virtual name="datagram_condition_check" no_wrapper > > + .condition_wait#virtual_method virtual name="datagram_condition_wait" no_wrapper > > + .create_source#virtual_method virtual name="datagram_create_source" no_wrapper > > + .receive_messages#virtual_method virtual name="datagram_receive_messages" no_wrapper > > + .send_messages#virtual_method virtual name="datagram_send_messages" no_wrapper > > DataInputStream > > .read_* throws="GLib.IOError" > > .read_line_finish_utf8 skip > > @@ -157,6 +160,7 @@ ListModel > > .get_item#virtual_method skip > > .get_item#method skip=false abstract type="GLib.Object?" > > ListStore > > + .find_with_equal_func.equal_func type_arguments="GLib.Object" > > .insert_sorted.compare_func type_arguments="GLib.Object" > > .sort.compare_func type_arguments="GLib.Object" > > MemoryInputStream > > @@ -276,11 +280,11 @@ Initable > > PollableInputStream > > .create_source type="GLib.PollableSource" > > .read_nonblocking.buffer type="uint8[]" array_length_idx=1 > > - .read_nonblocking#virtual_method name="read_nonblocking_fn" > > + .read_nonblocking#virtual_method name="read_nonblocking_fn" no_wrapper > > PollableOutputStream > > .create_source type="GLib.PollableSource" > > - .write_nonblocking#virtual_method name="write_nonblocking_fn" > > - .writev_nonblocking#virtual_method name="writev_nonblocking_fn" > > + .write_nonblocking#virtual_method name="write_nonblocking_fn" no_wrapper > > + .writev_nonblocking#virtual_method name="writev_nonblocking_fn" no_wrapper > > TlsClientConnection > > .new nullable > > .accepted_cas type="GLib.List<GLib.ByteArray>" > > diff --git a/vapi/metadata/Gtk-4.0-custom.vala b/vapi/metadata/Gtk-4.0-custom.vala > > index c3f98568b..9c600f520 100644 > > --- a/vapi/metadata/Gtk-4.0-custom.vala > > +++ b/vapi/metadata/Gtk-4.0-custom.vala > > @@ -39,4 +39,7 @@ namespace Gtk { > > [CCode (delegate_target = false)] > > public unowned Gtk.BuildableParserErrorFunc error; > > } > > + > > + [CCode (cname = "GTK_INVALID_LIST_POSITION")] > > + public const uint INVALID_LIST_POSITION; > > } > > diff --git a/vapi/metadata/Gtk-4.0.metadata b/vapi/metadata/Gtk-4.0.metadata > > index 76cfd5e3b..d918d3c8e 100644 > > --- a/vapi/metadata/Gtk-4.0.metadata > > +++ b/vapi/metadata/Gtk-4.0.metadata > > @@ -6,10 +6,22 @@ > > * cheader_filename="gtk/gtk.h" > > IMContext cheader_filename="gtk/gtk.h,gtk/gtkimmodule.h" > > > > +// Needs to be in gtk4-unix-print > > +PageSetupUnixDialog skip > > +Printer skip > > +PrinterFunc skip > > +PrintBackend skip > > +PrintCapabilities skip > > +PrintJob skip > > +PrintJobCompleteFunc skip > > +PrintUnixDialog skip > > +enumerate_printers skip > > + > > // Causes vapigen issues, not sure why -- <union> without name > > > > // G-I doesn't support structs > > Border struct > > +ExpressionWatch compact=false > > Requisition struct > > TextIter struct > > TreeIter struct > > diff --git a/vapi/metadata/GtkUnixPrint-4.0-custom.vala b/vapi/metadata/GtkUnixPrint-4.0-custom.vala > > new file mode 100644 > > index 000000000..88fb76f6b > > --- /dev/null > > +++ b/vapi/metadata/GtkUnixPrint-4.0-custom.vala > > @@ -0,0 +1,17 @@ > > +namespace Gtk { > > + [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > + public class Printer : GLib.Object { > > + [CCode (cname = "gtk_printer_accepts_pdf")] > > + public bool get_accepts_pdf (); > > + [CCode (cname = "gtk_printer_accepts_ps")] > > + public bool get_accepts_ps (); > > + [CCode (cname = "gtk_printer_is_virtual")] > > + public bool get_is_virtual (); > > + public Gtk.PrintBackend backend { get; construct; } > > + } > > + [CCode (cheader_filename = "gtk/gtkunixprint.h")] > > + public abstract class PrintBackend : GLib.Object { > > + } > > + [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)] > > + public delegate void PrintJobCompleteFunc (Gtk.PrintJob print_job) throws GLib.Error; > > +} > > diff --git a/vapi/metadata/GtkUnixPrint-4.0.metadata b/vapi/metadata/GtkUnixPrint-4.0.metadata > > new file mode 100644 > > index 000000000..c595b6bde > > --- /dev/null > > +++ b/vapi/metadata/GtkUnixPrint-4.0.metadata > > @@ -0,0 +1,12 @@ > > +* cheader_filename="gtk/gtkunixprint.h" > > +* skip > > + > > +PageSetupUnixDialog skip=false > > +Printer skip=false > > +PrinterFunc skip=false > > +//PrintBackend skip=false > > +PrintCapabilities skip=false > > +PrintJob skip=false > > +//PrintJobCompleteFunc skip=false > > +PrintUnixDialog skip=false > > +enumerate_printers skip=false > > diff --git a/vapi/packages/gtk4-unix-print/gtk4-unix-print.excludes b/vapi/packages/gtk4-unix-print/gtk4-unix-print.excludes > > deleted file mode 100644 > > index e69de29bb..000000000 > > diff --git a/vapi/packages/gtk4-unix-print/gtk4-unix-print.files b/vapi/packages/gtk4-unix-print/gtk4-unix-print.files > > diff --git a/vapi/posix.vapi b/vapi/posix.vapi > > index 24c07b326..3bc992d55 100644 > > --- a/vapi/posix.vapi > > +++ b/vapi/posix.vapi > > @@ -2496,11 +2496,11 @@ namespace Posix { > > [CCode (cheader_filename = "unistd.h")] > > public int execlp (string path, params string[] arg); > > [CCode (cheader_filename = "unistd.h")] > > - public int execv (string path, [CCode (array_length = false, null_terminated = true)] string[] arg); > > + public int execv (string path, [CCode (array_length = false, array_null_terminated = true)] string[] arg); > > [CCode (cheader_filename = "unistd.h")] > > - public int execvp (string path, [CCode (array_length = false, null_terminated = true)] string[] arg); > > + public int execvp (string path, [CCode (array_length = false, array_null_terminated = true)] string[] arg); > > [CCode (cheader_filename = "unistd.h")] > > - public int pipe ([CCode (array_length = false, null_terminated = false)] int[] pipefd); > > + public int pipe ([CCode (array_length = false, array_null_terminated = false)] int[] pipefd); > > [CCode (cheader_filename = "unistd.h")] > > public ssize_t read (int fd, void* buf, size_t count); > > [CCode (cheader_filename = "unistd.h")] > > diff --git a/vapi/webkit2gtk-4.0.vapi b/vapi/webkit2gtk-4.0.vapi > > index b50ca9885..a7616e387 100644 > > --- a/vapi/webkit2gtk-4.0.vapi > > +++ b/vapi/webkit2gtk-4.0.vapi > > @@ -471,14 +471,24 @@ namespace WebKit { > > public unowned WebKit.JavascriptResult @ref (); > > public void unref (); > > } > > + [CCode (cheader_filename = "webkit2/webkit2.h", type_id = "webkit_media_key_system_permission_request_get_type ()")] > > + public class MediaKeySystemPermissionRequest : GLib.Object, WebKit.PermissionRequest { > > + [CCode (has_construct_function = false)] > > + protected MediaKeySystemPermissionRequest (); > > + } > > [CCode (cheader_filename = "webkit2/webkit2.h", ref_function = "webkit_mime_info_ref", type_id = "webkit_mime_info_get_type ()", unref_function = "webkit_mime_info_unref")] > > [Compact] > > public class MimeInfo { > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string get_description (); > > [CCode (array_length = false, array_null_terminated = true)] > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string[] get_extensions (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string get_mime_type (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned WebKit.MimeInfo @ref (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public void unref (); > > } > > [CCode (cheader_filename = "webkit2/webkit2.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "webkit_navigation_action_get_type ()")] > > @@ -614,9 +624,13 @@ namespace WebKit { > > public class Plugin : GLib.Object { > > [CCode (has_construct_function = false)] > > protected Plugin (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string get_description (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned GLib.List<WebKit.MimeInfo> get_mime_info_list (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string get_name (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public unowned string get_path (); > > } > > [CCode (cheader_filename = "webkit2/webkit2.h", type_id = "webkit_pointer_lock_permission_request_get_type ()")] > > @@ -729,7 +743,7 @@ namespace WebKit { > > public uint16 get_port (); > > [Version (since = "2.16")] > > public unowned string? get_protocol (); > > - [Version (since = "2.16")] > > + [Version (deprecated = true, deprecated_since = "2.32", since = "2.16")] > > public bool is_opaque (); > > [Version (since = "2.16")] > > public unowned WebKit.SecurityOrigin @ref (); > > @@ -760,7 +774,7 @@ namespace WebKit { > > public uint32 get_default_font_size (); > > public uint32 get_default_monospace_font_size (); > > public bool get_draw_compositing_indicators (); > > - [Version (since = "2.2")] > > + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")] > > public bool get_enable_accelerated_2d_canvas (); > > [Version (since = "2.24")] > > public bool get_enable_back_forward_navigation_gestures (); > > @@ -790,6 +804,7 @@ namespace WebKit { > > public bool get_enable_mock_capture_devices (); > > public bool get_enable_offline_web_application_cache (); > > public bool get_enable_page_cache (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public bool get_enable_plugins (); > > [Version (deprecated = true, deprecated_since = "2.16.")] > > public bool get_enable_private_browsing (); > > @@ -836,7 +851,7 @@ namespace WebKit { > > public void set_default_font_size (uint32 font_size); > > public void set_default_monospace_font_size (uint32 font_size); > > public void set_draw_compositing_indicators (bool enabled); > > - [Version (since = "2.2")] > > + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")] > > public void set_enable_accelerated_2d_canvas (bool enabled); > > [Version (since = "2.24")] > > public void set_enable_back_forward_navigation_gestures (bool enabled); > > @@ -866,6 +881,7 @@ namespace WebKit { > > public void set_enable_mock_capture_devices (bool enabled); > > public void set_enable_offline_web_application_cache (bool enabled); > > public void set_enable_page_cache (bool enabled); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public void set_enable_plugins (bool enabled); > > [Version (deprecated = true, deprecated_since = "2.16.")] > > public void set_enable_private_browsing (bool enabled); > > @@ -913,7 +929,7 @@ namespace WebKit { > > public uint default_font_size { get; set construct; } > > public uint default_monospace_font_size { get; set construct; } > > public bool draw_compositing_indicators { get; set construct; } > > - [Version (since = "2.2")] > > + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")] > > public bool enable_accelerated_2d_canvas { get; set construct; } > > [Version (since = "2.24")] > > public bool enable_back_forward_navigation_gestures { get; set construct; } > > @@ -943,6 +959,7 @@ namespace WebKit { > > public bool enable_mock_capture_devices { get; set construct; } > > public bool enable_offline_web_application_cache { get; set construct; } > > public bool enable_page_cache { get; set construct; } > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public bool enable_plugins { get; set construct; } > > [Version (deprecated = true, deprecated_since = "2.16.")] > > public bool enable_private_browsing { get; set construct; } > > @@ -1073,6 +1090,10 @@ namespace WebKit { > > public void remove_filter (WebKit.UserContentFilter filter); > > [Version (since = "2.26")] > > public void remove_filter_by_id (string filter_id); > > + [Version (since = "2.32")] > > + public void remove_script (WebKit.UserScript script); > > + [Version (since = "2.32")] > > + public void remove_style_sheet (WebKit.UserStyleSheet stylesheet); > > [Version (since = "2.8")] > > public void unregister_script_message_handler (string name); > > [Version (since = "2.22")] > > @@ -1095,11 +1116,11 @@ namespace WebKit { > > [Version (since = "2.28")] > > public UserMessage (string name, GLib.Variant? parameters); > > [Version (since = "2.28")] > > - public unowned GLib.UnixFDList get_fd_list (); > > + public unowned GLib.UnixFDList? get_fd_list (); > > [Version (since = "2.28")] > > public unowned string get_name (); > > [Version (since = "2.28")] > > - public unowned GLib.Variant get_parameters (); > > + public unowned GLib.Variant? get_parameters (); > > [Version (since = "2.28")] > > public void send_reply (WebKit.UserMessage reply); > > [CCode (has_construct_function = false)] > > @@ -1161,6 +1182,7 @@ namespace WebKit { > > public unowned string get_favicon_database_directory (); > > [Version (since = "2.26")] > > public unowned WebKit.GeolocationManager get_geolocation_manager (); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public async GLib.List<WebKit.Plugin> get_plugins (GLib.Cancellable? cancellable = null) throws GLib.Error; > > [Version (since = "2.4")] > > public WebKit.ProcessModel get_process_model (); > > @@ -1170,6 +1192,7 @@ namespace WebKit { > > public bool get_spell_checking_enabled (); > > [CCode (array_length = false, array_null_terminated = true)] > > public unowned string[] get_spell_checking_languages (); > > + [Version (deprecated = true, deprecated_since = "2.32.")] > > public WebKit.TLSErrorsPolicy get_tls_errors_policy (); > > [Version (since = "2.30")] > > public bool get_use_system_appearance_for_scrollbars (); > > @@ -1188,6 +1211,7 @@ namespace WebKit { > > public void register_uri_scheme (string scheme, owned WebKit.URISchemeRequestCallback callback); > > [Version (since = "2.28")] > > public void send_message_to_all_extensions (WebKit.UserMessage message); > > + [Version (deprecated = true, deprecated_since = "2.32")] > > public void set_additional_plugins_directory (string directory); > > [Version (since = "2.18")] > > public void set_automation_allowed (bool allowed); > > @@ -1195,7 +1219,7 @@ namespace WebKit { > > [Version (deprecated = true, deprecated_since = "2.10.")] > > public void set_disk_cache_directory (string directory); > > public void set_favicon_database_directory (string? path); > > - [Version (since = "2.16")] > > + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.16")] > > public void set_network_proxy_settings (WebKit.NetworkProxyMode proxy_mode, WebKit.NetworkProxySettings? proxy_settings); > > public void set_preferred_languages ([CCode (array_length = false, array_null_terminated = true)] string[]? languages); > > [Version (since = "2.4")] > > @@ -1204,6 +1228,7 @@ namespace WebKit { > > public void set_sandbox_enabled (bool enabled); > > public void set_spell_checking_enabled (bool enabled); > > public void set_spell_checking_languages ([CCode (array_length = false, array_null_terminated = true)] string[] languages); > > + [Version (deprecated = true, deprecated_since = "2.32.")] > > public void set_tls_errors_policy (WebKit.TLSErrorsPolicy policy); > > [Version (since = "2.30")] > > public void set_use_system_appearance_for_scrollbars (bool enabled); > > @@ -1526,14 +1551,20 @@ namespace WebKit { > > public bool get_persistent_credential_storage_enabled (); > > [Version (since = "2.30")] > > public unowned string? get_service_worker_registrations_directory (); > > + [Version (since = "2.32")] > > + public WebKit.TLSErrorsPolicy get_tls_errors_policy (); > > [Version (deprecated = true, deprecated_since = "2.24.", since = "2.10")] > > public unowned string? get_websql_directory (); > > [Version (since = "2.16")] > > public async bool remove (WebKit.WebsiteDataTypes types, GLib.List<WebKit.WebsiteData> website_data, GLib.Cancellable? cancellable = null) throws GLib.Error; > > [Version (since = "2.30")] > > public void set_itp_enabled (bool enabled); > > + [Version (since = "2.32")] > > + public void set_network_proxy_settings (WebKit.NetworkProxyMode proxy_mode, WebKit.NetworkProxySettings? proxy_settings); > > [Version (since = "2.30")] > > public void set_persistent_credential_storage_enabled (bool enabled); > > + [Version (since = "2.32")] > > + public void set_tls_errors_policy (WebKit.TLSErrorsPolicy policy); > > [Version (since = "2.10")] > > public string base_cache_directory { get; construct; } > > [Version (since = "2.10")] > > @@ -1983,6 +2014,9 @@ namespace WebKit { > > [CCode (cheader_filename = "webkit2/webkit2.h")] > > public static uint get_minor_version (); > > [CCode (cheader_filename = "webkit2/webkit2.h")] > > + [Version (since = "2.32")] > > + public static unowned string media_key_system_permission_get_name (WebKit.MediaKeySystemPermissionRequest request); > > + [CCode (cheader_filename = "webkit2/webkit2.h")] > > [Version (since = "2.24")] > > public static string? uri_for_display (string uri); > > [CCode (cheader_filename = "webkit2/webkit2.h")] > > diff --git a/vapi/webkit2gtk-web-extension-4.0.vapi b/vapi/webkit2gtk-web-extension-4.0.vapi > > index f0c03aabb..893236c56 100644 > > --- a/vapi/webkit2gtk-web-extension-4.0.vapi > > +++ b/vapi/webkit2gtk-web-extension-4.0.vapi > > @@ -4104,11 +4104,11 @@ namespace WebKit { > > public UserMessage (string name, GLib.Variant? parameters); > > public static GLib.Quark error_quark (); > > [Version (since = "2.28")] > > - public unowned GLib.UnixFDList get_fd_list (); > > + public unowned GLib.UnixFDList? get_fd_list (); > > [Version (since = "2.28")] > > public unowned string get_name (); > > [Version (since = "2.28")] > > - public unowned GLib.Variant get_parameters (); > > + public unowned GLib.Variant? get_parameters (); > > [Version (since = "2.28")] > > public void send_reply (WebKit.UserMessage reply); > > [CCode (has_construct_function = false)] > > diff --git a/vapi/zlib.vapi b/vapi/zlib.vapi > > index 2ce34ad16..6f76ba941 100644 > > --- a/vapi/zlib.vapi > > +++ b/vapi/zlib.vapi > > @@ -139,7 +139,7 @@ namespace ZLib { > > public int inflate (int flush); > > [CCode (cname = "inflateSetDictionary")] > > public int set_dictionary ([CCode (array_length_type = "guint")] uint8[] dictionary); > > - [CCode (cnmae = "inflateSync")] > > + [CCode (cname = "inflateSync")] > > public int sync (); > > public int reset (); > > public int prime (int bits, int value); > > > -- > Sebastian Ramacher -- Sebastian Ramacher
Attachment:
signature.asc
Description: PGP signature