gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, master, updated. 7187c507d21165be6c060f0


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. 7187c507d21165be6c060f0ee6495cd8869a1e08
Date: Thu, 11 Oct 2012 20:24:02 +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, master has been updated
       via  7187c507d21165be6c060f0ee6495cd8869a1e08 (commit)
      from  0961d7b8cc08365bc82f7410a013517a839d683e (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=7187c507d21165be6c060f0ee6495cd8869a1e08

commit 7187c507d21165be6c060f0ee6495cd8869a1e08
Author: Arnold D. Robbins <address@hidden>
Date:   Thu Oct 11 22:23:34 2012 +0200

    Bug fix in testext test and fix flag values.

diff --git a/ChangeLog b/ChangeLog
index 9222c70..421ae5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@
        it off the original using the dup_ent pointer.
        (remove_params): If there's a duplicate, remove it from the list.
 
+       * awk.h: Fix flags to have unique numeric values. Oops.
+
 2012-10-10         Arnold D. Robbins     <address@hidden>
 
        * gawkapi.h: Add considerably more documentation. Rearrange order
diff --git a/awk.h b/awk.h
index c2a6558..a684b73 100644
--- a/awk.h
+++ b/awk.h
@@ -449,10 +449,10 @@ typedef struct exp_node {
 #              define  NO_EXT_SET 0x2000    /* extension cannot set a value 
for this variable */
 
 /* type = Node_var_array */
-#              define  ARRAYMAXED      0x2000       /* array is at max size */
-#              define  HALFHAT         0x4000       /* half-capacity Hashed 
Array Tree;
+#              define  ARRAYMAXED      0x4000       /* array is at max size */
+#              define  HALFHAT         0x8000       /* half-capacity Hashed 
Array Tree;
                                                      * See cint_array.c */
-#              define  XARRAY          0x8000
+#              define  XARRAY          0x10000
 } NODE;
 
 #define vname sub.nodep.name
diff --git a/extension/ChangeLog b/extension/ChangeLog
index c20d4f4..09068dc 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-11         Arnold D. Robbins     <address@hidden>
+
+       * textext.c (try_modify_environ): Save array cookie in a separate
+       variable so it isn't clobbered. Thanks to Andrew Schorr, by way
+       of valgrind, for finding the bug.
+
 2012-09-14         Arnold D. Robbins     <address@hidden>
 
        * testext.c (try_modify_environ): New function and test.
diff --git a/extension/testext.c b/extension/testext.c
index 72cb5f8..06564b1 100644
--- a/extension/testext.c
+++ b/extension/testext.c
@@ -204,6 +204,7 @@ try_modify_environ(int nargs, awk_value_t *result)
 {
        awk_value_t value, index, newvalue;
        awk_flat_array_t *flat_array;
+       awk_array_t environ_array;
        size_t count;
        int i;
 
@@ -223,7 +224,8 @@ try_modify_environ(int nargs, awk_value_t *result)
                goto out;
        }
 
-       if (! get_element_count(value.array_cookie, & count)) {
+       environ_array = value.array_cookie;
+       if (! get_element_count(environ_array, & count)) {
                printf("try_modify_environ: get_element_count failed\n");
                goto out;
        }
@@ -231,7 +233,7 @@ try_modify_environ(int nargs, awk_value_t *result)
        /* setting an array element should fail */
        (void) make_const_string("testext2", 8, & index);
        (void) make_const_string("a value", 7, & value);
-       if (set_array_element(value.array_cookie, & index, & newvalue)) {
+       if (set_array_element(environ_array, & index, & newvalue)) {
                printf("try_modify_environ: set_array_element of ENVIRON 
passed\n");
        } else {
                printf("try_modify_environ: set_array_element of ENVIRON 
failed\n");
@@ -239,7 +241,7 @@ try_modify_environ(int nargs, awk_value_t *result)
                free(value.str_value.str);
        }
 
-       if (! flatten_array(value.array_cookie, & flat_array)) {
+       if (! flatten_array(environ_array, & flat_array)) {
                printf("try_modify_environ: could not flatten array\n");
                goto out;
        }
@@ -267,7 +269,7 @@ try_modify_environ(int nargs, awk_value_t *result)
                }
        }
 
-       if (! release_flattened_array(value.array_cookie, flat_array)) {
+       if (! release_flattened_array(environ_array, flat_array)) {
                printf("try_modify_environ: could not release flattened 
array\n");
                goto out;
        }
diff --git a/test/ChangeLog b/test/ChangeLog
index bd327f2..86ca900 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2012-10-11         Arnold D. Robbins     <address@hidden>
+
+       * testext.ok: Updated.
+
 2012-10-04         Akim Demaille         <address@hidden>
 
        Fix VPATH builds.
diff --git a/test/testext.ok b/test/testext.ok
index 3b1f423..f606635 100644
--- a/test/testext.ok
+++ b/test/testext.ok
@@ -12,7 +12,7 @@ dump_array_and_delete() did remove index "3"!
 
 try_modify_environ: sym_lookup of ENVIRON passed
 try_modify_environ: set_array_element of ENVIRON failed
-try_modify_environ: could not flatten array
+try_modify_environ: marking element "testext" for deletion
 try_del_environ() could not delete element - pass
 try_del_environ() could not add an element - pass
 var_test: sym_lookup of ARGC passed - got a value!

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

Summary of changes:
 ChangeLog           |    2 ++
 awk.h               |    6 +++---
 extension/ChangeLog |    6 ++++++
 extension/testext.c |   10 ++++++----
 test/ChangeLog      |    4 ++++
 test/testext.ok     |    2 +-
 6 files changed, 22 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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