[vala/wip/transform: 43/43] Merge branch 'master' into wip/transform



commit bcc6ae8dc5137b557979340a7b82cf63254734f2
Merge: 4faa301 9bcc61c
Author: Luca Bruno <lucabru src gnome org>
Date:   Thu Jan 1 16:05:14 2015 +0100

    Merge branch 'master' into wip/transform
    
    Conflicts:
        codegen/valaccodebasemodule.vala

 codegen/valaccodebasemodule.vala                   |   33 +++-
 codegen/valaccodememberaccessmodule.vala           |    5 +
 codegen/valaccodemethodmodule.vala                 |   12 +-
 codegen/valagirwriter.vala                         |    6 +-
 codegen/valagtkmodule.vala                         |    8 +-
 codegen/valagtypemodule.vala                       |   15 +-
 compiler/valacompiler.vala                         |    6 +
 gobject-introspection/scannerlexer.l               |  193 ++++++++++----
 tests/Makefile.am                                  |    4 +
 tests/basic-types/bug729907.vala                   |    5 +
 tests/basic-types/bug731017.vala                   |   18 ++
 tests/basic-types/integers.vala                    |    2 +
 tests/gir/bug742012.test                           |   95 +++++++
 tests/methods/bug737222.vala                       |   13 +
 vala/Makefile.am                                   |    1 +
 vala/valabinaryexpression.vala                     |    6 +-
 vala/valacodecontext.vala                          |    6 +
 vala/valagirparser.vala                            |   70 +++++-
 vala/valalambdaexpression.vala                     |    6 +
 vala/valaobjectcreationexpression.vala             |    2 +-
 vala/valausedattr.vala                             |  204 +++++++++++++++
 vapi/Makefile.am                                   |    6 +
 vapi/atk.vapi                                      |    1 +
 vapi/atspi-2.vapi                                  |    2 +-
 vapi/clutter-1.0.vapi                              |   95 +++-----
 vapi/clutter-gst-3.0.deps                          |    8 +
 vapi/clutter-gst-3.0.vapi                          |  266 ++++++++++++++++++++
 vapi/geocode-glib-1.0.vapi                         |   10 +
 vapi/gio-2.0.vapi                                  |   39 +++-
 vapi/gio-unix-2.0.vapi                             |   16 +-
 vapi/glib-2.0.vapi                                 |   28 ++-
 vapi/gobject-2.0.vapi                              |    2 +
 vapi/gstreamer-audio-1.0.vapi                      |    2 +-
 vapi/gtk+-3.0.vapi                                 |   20 ++
 vapi/metadata/ClutterGst-3.0-custom.vala           |    6 +
 vapi/metadata/ClutterGst-3.0.metadata              |    8 +
 vapi/mx-1.0.vapi                                   |    8 +-
 .../packages/gio-unix-2.0/gio-unix-2.0-custom.vala |   13 +-
 vapi/packages/gio-unix-2.0/gio-unix-2.0.metadata   |    2 +-
 vapi/packages/gtk+-3.0/gtk+-3.0-custom.vala        |  106 --------
 vapi/packages/gtk+-3.0/gtk+-3.0.gi                 |  159 ++++++++++++-
 vapi/packages/gtk+-3.0/gtk+-3.0.metadata           |    5 +
 vapi/webkit2gtk-4.0.vapi                           |   31 +++
 vapi/webkit2gtk-web-extension-4.0.vapi             |   18 +-
 44 files changed, 1263 insertions(+), 298 deletions(-)
---
diff --cc codegen/valaccodebasemodule.vala
index edad24c,e1c6a63..60433db
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@@ -5561,7 -5743,16 +5574,16 @@@ public abstract class Vala.CCodeBaseMod
                        result.lvalue = result.lvalue && result.cvalue == old_cexpr;
                }
  
-               if (!gvalue_boxing && target_type.value_owned && (!type.value_owned || boxing || unboxing) && 
requires_copy (target_type) && !(type is NullType)) {
+               bool array_needs_copy = false;
+               if (type is ArrayType && target_type is ArrayType) {
+                       var array = (ArrayType) type;
+                       var target_array = (ArrayType) target_type;
+                       if (target_array.element_type.value_owned && !array.element_type.value_owned) {
+                               array_needs_copy = requires_copy (target_array.element_type);
+                       }
+               }
+               
 -              if (!gvalue_boxing && !gvariant_boxing && target_type.value_owned && (!type.value_owned || 
boxing || unboxing || array_needs_copy) && requires_copy (target_type) && !(type is NullType)) {
++              if (!gvalue_boxing && target_type.value_owned && (!type.value_owned || boxing || unboxing || 
array_needs_copy) && requires_copy (target_type) && !(type is NullType)) {
                        // need to copy value
                        var copy = (GLibValue) copy_value (result, node);
                        if (target_type.data_type is Interface && copy == null) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]