Mercurial > octave
changeset 25317:4a46c83bcb71 stable
don't hold reference to expression result after evaluation is done
* pt-eval.h (tree_evaluator::evaluate, tree_evaluator::evaluate_n):
Clear m_expr_result_value and m_expr_result_value_list after setting
retval.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 26 Apr 2018 21:19:41 -0400 |
parents | 60fd2d84c9a0 |
children | b328ff3ce0f7 |
files | libinterp/parse-tree/pt-eval.h |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-eval.h Thu Apr 26 08:47:11 2018 +0200 +++ b/libinterp/parse-tree/pt-eval.h Thu Apr 26 21:19:41 2018 -0400 @@ -309,11 +309,13 @@ case RT_VALUE: retval = m_expr_result_value; + m_expr_result_value = octave_value (); break; case RT_VALUE_LIST: retval = (m_expr_result_value_list.empty () ? octave_value () : m_expr_result_value_list(0)); + m_expr_result_value_list = octave_value_list (); break; } @@ -338,10 +340,12 @@ case RT_VALUE: retval = ovl (m_expr_result_value); + m_expr_result_value = octave_value (); break; case RT_VALUE_LIST: retval = m_expr_result_value_list; + m_expr_result_value_list = octave_value_list (); break; }