[vala/wip/housekeeping: 1/6] Avoid some string copying



commit 706ff17703b8f6f3593bbf59f1bf9497b1dc3c4e
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sun Oct 30 15:47:02 2016 +0100

    Avoid some string copying

 ccode/valaccodewriter.vala       |    5 +----
 codegen/valaccodebasemodule.vala |    2 +-
 codegen/valagirwriter.vala       |    4 ++--
 vala/valacodecontext.vala        |    6 +++---
 vapigen/valagidlparser.vala      |   10 +++++-----
 5 files changed, 12 insertions(+), 15 deletions(-)
---
diff --git a/ccode/valaccodewriter.vala b/ccode/valaccodewriter.vala
index 93f4a42..7368852 100644
--- a/ccode/valaccodewriter.vala
+++ b/ccode/valaccodewriter.vala
@@ -225,10 +225,7 @@ public class Vala.CCodeWriter {
                        // discard tabs at beginning of line
                        var regex = new GLib.Regex ("^\t+");
 
-                       /* separate declaration due to missing memory management in foreach statements */
-                       var lines = text.split ("\n");
-               
-                       foreach (string line in lines) {
+                       foreach (unowned string line in text.split ("\n")) {
                                if (!first) {
                                        write_indent ();
                                } else {
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 803b9ce..8c8ccbb 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -616,7 +616,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                }
                if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && 
!sym.is_internal_symbol ())) {
                        // add appropriate include file
-                       foreach (string header_filename in get_ccode_header_filenames (sym).split (",")) {
+                       foreach (unowned string header_filename in get_ccode_header_filenames (sym).split 
(",")) {
                                decl_space.add_include (header_filename, !sym.external_package ||
                                                                         (sym.external_package &&
                                                                          sym.from_commandline));
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 628b28c..4d361f5 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -215,11 +215,11 @@ public class Vala.GIRWriter : CodeVisitor {
        private void write_c_includes (Namespace ns) {
                // Collect C header filenames
                Set<string> header_filenames = new HashSet<string> (str_hash, str_equal);
-               foreach (string c_header_filename in CCodeBaseModule.get_ccode_header_filenames (ns).split 
(",")) {
+               foreach (unowned string c_header_filename in CCodeBaseModule.get_ccode_header_filenames 
(ns).split (",")) {
                        header_filenames.add (c_header_filename);
                }
                foreach (Symbol symbol in ns.scope.get_symbol_table ().get_values ()) {
-                       foreach (string c_header_filename in CCodeBaseModule.get_ccode_header_filenames 
(symbol).split (",")) {
+                       foreach (unowned string c_header_filename in 
CCodeBaseModule.get_ccode_header_filenames (symbol).split (",")) {
                                header_filenames.add (c_header_filename);
                        }
                }
diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
index 0407561..4484c05 100644
--- a/vala/valacodecontext.vala
+++ b/vala/valacodecontext.vala
@@ -543,7 +543,7 @@ public class Vala.CodeContext {
                string filename = null;
 
                if (directories != null) {
-                       foreach (string dir in directories) {
+                       foreach (unowned string dir in directories) {
                                filename = Path.build_path ("/", dir, basename);
                                if (FileUtils.test (filename, FileTest.EXISTS)) {
                                        return filename;
@@ -552,7 +552,7 @@ public class Vala.CodeContext {
                }
 
                if (data_dir != null) {
-                       foreach (string dir in Environment.get_system_data_dirs ()) {
+                       foreach (unowned string dir in Environment.get_system_data_dirs ()) {
                                filename = Path.build_path ("/", dir, data_dir, basename);
                                if (FileUtils.test (filename, FileTest.EXISTS)) {
                                        return filename;
@@ -561,7 +561,7 @@ public class Vala.CodeContext {
                }
 
                if (versioned_data_dir != null) {
-                       foreach (string dir in Environment.get_system_data_dirs ()) {
+                       foreach (unowned string dir in Environment.get_system_data_dirs ()) {
                                filename = Path.build_path ("/", dir, versioned_data_dir, basename);
                                if (FileUtils.test (filename, FileTest.EXISTS)) {
                                        return filename;
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index ceb6b33..553d1c8 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -112,7 +112,7 @@ public class Vala.GIdlParser : CodeVisitor {
                                string metadata;
                                FileUtils.get_contents (metadata_filename, out metadata, null);
                                
-                               foreach (string line in metadata.split ("\n")) {
+                               foreach (unowned string line in metadata.split ("\n")) {
                                        if (line.has_prefix ("#")) {
                                                // ignore comment lines
                                                continue;
@@ -750,7 +750,7 @@ public class Vala.GIdlParser : CodeVisitor {
 
                if (suppress_throws == false && error_types != null) {
                        var type_args = eval (error_types).split (",");
-                       foreach (string type_arg in type_args) {
+                       foreach (unowned string type_arg in type_args) {
                                cb.add_error_type (parse_type_from_string (type_arg, true));
                        }
                }
@@ -921,7 +921,7 @@ public class Vala.GIdlParser : CodeVisitor {
                                                } else if (nv[0] == "deprecated_since") {
                                                        cl.set_attribute_string ("Version", 
"deprecated_since", eval (nv[1]));
                                                } else if (nv[0] == "type_parameters") {
-                                                       foreach (string type_param_name in eval (nv[1]).split 
(",")) {
+                                                       foreach (unowned string type_param_name in eval 
(nv[1]).split (",")) {
                                                                cl.add_type_parameter (new TypeParameter 
(type_param_name, current_source_reference));
                                                        }
                                                } else if (nv[0] == "experimental") {
@@ -2552,7 +2552,7 @@ public class Vala.GIdlParser : CodeVisitor {
                                                                        if (val.has_prefix ("\"") && 
val.has_suffix ("\"")) {
                                                                                p.initializer = new 
StringLiteral (val, param_type.source_reference);
                                                                        } else {
-                                                                               foreach (var member in 
val.split (".")) {
+                                                                               foreach (unowned string 
member in val.split (".")) {
                                                                                        p.initializer = new 
MemberAccess (p.initializer, member, param_type.source_reference);
                                                                                }
                                                                        }
@@ -2597,7 +2597,7 @@ public class Vala.GIdlParser : CodeVisitor {
 
                if (suppress_throws == false && error_types != null) {
                        var type_args = eval (error_types).split (",");
-                       foreach (string type_arg in type_args) {
+                       foreach (unowned string type_arg in type_args) {
                                m.add_error_type (parse_type_from_string (type_arg, true));
                        }
                }


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