aboutsummaryrefslogtreecommitdiffstats
path: root/field.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-01-20 22:20:47 +0200
committerArnold D. Robbins <arnold@skeeve.com>2019-01-20 22:20:47 +0200
commit9a0812e1b5ed67c3e75e70749a7e2a54f9c2bfcc (patch)
treef7924aeb58a0b721e91f1127c92e18b3fbf3e54e /field.c
parenta6ece4a82072150e4b269b5698bb8caf14075bcb (diff)
parent5766636f7bb7eb6d8fa9fd1b097ca74329062173 (diff)
downloadegawk-9a0812e1b5ed67c3e75e70749a7e2a54f9c2bfcc.tar.gz
egawk-9a0812e1b5ed67c3e75e70749a7e2a54f9c2bfcc.tar.bz2
egawk-9a0812e1b5ed67c3e75e70749a7e2a54f9c2bfcc.zip
Merge branch 'master' into feature/fix-ns-memleak
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 */