gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, select, updated. gawk-4.1.0-1073-g2d3f4f


From: Andrew J. Schorr
Subject: [gawk-diffs] [SCM] gawk branch, select, updated. gawk-4.1.0-1073-g2d3f4ff
Date: Mon, 19 Jan 2015 18:57:43 +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, select has been updated
       via  2d3f4ffebcb451da84ceb8a4be58bbb23946ee6e (commit)
      from  f8fecb69346cbcd774a73a49322aeb8ddea73e44 (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=2d3f4ffebcb451da84ceb8a4be58bbb23946ee6e

commit 2d3f4ffebcb451da84ceb8a4be58bbb23946ee6e
Author: Andrew J. Schorr <address@hidden>
Date:   Mon Jan 19 13:56:58 2015 -0500

    Revert "When an extension calls sym_lookup on a deferred variable, it 
should always succeed."
    
    This reverts commit f8fecb69346cbcd774a73a49322aeb8ddea73e44.

diff --git a/ChangeLog b/ChangeLog
index 931972d..0498088 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,14 +1,5 @@
 2015-01-08         Andrew J. Schorr     <address@hidden>
 
-       * awk.h (deferred_create): Declare new function.
-       * awkgram.y (deferred_create): New function.
-       * gawkapi.c (lookup_deferred): New helper function to call lookup and
-       then deferred_create if lookup fails.
-       (api_sym_lookup, api_sym_update): Call lookup_deferred instead of
-       lookup.
-
-2015-01-08         Andrew J. Schorr     <address@hidden>
-
        Revert changes to API deferred variable creation -- these variables
        should be created when lookup is called, not when update is called.
        * awk.h (variable_create): Remove function declaration.
diff --git a/awk.h b/awk.h
index eddcb18..bb63f65 100644
--- a/awk.h
+++ b/awk.h
@@ -1318,7 +1318,6 @@ extern NODE *do_asorti(int nargs);
 extern unsigned long (*hash)(const char *s, size_t len, unsigned long hsize, 
size_t *code);
 extern void init_env_array(NODE *env_node);
 /* awkgram.c */
-extern NODE *deferred_create(const char *name);
 extern NODE *variable(int location, char *name, NODETYPE type);
 extern int parse_program(INSTRUCTION **pcode);
 extern void track_ext_func(const char *name);
diff --git a/awkgram.c b/awkgram.c
index bc79df5..adb31d9 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -7052,15 +7052,6 @@ is_deferred_variable(const char *name)
        return false;
 }
 
-NODE *
-deferred_create(const char *name)
-{
-       struct deferred_variable *dv;
-       for (dv = deferred_variables; dv != NULL; dv = dv->next)
-               if (strcmp(name, dv->name) == 0)
-                       return (*dv->load_func)();
-       return NULL;
-}
 
 /* variable --- make sure NAME is in the symbol table */
 
diff --git a/awkgram.y b/awkgram.y
index 1399262..52284af 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -4714,15 +4714,6 @@ is_deferred_variable(const char *name)
        return false;
 }
 
-NODE *
-deferred_create(const char *name)
-{
-       struct deferred_variable *dv;
-       for (dv = deferred_variables; dv != NULL; dv = dv->next)
-               if (strcmp(name, dv->name) == 0)
-                       return (*dv->load_func)();
-       return NULL;
-}
 
 /* variable --- make sure NAME is in the symbol table */
 
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 1515321..c8f7704 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,9 +1,3 @@
-2015-01-08         Andrew J. Schorr     <address@hidden>
-
-       * testext.c (var_test): Lookup of PROCINFO should always succeed.
-       (test_deferred): PROCINFO should always be present, so call lookup
-       to grab it.
-
 2015-01-06         Andrew J. Schorr     <address@hidden>
 
        * testext.c (test_deferred): New function to help with testing
diff --git a/extension/testext.c b/extension/testext.c
index 42ec091..7c61bb0 100644
--- a/extension/testext.c
+++ b/extension/testext.c
@@ -303,11 +303,11 @@ var_test(int nargs, awk_value_t *result)
                goto out;
        }
 
-       /* look up PROCINFO - should succeed */
+       /* look up PROCINFO - should fail */
        if (sym_lookup("PROCINFO", AWK_ARRAY, & value))
-               printf("var_test: sym_lookup of PROCINFO passed - got a 
value!\n");
+               printf("var_test: sym_lookup of PROCINFO failed - got a 
value!\n");
        else
-               printf("var_test: sym_lookup of PROCINFO failed - did not get a 
value\n");
+               printf("var_test: sym_lookup of PROCINFO passed - did not get a 
value\n");
 
        /* look up a reserved variable - should pass */
        if (sym_lookup("ARGC", AWK_NUMBER, & value))
@@ -399,11 +399,8 @@ test_deferred(int nargs, awk_value_t *result)
                printf("test_deferred: nargs not right (%d should be 0)\n", 
nargs);
                goto out;
        }
-
-       if (! sym_lookup("PROCINFO", AWK_ARRAY, & arr)) {
-               printf("test_deferred: %d: sym_lookup failed\n", __LINE__);
-               goto out;
-       }
+       arr.val_type = AWK_ARRAY;
+       arr.array_cookie = create_array();
 
        for (i = 0; i < sizeof(seed)/sizeof(seed[0]); i++) {
                make_const_string(seed[i].name, strlen(seed[i].name), & index);
@@ -414,6 +411,11 @@ test_deferred(int nargs, awk_value_t *result)
                }
        }
 
+       if (! sym_update("PROCINFO", & arr)) {
+               printf("test_deferred: %d: sym_update failed\n", __LINE__);
+               goto out;
+       }
+
        /* test that it still contains the values we loaded */
        for (i = 0; i < sizeof(seed)/sizeof(seed[0]); i++) {
                make_const_string(seed[i].name, strlen(seed[i].name), & index);
diff --git a/gawkapi.c b/gawkapi.c
index 0213936..f8d0498 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -486,16 +486,6 @@ node_to_awk_value(NODE *node, awk_value_t *val, 
awk_valtype_t wanted)
        return ret;
 }
 
-static NODE *
-lookup_deferred(const char *name)
-{
-       NODE *node;
-
-       if ((node = lookup(name)) != NULL)
-               return node;
-       return deferred_create(name);
-}
-
 /*
  * Symbol table access:
  *     - No access to special variables (NF, etc.)
@@ -526,7 +516,7 @@ api_sym_lookup(awk_ext_id_t id,
        if (   name == NULL
            || *name == '\0'
            || result == NULL
-           || (node = lookup_deferred(name)) == NULL)
+           || (node = lookup(name)) == NULL)
                return awk_false;
 
        if (is_off_limits_var(name))    /* a built-in variable */
@@ -584,7 +574,7 @@ api_sym_update(awk_ext_id_t id,
                return awk_false;
        }
 
-       node = lookup_deferred(name);
+       node = lookup(name);
 
        if (node == NULL) {
                /* new value to be installed */
diff --git a/test/ChangeLog b/test/ChangeLog
index 06b4c8b..7522f7a 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,7 +1,3 @@
-2015-01-08         Andrew J. Schorr     <address@hidden>
-
-       * testext.ok: PROCINFO lookup should succeed.
-
 2015-01-06         Andrew J. Schorr     <address@hidden>
 
        * Makefile.am (EXTRA_DIST): Add defvar.awk and defvar.ok.
diff --git a/test/testext.ok b/test/testext.ok
index 9dae010..5a78c15 100644
--- a/test/testext.ok
+++ b/test/testext.ok
@@ -15,7 +15,7 @@ try_modify_environ: set_array_element of ENVIRON failed
 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 PROCINFO passed - got a value!
+var_test: sym_lookup of PROCINFO passed - did not get a value
 var_test: sym_lookup of ARGC passed - got a value!
 var_test: sym_update of ARGC failed - correctly
 var_test: sym_update("testvar") succeeded

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

Summary of changes:
 ChangeLog           |    9 ---------
 awk.h               |    1 -
 awkgram.c           |    9 ---------
 awkgram.y           |    9 ---------
 extension/ChangeLog |    6 ------
 extension/testext.c |   18 ++++++++++--------
 gawkapi.c           |   14 ++------------
 test/ChangeLog      |    4 ----
 test/testext.ok     |    2 +-
 9 files changed, 13 insertions(+), 59 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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