Hi, please see a comment inline,
>Hello,
>(sorry, my English is not so good ;)
>
>I often write the following codes.
>----------------------------------------------------------------
>void main () {
> var home = Environment.get_home_dir ();
> print ("%s\n", home);
>}
>----------------------------------------------------------------
>
>Then, unnecessary g_strdup is generated.
>----------------------------------------------------------------
>void _vala_main (void) {
> const gchar* _tmp0_ = NULL;
> gchar* _tmp1_;
> gchar* home;
> _tmp0_ = g_get_home_dir ();
> _tmp1_ = g_strdup (_tmp0_);
> home = _tmp1_;
> g_print ("%s\n", home);
> _g_free0 (home);
>}
>----------------------------------------------------------------
>
>It is necessary to write a tedious following codes to avoid it.
>----------------------------------------------------------------
>void main () {
> unowned string home = Environment.get_home_dir ();
> print ("%s\n", home);
>}
>----------------------------------------------------------------
>
If get_home_dir() returns unowned string, and you make assignment to
owned string reference, you get a copy of this string. Each owned
reference of a string will delete the string when it goes out of scope,
that's why this strdup is needed (note: most objects don't behave that
way). Please see that the value returned by g_get_home_dir(), _tmp0_,
is not freed in the C code.
best regards,
>Is not unnecessary g_strdup generated without writing a tedious code?
>
>After that, if the following codes are written, it becomes a compile error.
>(Vala 0.11.2)
>----------------------------------------------------------------
>void main () {
> const string home = Environment.get_home_dir ();
> print ("%s\n", home);
>}
>----------------------------------------------------------------
>
>/home/kentaro/work/VALA/unnecessary_strdup.vala.c: In function '_vala_main':
>/home/kentaro/work/VALA/unnecessary_strdup.vala.c:18: error: invalid
>initializer
>error: cc exited with status 256
>Compilation failed: 1 error(s), 0 warning(s)
>
>Best regards,
>
>--
>Kentaro NAKAZAWA (from Japan)
>_______________________________________________
>vala-list mailing list
>[email protected]
>http://mail.gnome.org/mailman/listinfo/vala-list
--
Mój klucz publiczny o identyfikatorze 1024D/E12C5A4C znajduje się na
serwerze hkp://keys.gnupg.net
My public key with signature 1024D/E12C5A4C is on the server
hkp://keys.gnupg.net
signature.asc
Description: PGP signature
_______________________________________________ vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
