On 07.04.2018 00:25, Philip Martin wrote: > Philip Martin <phi...@codematters.co.uk> writes: > >> Iterator iter(get_iterator()); >> while (iter.has_next()) >> + { >> + m_env.PushLocalFrame(10); >> function(T(m_env, NativeT(iter.next()))); >> + m_env.PopLocalFrame(); >> + } >> return function; > Rewriting as: > > while (iter.has_next()) > { > NativeT nt(iter.next()); > m_env.PushLocalFrame(10); > T t(m_env, nt); > function(t); > m_env.PopLocalFrame(); > } > > also removes the warning, but if I move the T construction before the > PushLocalframe then the warning returns. T is JavaHL:ExternalItem.
I'll take another look. At the very least this should be using the local frame manager object, which is exception-safe, unlike explicitly pushing and popping the frame. -- Brane