vala r2144 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2144 - in trunk: . gobject
- Date: Sun, 14 Dec 2008 17:15:52 +0000 (UTC)
Author: juergbi
Date: Sun Dec 14 17:15:51 2008
New Revision: 2144
URL: http://svn.gnome.org/viewvc/vala?rev=2144&view=rev
Log:
2008-12-14 JÃrg Billeter <j bitron ch>
* gobject/valaccodebasemodule.vala:
Fix struct dup function for GValue
Modified:
trunk/ChangeLog
trunk/gobject/valaccodebasemodule.vala
Modified: trunk/gobject/valaccodebasemodule.vala
==============================================================================
--- trunk/gobject/valaccodebasemodule.vala (original)
+++ trunk/gobject/valaccodebasemodule.vala Sun Dec 14 17:15:51 2008
@@ -1533,14 +1533,22 @@
var block = new CCodeBlock ();
- var dup_call = new CCodeFunctionCall (new CCodeIdentifier ("g_memdup"));
- dup_call.add_argument (new CCodeIdentifier ("self"));
+ if (value_type.type_symbol == gvalue_type) {
+ var dup_call = new CCodeFunctionCall (new CCodeIdentifier ("g_boxed_copy"));
+ dup_call.add_argument (new CCodeIdentifier ("G_TYPE_VALUE"));
+ dup_call.add_argument (new CCodeIdentifier ("self"));
- var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
- sizeof_call.add_argument (new CCodeIdentifier (value_type.type_symbol.get_cname ()));
- dup_call.add_argument (sizeof_call);
+ block.add_statement (new CCodeReturnStatement (dup_call));
+ } else {
+ var dup_call = new CCodeFunctionCall (new CCodeIdentifier ("g_memdup"));
+ dup_call.add_argument (new CCodeIdentifier ("self"));
+
+ var sizeof_call = new CCodeFunctionCall (new CCodeIdentifier ("sizeof"));
+ sizeof_call.add_argument (new CCodeIdentifier (value_type.type_symbol.get_cname ()));
+ dup_call.add_argument (sizeof_call);
- block.add_statement (new CCodeReturnStatement (dup_call));
+ block.add_statement (new CCodeReturnStatement (dup_call));
+ }
// append to file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]