summaryrefslogtreecommitdiff
path: root/codegen/valagtypemodule.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2020-07-02 19:50:48 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2020-07-02 19:50:48 +0200
commit01bf777e49d54886ec892db0bca683e0a12e047e (patch)
tree4bc1f8f1000a5ab1829d588380d86354ab08824a /codegen/valagtypemodule.vala
parent605e50e1a678ce239e6a7c02eec1356bbe94de3b (diff)
downloadvala-01bf777e49d54886ec892db0bca683e0a12e047e.tar.gz
codegen: Cache type_symbol in get_param_spec()
Diffstat (limited to 'codegen/valagtypemodule.vala')
-rw-r--r--codegen/valagtypemodule.vala20
1 files changed, 10 insertions, 10 deletions
diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
index 4757b0165..3aba4b96d 100644
--- a/codegen/valagtypemodule.vala
+++ b/codegen/valagtypemodule.vala
@@ -1832,20 +1832,20 @@ public class Vala.GTypeModule : GErrorModule {
cspec.add_argument (new CCodeConstant ("\"%s\"".printf (prop.nick)));
cspec.add_argument (new CCodeConstant ("\"%s\"".printf (prop.blurb)));
-
- if (prop.property_type.type_symbol is Class || prop.property_type.type_symbol is Interface) {
- string param_spec_name = get_ccode_param_spec_function (prop.property_type.type_symbol);
+ unowned TypeSymbol? type_symbol = prop.property_type.type_symbol;
+ if (type_symbol is Class || type_symbol is Interface) {
+ string param_spec_name = get_ccode_param_spec_function (type_symbol);
cspec.call = new CCodeIdentifier (param_spec_name);
if (param_spec_name == "g_param_spec_string") {
cspec.add_argument (new CCodeConstant ("NULL"));
} else if (param_spec_name == "g_param_spec_variant") {
cspec.add_argument (new CCodeConstant ("G_VARIANT_TYPE_ANY"));
cspec.add_argument (new CCodeConstant ("NULL"));
- } else if (get_ccode_type_id (prop.property_type.type_symbol) != "G_TYPE_POINTER") {
- cspec.add_argument (new CCodeIdentifier (get_ccode_type_id (prop.property_type.type_symbol)));
+ } else if (get_ccode_type_id (type_symbol) != "G_TYPE_POINTER") {
+ cspec.add_argument (new CCodeIdentifier (get_ccode_type_id (type_symbol)));
}
- } else if (prop.property_type.type_symbol is Enum) {
- unowned Enum e = (Enum) prop.property_type.type_symbol;
+ } else if (type_symbol is Enum) {
+ unowned Enum e = (Enum) type_symbol;
if (get_ccode_has_type_id (e)) {
if (e.is_flags) {
cspec.call = new CCodeIdentifier ("g_param_spec_flags");
@@ -1868,10 +1868,10 @@ public class Vala.GTypeModule : GErrorModule {
if (prop.initializer != null) {
cspec.add_argument ((CCodeExpression) get_ccodenode (prop.initializer));
} else {
- cspec.add_argument (new CCodeConstant (get_ccode_default_value (prop.property_type.type_symbol)));
+ cspec.add_argument (new CCodeConstant (get_ccode_default_value (type_symbol)));
}
- } else if (prop.property_type.type_symbol is Struct) {
- unowned Struct st = (Struct) prop.property_type.type_symbol;
+ } else if (type_symbol is Struct) {
+ unowned Struct st = (Struct) type_symbol;
var type_id = get_ccode_type_id (st);
if (type_id == "G_TYPE_INT") {
cspec.call = new CCodeIdentifier ("g_param_spec_int");