Will Coleda wrote:
Why the change to array.pir here? How was the original way broken?
- push_eh catch
+ push_eh bad_args
subcommand_proc = find_global "_Tcl\0builtins\0array",
subcommand_name
-resume:
clear_eh
1) The catch branched to resume, which branched to bad_args (not an
error, but unneeded)
2) The error was that 'clear_eh' was after the resume label. In the case
of an exception the 'clear_eh' clears the *next* exception handler. The
'clear_eh' must only execute, if the exception was not thrown.
As typical exception handler sequence should always look like this:
push_eh resume
find_global, find_lex, ... # exception may be thrown here
clear_eh
resume:
leo