aboutsummaryrefslogtreecommitdiffstats
path: root/field.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-01-15 21:27:06 +0200
committerArnold D. Robbins <arnold@skeeve.com>2019-01-15 21:27:06 +0200
commitc73d262642ee3a3d6585dc44acc62c432910f920 (patch)
treee8ad55a17ad6745bda7df99e6940cd4b393be330 /field.c
parentfa9c6b921f784ad6f35f36b65635969ae4fade2d (diff)
downloadegawk-c73d262642ee3a3d6585dc44acc62c432910f920.tar.gz
egawk-c73d262642ee3a3d6585dc44acc62c432910f920.tar.bz2
egawk-c73d262642ee3a3d6585dc44acc62c432910f920.zip
Finish transition to using assoc_set.
Diffstat (limited to 'field.c')
-rw-r--r--field.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/field.c b/field.c
index ccf47df1..d8bb52b7 100644
--- a/field.c
+++ b/field.c
@@ -949,18 +949,12 @@ static void
set_element(long num, char *s, long len, NODE *n)
{
NODE *it;
- NODE **lhs;
NODE *sub;
it = make_string(s, len);
it->flags |= USER_INPUT;
sub = make_number((AWKNUM) (num));
- lhs = assoc_lookup(n, sub);
- unref(*lhs);
- *lhs = it;
- if (n->astore != NULL)
- (*n->astore)(n, sub);
- unref(sub);
+ assoc_set(n, sub, it);
}
/* do_split --- implement split(), semantics are same as for field splitting */
@@ -1412,16 +1406,12 @@ current_field_sep_str()
void
update_PROCINFO_str(const char *subscript, const char *str)
{
- NODE **aptr;
NODE *tmp;
if (PROCINFO_node == NULL)
return;
tmp = make_string(subscript, strlen(subscript));
- aptr = assoc_lookup(PROCINFO_node, tmp);
- unref(tmp);
- unref(*aptr);
- *aptr = make_string(str, strlen(str));
+ assoc_set(PROCINFO_node, tmp, make_string(str, strlen(str)));
}
/* update_PROCINFO_num --- update PROCINFO[sub] with numeric value */
@@ -1429,16 +1419,12 @@ update_PROCINFO_str(const char *subscript, const char *str)
void
update_PROCINFO_num(const char *subscript, AWKNUM val)
{
- NODE **aptr;
NODE *tmp;
if (PROCINFO_node == NULL)
return;
tmp = make_string(subscript, strlen(subscript));
- aptr = assoc_lookup(PROCINFO_node, tmp);
- unref(tmp);
- unref(*aptr);
- *aptr = make_number(val);
+ assoc_set(PROCINFO_node, tmp, make_number(val));
}
/* set_FPAT --- handle an assignment to FPAT */