From 0b8fef21d01a5029afd99014fd262ea5356c4b85 Mon Sep 17 00:00:00 2001 From: Kevin Wasserman Date: Mon, 9 Dec 2013 16:08:12 -0500 Subject: [PATCH] More fixes for Centos vala array property bug --- src/moonshot-local-flat-file-store.vala | 17 ++++++++++------- src/moonshot-server.vala | 10 ++++++---- src/moonshot-webp-parser.vala | 13 ++++++++----- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/moonshot-local-flat-file-store.vala b/src/moonshot-local-flat-file-store.vala index 51d3986..99874fc 100644 --- a/src/moonshot-local-flat-file-store.vala +++ b/src/moonshot-local-flat-file-store.vala @@ -104,12 +104,15 @@ public class LocalFlatFileStore : Object, IIdentityCardStore { public void store_id_cards () { var key_file = new KeyFile (); foreach (IdCard id_card in this.id_card_list) { - string[] rules_patterns = new string[id_card.rules.length]; - string[] rules_always_conf = new string[id_card.rules.length]; + /* workaround for Centos vala array property bug: use temp arrays */ + var rules = id_card.rules; + var services = id_card.services; + string[] rules_patterns = new string[rules.length]; + string[] rules_always_conf = new string[rules.length]; - for (int i=0; i 0) { + if (rules.length > 0) { key_file.set_string_list (id_card.display_name, "Rules-Patterns", rules_patterns); key_file.set_string_list (id_card.display_name, "Rules-AlwaysConfirm", rules_always_conf); } diff --git a/src/moonshot-server.vala b/src/moonshot-server.vala index 6b2f864..f5a086f 100644 --- a/src/moonshot-server.vala +++ b/src/moonshot-server.vala @@ -155,13 +155,15 @@ public class MoonshotServer : Object { if (rules_patterns.length == rules_always_confirm.length) { - idcard.rules = new Rule[rules_patterns.length]; + /* workaround Centos vala array property bug: use temp array */ + Rule[] rules = new Rule[rules_patterns.length]; - for (int i=0; i 0) + /* use temp arrays to workaround centos array property bug */ + var rules = card.rules; + var services = card.services; + if (rules.length > 0) { int i = 0; - rules_patterns = new string[card.rules.length]; - rules_always_confirm = new string[card.rules.length]; - foreach (Rule r in card.rules) + rules_patterns = new string[rules.length]; + rules_always_confirm = new string[rules.length]; + foreach (Rule r in rules) { rules_patterns[i] = r.pattern; rules_always_confirm[i] = r.always_confirm; @@ -68,7 +71,7 @@ namespace WebProvisioning card.issuer, rules_patterns, rules_always_confirm, - card.services, + services, card.trust_anchor.ca_cert, card.trust_anchor.subject, card.trust_anchor.subject_alt, -- 2.1.4