The way I understand the documentation at

    http://www.cairographics.org/manual/cairo-Paths.html

is that a Path can either be constructed through a cairo
context, i.e., using

   new_path
   move_to
   line_to
   arc_to
   etc

and such a path can be read using either

   copy_path
   copy_path_flat

But a path can also constructed manually, i.e.
not through a cairo context.

I think I understand now why the binding does
not allow "new Cairo.Path". (I may be wrong
here, so please correct me). This is due to
a limitation in vapi. According to the cairo documentation,
a path obtained using copy_path and copy_path_flat
must be disposed using cairo_path_destroy, hence
the following lines in cairo.vapi:

    [Compact]
    [CCode (free_function = "cairo_path_destroy", etc]
    public class Path { etc }

But, the cairo documentation also states that a
manually constructed path must also be destroyed
manually (i.e., not using cairo_path_destroy).
Hence the vapi cannot provide "new Cairo.Path"
because of the inappropirate free_function.

If alternative free_function is a common expectation
in the commonly used libraries, vala should
address this issue.

Please correct me if I'm wrong.

Nice day
Nor Jaidi Tuah





PRIVILEGED/CONFIDENTIAL information may be contained in this message. If you 
are neither the addressee (intended recipient) nor an authorised recipient of 
the addressee, and have received this message in error, please destroy this 
message (including attachments) and notify the sender immediately. STRICT 
PROHIBITION: This message, whether in part or in whole, should not be reviewed, 
retained, copied, reused, disclosed, distributed or used for any purpose 
whatsoever. Such unauthorised use may be unlawful and may contain material 
protected by the Official Secrets Act (Cap 153) of the Laws of Brunei 
Darussalam. DISCLAIMER: We/This Department/The Government of Brunei Darussalam, 
accept[s] no responsibility for loss or damage arising from the use of this 
message in any manner whatsoever. Our messages are checked for viruses but we 
do not accept liability for any viruses which may be transmitted in or with 
this message.
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to