}
}
- public bool ref_sink_function_void {
- get {
- if (_ref_sink_function_void == null) {
- if (ccode != null && ccode.has_argument ("ref_sink_function_void")) {
- _ref_sink_function_void = ccode.get_bool ("ref_sink_function_void");
- } else {
- var cl = (Class) sym;
- if (cl.base_class != null) {
- _ref_sink_function_void = CCodeBaseModule.get_ccode_ref_sink_function_void (cl.base_class);
- } else {
- _ref_sink_function_void = false;
- }
- }
- }
- return _ref_sink_function_void;
- }
- }
-
public string unref_function {
get {
if (!unref_function_set) {
private string? _unref_function;
private bool unref_function_set;
private string _ref_sink_function;
- private bool? _ref_sink_function_void;
private string? _copy_function;
private bool copy_function_set;
private string? _destroy_function;
}
}
- bool is_ref_sink_function_void (DataType type) {
- var cl = type.data_type as Class;
- if (cl != null) {
- return get_ccode_ref_sink_function_void (cl);
- } else {
- return false;
- }
- }
-
bool is_free_function_address_of (DataType type) {
var cl = type.data_type as Class;
if (cl != null) {
if (sink_func != "") {
var csink = new CCodeFunctionCall (new CCodeIdentifier (sink_func));
csink.add_argument (result.cvalue);
- if (!is_ref_sink_function_void (type)) {
- result.cvalue = csink;
- requires_temp_value = true;
+ if (type.nullable) {
+ var is_not_null = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, result.cvalue, new CCodeIdentifier ("NULL"));
+ var csink_stat = new CCodeIfStatement (is_not_null, new CCodeExpressionStatement (csink));
+ ccode.add_statement (csink_stat);
} else {
ccode.add_expression (csink);
}
return get_ccode_attribute(cl).free_function_address_of;
}
- public static bool get_ccode_ref_sink_function_void (Class cl) {
- return get_ccode_attribute(cl).ref_sink_function_void;
- }
-
public static string get_ccode_unref_function (ObjectTypeSymbol sym) {
return get_ccode_attribute(sym).unref_function;
}
-/* gstreamer-0.10.vapi generated by vapigen, do not modify. */
+/* gstreamer-0.10.vapi generated by lt-vapigen, do not modify. */
[CCode (cprefix = "Gst", lower_case_cprefix = "gst_")]
namespace Gst {
public void weak_ref (Gst.MiniObjectWeakNotify notify, void* data);
public void weak_unref (Gst.MiniObjectWeakNotify notify, void* data);
}
- [CCode (cheader_filename = "gst/gst.h", ref_function = "gst_object_ref", ref_sink_function = "gst_object_ref_sink", ref_sink_function_void = true, unref_function = "gst_object_unref")]
+ [CCode (cheader_filename = "gst/gst.h", ref_function = "gst_object_ref", ref_sink_function = "gst_object_ref_sink", unref_function = "gst_object_unref")]
public abstract class Object : GLib.Object {
public Gst.ObjectFlags flags;
public weak GLib.Mutex @lock;
public unowned string id_description ();
}
- [CCode (ref_function = "gst_object_ref", unref_function = "gst_object_unref", ref_sink_function = "gst_object_ref_sink", ref_sink_function_void = true)]
+ [CCode (ref_function = "gst_object_ref", unref_function = "gst_object_unref", ref_sink_function = "gst_object_ref_sink")]
public abstract class Object {
public unowned Gst.Object @ref ();
public void unref ();