]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Avoid some string copying
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 30 Oct 2016 14:47:02 +0000 (15:47 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 1 Nov 2016 10:50:31 +0000 (11:50 +0100)
ccode/valaccodewriter.vala
codegen/valaccodebasemodule.vala
codegen/valagirwriter.vala
vala/valacodecontext.vala
vapigen/valagidlparser.vala

index 93f4a4261fffb7ab2fb2708a4265149984871ccf..7368852d1c776ca90ffd0e161b5db8ed663e60ae 100644 (file)
@@ -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 {
index 803b9cefad054f5ac53cb07fa626801c0b006c3b..8c8ccbbcc6fa51db07ae3e61acde048b49b6a3ce 100644 (file)
@@ -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));
index 628b28c7c26084148f6fc298773bef24e6679b1f..4d361f50d6da1484177cd73129dda3ff3efed086 100644 (file)
@@ -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);
                        }
                }
index 0407561bc77c0e49ad9e788f79295101db56541b..4484c05b48a863da4ef957e850059b2b61e501a3 100644 (file)
@@ -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;
index ceb6b331530d55effc9a2801f96b96774a267d03..553d1c8550603df93ff8d6ea0d613a851a153eeb 100644 (file)
@@ -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));
                        }
                }