[vala/wip/housekeeping: 1/6] Avoid some string copying
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/housekeeping: 1/6] Avoid some string copying
- Date: Tue, 1 Nov 2016 11:05:58 +0000 (UTC)
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]