diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2015-03-31 22:25:01 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2015-03-31 22:25:01 +0300 |
commit | c3d61778cf747143535320affee0612c4c6d4eb8 (patch) | |
tree | a0ee2a42b2e474da693e02a4d739cd1da62ced00 /interpret.h | |
parent | 90e1d42a99178608ec22216f7f35dadcad5a8b3a (diff) | |
parent | 0ed7e09458bdb6185586a8a0bec747b2f800ca16 (diff) | |
download | egawk-c3d61778cf747143535320affee0612c4c6d4eb8.tar.gz egawk-c3d61778cf747143535320affee0612c4c6d4eb8.tar.bz2 egawk-c3d61778cf747143535320affee0612c4c6d4eb8.zip |
Merge branch 'feature/fix-indirect-call' into gawk-4.1-stable
Diffstat (limited to 'interpret.h')
-rw-r--r-- | interpret.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/interpret.h b/interpret.h index 372679df..55109063 100644 --- a/interpret.h +++ b/interpret.h @@ -1066,7 +1066,15 @@ match_re: assert(the_func != NULL); /* call it */ - r = the_func(arg_count); + if (the_func == (builtin_func_t) do_sub) + r = call_sub(t1->stptr, arg_count); + else if (the_func == do_match) + r = call_match(arg_count); + else if (the_func == do_split || the_func == do_patsplit) + r = call_split_func(t1->stptr, arg_count); + else + r = the_func(arg_count); + PUSH(r); break; } else if (f->type != Node_func) { |