gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, memory-work, updated. gawk-4.1.0-523-g1f


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, memory-work, updated. gawk-4.1.0-523-g1fc1539
Date: Fri, 21 Nov 2014 08:55:38 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, memory-work has been updated
       via  1fc15398cbd381b83e20bca3913c12ee7aa34bd4 (commit)
       via  a398513aadb70b98e6e0ad04e5821ea0b6eca00c (commit)
      from  d00161ea2a57bcc45a34a35fed0d46c0e3b2de99 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=1fc15398cbd381b83e20bca3913c12ee7aa34bd4

commit 1fc15398cbd381b83e20bca3913c12ee7aa34bd4
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Nov 21 10:55:21 2014 +0200

    Update ChangeLog for memory fixes.

diff --git a/ChangeLog b/ChangeLog
index 2162c9c..bf73f3d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,11 @@
        Revert changes of 2014-11-20 from Paul Eggert. Causes failures
        on z/OS.
 
+       Unrelated: Avoid unnecessary copying of $0.
+
+       * interpret.h (UNFIELD): New macro.
+       (r_interpret): Use it where *lhs is assigned to.
+
 2014-11-20  Paul Eggert  <address@hidden>
 
        Port to systems where malloc (0) and/or realloc(P, 0) returns NULL.

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=a398513aadb70b98e6e0ad04e5821ea0b6eca00c

commit a398513aadb70b98e6e0ad04e5821ea0b6eca00c
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Nov 21 10:53:34 2014 +0200

    Remove OLDMEM checks, preparatory to merging.

diff --git a/awk.h b/awk.h
index e788a5a..9b72a53 100644
--- a/awk.h
+++ b/awk.h
@@ -1056,8 +1056,6 @@ extern bool field0_valid;
 
 extern int do_flags;
 
-extern bool do_old_mem;        /* XXX temporary */
-
 extern SRCFILE *srcfiles; /* source files */
 
 enum do_flag_values {
diff --git a/interpret.h b/interpret.h
index 2901f60..b16dc12 100644
--- a/interpret.h
+++ b/interpret.h
@@ -352,16 +352,12 @@ uninitialized_scalar:
                        lhs = r_get_field(t1, (Func_ptr *) 0, true);
                        decr_sp();
                        DEREF(t1);
-                       if (do_old_mem) {
+                       /* only for $0, up ref count */
+                       if (*lhs == fields_arr[0]) {
+                               r = *lhs;
+                               UPREF(r);
+                       } else
                                r = dupnode(*lhs);
-                       } else {
-                               /* only for $0, up ref count */
-                               if (*lhs == fields_arr[0]) {
-                                       r = *lhs;
-                                       UPREF(r);
-                               } else
-                                       r = dupnode(*lhs);
-                       }
                        PUSH(r);
                        break;
 
@@ -652,12 +648,8 @@ mod:
                        }
 
                        unref(*lhs);
-                       if (do_old_mem) {
-                               *lhs = POP_SCALAR();
-                       } else {
-                               r = POP_SCALAR();
-                               UNFIELD(*lhs, r);
-                       }
+                       r = POP_SCALAR();
+                       UNFIELD(*lhs, r);
 
                        /* execute post-assignment routine if any */
                        if (t1->astore != NULL)
@@ -675,21 +667,12 @@ mod:
                        lhs = get_lhs(pc->memory, false);
                        unref(*lhs);
                        r = pc->initval;        /* constant initializer */
-                       if (do_old_mem) {
-                               if (r == NULL)
-                                       *lhs = POP_SCALAR();
-                               else {
-                                       UPREF(r);
-                                       *lhs = r;
-                               }
+                       if (r != NULL) {
+                               UPREF(r);
+                               *lhs = r;
                        } else {
-                               if (r != NULL) {
-                                       UPREF(r);
-                                       *lhs = r;
-                               } else {
-                                       r = POP_SCALAR();
-                                       UNFIELD(*lhs, r);
-                               }
+                               r = POP_SCALAR();
+                               UNFIELD(*lhs, r);
                        }
                        break;
 
@@ -705,12 +688,8 @@ mod:
                        decr_sp();
                        DEREF(t1);
                        unref(*lhs);
-                       if (do_old_mem) {
-                               *lhs = POP_SCALAR();
-                       } else {
-                               r = POP_SCALAR();
-                               UNFIELD(*lhs, r);
-                       }
+                       r = POP_SCALAR();
+                       UNFIELD(*lhs, r);
                        assert(assign != NULL);
                        assign();
                }
@@ -764,13 +743,8 @@ mod:
                        lhs = POP_ADDRESS();
                        r = TOP_SCALAR();
                        unref(*lhs);
-                       if (do_old_mem) {
-                               *lhs = r;
-                               UPREF(r);
-                       } else {
-                               UPREF(r);
-                               UNFIELD(*lhs, r);
-                       }
+                       UPREF(r);
+                       UNFIELD(*lhs, r);
                        REPLACE(r);
                        break;
 
diff --git a/main.c b/main.c
index 69e536f..1323330 100644
--- a/main.c
+++ b/main.c
@@ -170,8 +170,6 @@ GETGROUPS_T *groupset;              /* current group set */
 int ngroups;                   /* size of said set */
 #endif
 
-bool do_old_mem = false;       /* XXX temporary */
-
 void (*lintfunc)(const char *mesg, ...) = r_warning;
 
 /* Sorted by long option name! */
@@ -233,9 +231,6 @@ main(int argc, char **argv)
 #endif /* HAVE_MTRACE */
 #endif /* HAVE_MCHECK_H */
 
-       if (getenv("OLDMEM") != NULL)
-               do_old_mem = true;      /* XXX temporary */
-
        myname = gawk_name(argv[0]);
        os_arg_fixup(&argc, &argv); /* emulate redirection, expand wildcards */
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog   |    5 +++++
 awk.h       |    2 --
 interpret.h |   58 ++++++++++++++++------------------------------------------
 main.c      |    5 -----
 4 files changed, 21 insertions(+), 49 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]