From f27a0981d1ffe3019ade45339476ebd48b11a06b Mon Sep 17 00:00:00 2001 From: Tobias Leich Date: Tue, 22 Oct 2013 22:28:06 +0200 Subject: [PATCH] make config.c way more readable, jnthn++ --- Configure.pl | 14 ++------------ build/config.c.in | 6 ++++++ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Configure.pl b/Configure.pl index 71499017a8..bfa013a0d4 100644 --- a/Configure.pl +++ b/Configure.pl @@ -504,12 +504,7 @@ sub write_backend_config { if (ref($v) eq 'ARRAY') { my $i = 0; for (@$v) { - $config{backendconfig} .= <instance->VMString, \"$k\[$i]\"), - MVM_repr_box_str(tc, MVM_hll_current(tc)->str_box_type, - MVM_string_ascii_decode_nt(tc, tc->instance->VMString, \"$_\"))); -END + $config{backendconfig} .= qq/ add_entry(tc, config, "$k\[$i]", "$_");\n/; $i++; } } @@ -520,12 +515,7 @@ END $v //= ''; $v =~ s/"/\\"/g; $v =~ s/\n/\\\n/g; - $config{backendconfig} .= <instance->VMString, \"$k\"), - MVM_repr_box_str(tc, MVM_hll_current(tc)->str_box_type, - MVM_string_ascii_decode_nt(tc, tc->instance->VMString, \"$v\"))); -END + $config{backendconfig} .= qq/ add_entry(tc, config, "$k", "$v");\n/; } } } diff --git a/build/config.c.in b/build/config.c.in index 1b95ffb01f..8e7fe6fe30 100644 --- a/build/config.c.in +++ b/build/config.c.in @@ -9,6 +9,12 @@ #include "moar.h" #include "gen/config.h" +#define add_entry(tc, hash, name, value) \ + MVM_repr_bind_key_boxed(tc, hash, \ + MVM_string_ascii_decode_nt(tc, tc->instance->VMString, name), \ + MVM_repr_box_str(tc, MVM_hll_current(tc)->str_box_type, \ + MVM_string_ascii_decode_nt(tc, tc->instance->VMString, value))) + MVMObject *MVM_backend_config(MVMThreadContext *tc) { MVMObject *config = MVM_repr_alloc_init(tc, tc->instance->boot_types.BOOTHash); MVMROOT(tc, config, {