summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-04-21 17:49:53 +0300
committerArnold D. Robbins <arnold@skeeve.com>2019-04-21 17:49:53 +0300
commit0c2d3fdf3d3cec1f2b276995ccb085f2c35ca95b (patch)
treef1324b9252b241b790bc6f1f4c28d486ffd99ddb
parentdf615d8f1afb1f4bfc2ca5e8fa629d5fba1c8a46 (diff)
downloadgawk-0c2d3fdf3d3cec1f2b276995ccb085f2c35ca95b.tar.gz
Speed field assignment back up.
-rw-r--r--ChangeLog6
-rw-r--r--interpret.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ca1e095..637b5d08 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-21 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * interpert.h (Op_store_field): Move call to force_string to
+ here from unfield. Speeds up work with fields that are numeric
+ only. Thanks to Tom Gray <tom_gray@keysight.com> for the report.
+
2019-04-21 Arnold D. Robbins <arnold@skeeve.com>
* POSIX.STD: Updated.
diff --git a/interpret.h b/interpret.h
index cc6e02af..478dc82a 100644
--- a/interpret.h
+++ b/interpret.h
@@ -46,7 +46,6 @@ unfield(NODE **l, NODE **r)
(*l) = dupnode(*r);
DEREF(*r);
}
- force_string(*l);
}
#define UNFIELD(l, r) unfield(& (l), & (r))
@@ -729,6 +728,8 @@ mod:
unref(*lhs);
r = POP_SCALAR();
UNFIELD(*lhs, r);
+ /* field variables need the string representation: */
+ force_string(*lhs);
}
break;