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-507-g62


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, memory-work, updated. gawk-4.1.0-507-g624caa1
Date: Mon, 17 Nov 2014 15:05:37 +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  624caa19ebb5b5a19046f0b0deb96b2e6c093685 (commit)
       via  41da6a35e2cca4ec3c6b7c61e204e51484ecd7eb (commit)
       via  46fb38d70fe250f318fb95a6083beaceaaf5155d (commit)
       via  73c561d03b0e9a4f2d0bc10d943ec73e002ea48b (commit)
       via  f35c7514dda9bf9cf06580ab5870af13e0e58103 (commit)
       via  52edf49564243b1d6392477e7c447eeb0d8558c0 (commit)
       via  c55f68090438121e3bb7c4baa66d5bba6681f277 (commit)
       via  bfb15f15556411332a2c33c2ddf51ca44c7df82f (commit)
       via  6cc74b6a9954bcfcf48aeb6178b3426b5940f928 (commit)
       via  d4397f45eb710a3c24b7b24aa895e8b9323aff4f (commit)
       via  b027c0d5d49cddfb46565d2d572ecf3828b80b1a (commit)
       via  67557ccd7bfedd6656394c42b367493f6eba0bdb (commit)
       via  0ef2d77362b1ac3caae96512c0dbdcda5b87adc5 (commit)
       via  0a0442fb4744b4a6f419b5e341dfb553081cf04e (commit)
       via  ab90088866a262f32c79e4fabc4a63409c9fd4f5 (commit)
       via  6e6d960b0964b43f3c94e19872537f7fd4603f59 (commit)
       via  757eacd6cf522e56df34372ca7e6968817947cbb (commit)
       via  0c9e840515309d37257da568d6b01dad72aa7ebc (commit)
       via  afabab5ec7a8d8500576a3bf39321cb5ca566661 (commit)
       via  2bf2c2b86482c77a8ca3b88df8e2def62e65f903 (commit)
      from  31c6051694d3152e50eb037e20c4734c7321eac6 (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=624caa19ebb5b5a19046f0b0deb96b2e6c093685

commit 624caa19ebb5b5a19046f0b0deb96b2e6c093685
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Nov 17 17:05:14 2014 +0200

    Add runtime check to run old code. Easier to debug/test.

diff --git a/awk.h b/awk.h
index 9b72a53..e788a5a 100644
--- a/awk.h
+++ b/awk.h
@@ -1056,6 +1056,8 @@ 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 83ccbfc..9910ea7 100644
--- a/interpret.h
+++ b/interpret.h
@@ -340,12 +340,16 @@ uninitialized_scalar:
                        lhs = r_get_field(t1, (Func_ptr *) 0, true);
                        decr_sp();
                        DEREF(t1);
-                       /* only for $0, up ref count */
-                       if (*lhs == fields_arr[0]) {
-                               r = *lhs;
-                               UPREF(r);
-                       } else
+                       if (do_old_mem) {
                                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;
 
@@ -654,21 +658,30 @@ mod:
                        lhs = get_lhs(pc->memory, false);
                        unref(*lhs);
                        r = pc->initval;        /* constant initializer */
-                       if (r != NULL) {
-                               UPREF(r);
-                               *lhs = r;
-                       } else {
-                               r = POP_SCALAR();
-
-                               /* if was a field, turn it into a var */
-                               if ((r->flags & FIELD) == 0) {
+                       if (do_old_mem) {
+                               if (r == NULL)
+                                       *lhs = POP_SCALAR();
+                               else {
+                                       UPREF(r);
                                        *lhs = r;
-                               } else if (r->valref == 1) {
-                                       r->flags &= ~FIELD;
+                               }
+                       } else {
+                               if (r != NULL) {
+                                       UPREF(r);
                                        *lhs = r;
                                } else {
-                                       *lhs = dupnode(r);
-                                       DEREF(r);
+                                       r = POP_SCALAR();
+
+                                       /* if was a field, turn it into a var */
+                                       if ((r->flags & FIELD) == 0) {
+                                               *lhs = r;
+                                       } else if (r->valref == 1) {
+                                               r->flags &= ~FIELD;
+                                               *lhs = r;
+                                       } else {
+                                               *lhs = dupnode(r);
+                                               DEREF(r);
+                                       }
                                }
                        }
                        break;
diff --git a/main.c b/main.c
index ddda1d6..a2bdf1b 100644
--- a/main.c
+++ b/main.c
@@ -170,6 +170,8 @@ 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! */
@@ -231,6 +233,9 @@ 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 */
 

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

commit 41da6a35e2cca4ec3c6b7c61e204e51484ecd7eb
Merge: 31c6051 46fb38d
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Nov 17 16:54:41 2014 +0200

    Merge branch 'gawk-4.1-stable' into memory-work


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

Summary of changes:
 NOTES                           |   26 +
 awk.h                           |    2 +
 awklib/eg/lib/ftrans.awk        |    2 +-
 awklib/eg/lib/strtonum.awk      |    2 +-
 awklib/eg/prog/indirectcall.awk |    2 +-
 awklib/eg/prog/split.awk        |    2 +-
 doc/ChangeLog                   |    4 +
 doc/gawk.info                   | 4127 ++++++++++++++++++++-------------------
 doc/gawk.texi                   | 2610 +++++++++++++------------
 doc/gawktexi.in                 | 2545 +++++++++++++------------
 interpret.h                     |   47 +-
 main.c                          |    5 +
 12 files changed, 4841 insertions(+), 4533 deletions(-)
 create mode 100644 NOTES


hooks/post-receive
-- 
gawk



reply via email to

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