[vala/staging] codegen: Respect cname ccode-attribute when creating/using 'lock' field
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging] codegen: Respect cname ccode-attribute when creating/using 'lock' field
- Date: Tue, 24 Apr 2018 21:50:36 +0000 (UTC)
commit 2d206ce510863a0335ccddd30fa4224449208acd
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Tue Apr 24 23:46:39 2018 +0200
codegen: Respect cname ccode-attribute when creating/using 'lock' field
https://bugzilla.gnome.org/show_bug.cgi?id=795521
codegen/valaccodebasemodule.vala | 14 +++++++-------
tests/Makefile.am | 1 +
tests/objects/bug795521.vala | 24 ++++++++++++++++++++++++
3 files changed, 32 insertions(+), 7 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 6f775e0..2d83064 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -880,7 +880,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
var finalize_context = class_finalize_context;
if (m.is_instance_member ()) {
- l = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (l, "priv"),
get_symbol_lock_name (m.name));
+ l = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (l, "priv"),
get_symbol_lock_name (get_ccode_name (m)));
init_context = instance_init_context;
finalize_context = instance_finalize_context;
} else if (m.is_class_member ()) {
@@ -888,9 +888,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier
("%s_GET_CLASS_PRIVATE".printf(get_ccode_upper_case_name (parent))));
get_class_private_call.add_argument (new CCodeIdentifier ("klass"));
- l = new CCodeMemberAccess.pointer (get_class_private_call,
get_symbol_lock_name (m.name));
+ l = new CCodeMemberAccess.pointer (get_class_private_call,
get_symbol_lock_name (get_ccode_name (m)));
} else {
- l = new CCodeIdentifier (get_symbol_lock_name
("%s_%s".printf(get_ccode_lower_case_name (m.parent_symbol), m.name)));
+ l = new CCodeIdentifier (get_symbol_lock_name
("%s_%s".printf(get_ccode_lower_case_name (m.parent_symbol), get_ccode_name (m))));
}
push_context (init_context);
@@ -1040,7 +1040,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
if (f.get_lock_used ()) {
// Declare mutex for static member
var flock = new CCodeDeclaration (get_ccode_name (mutex_type));
- var flock_decl = new CCodeVariableDeclarator (get_symbol_lock_name (get_ccode_name
(f)), new CCodeConstant ("{0}"));
+ var flock_decl = new CCodeVariableDeclarator (get_symbol_lock_name ("%s_%s".printf
(get_ccode_lower_case_name (f.parent_symbol), get_ccode_name (f))), new CCodeConstant ("{0}"));
flock.add_declarator (flock_decl);
if (f.is_private_symbol ()) {
@@ -3870,7 +3870,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
l = get_cvalue (inner_node);
}
- l = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (l, "priv"),
get_symbol_lock_name (resource.symbol_reference.name));
+ l = new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (l, "priv"),
get_symbol_lock_name (get_ccode_name (resource.symbol_reference)));
} else if (member.is_class_member ()) {
CCodeExpression klass;
@@ -3884,9 +3884,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
var get_class_private_call = new CCodeFunctionCall (new CCodeIdentifier
("%s_GET_CLASS_PRIVATE".printf(get_ccode_upper_case_name (parent))));
get_class_private_call.add_argument (klass);
- l = new CCodeMemberAccess.pointer (get_class_private_call, get_symbol_lock_name
(resource.symbol_reference.name));
+ l = new CCodeMemberAccess.pointer (get_class_private_call, get_symbol_lock_name
(get_ccode_name (resource.symbol_reference)));
} else {
- string lock_name = "%s_%s".printf(get_ccode_lower_case_name (parent),
resource.symbol_reference.name);
+ string lock_name = "%s_%s".printf(get_ccode_lower_case_name (parent), get_ccode_name
(resource.symbol_reference));
l = new CCodeIdentifier (get_symbol_lock_name (lock_name));
}
return l;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 64ce795..025d0f8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -313,6 +313,7 @@ TESTS = \
objects/bug795225-2.test \
objects/bug795225-3.test \
objects/bug795225-4.test \
+ objects/bug795521.vala \
errors/catch-error-code.vala \
errors/errors.vala \
errors/bug567181.vala \
diff --git a/tests/objects/bug795521.vala b/tests/objects/bug795521.vala
new file mode 100644
index 0000000..8c10ab8
--- /dev/null
+++ b/tests/objects/bug795521.vala
@@ -0,0 +1,24 @@
+class Foo {
+ [CCode (cname = "faz")]
+ public int foo;
+
+ [CCode (cname = "baz")]
+ public class int boo;
+
+ [CCode (cname = "maz")]
+ public static int moo;
+
+ void use () {
+ lock (foo) {
+ }
+
+ lock (boo) {
+ }
+
+ lock (moo) {
+ }
+ }
+}
+
+void main () {
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]