diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-02-13 19:56:21 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-02-13 19:56:21 +0200 |
commit | c160d41490f752f55312f2de91cdd94cc9270141 (patch) | |
tree | 16d97a0a90b9465f76da3404d10e347d6f91faac /profile.c | |
parent | 050e7204af5086a851c22beb0829e9b9a163e8e1 (diff) | |
download | egawk-c160d41490f752f55312f2de91cdd94cc9270141.tar.gz egawk-c160d41490f752f55312f2de91cdd94cc9270141.tar.bz2 egawk-c160d41490f752f55312f2de91cdd94cc9270141.zip |
Profile fix and test for it.
Diffstat (limited to 'profile.c')
-rw-r--r-- | profile.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -619,8 +619,6 @@ cleanup: break; case Op_indirect_func_call: - t1 = pp_pop(); /* indirect var */ - pp_free(t1); case Op_func_call: { char *fname = pc->func_name; @@ -638,6 +636,10 @@ cleanup: efree(tmp); } else str = pp_concat(pre, fname, "()"); + if (pc->opcode == Op_indirect_func_call) { + t1 = pp_pop(); /* indirect var */ + pp_free(t1); + } pp_push(pc->opcode, str, CAN_FREE); } break; |