summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tclCompCmds.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index dbc876a..7997efa 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -645,14 +645,8 @@ TclCompileCatchCmd(
(int)(CurrentOffset(envPtr) - jumpFixup.codeOffset));
}
- /*
- * Push the return options if the caller wants them.
- */
-
if (optsIndex != -1) {
TclEmitOpcode( INST_PUSH_RETURN_OPTIONS, envPtr);
- Emit14Inst( INST_STORE_SCALAR, optsIndex, envPtr);
- TclEmitOpcode( INST_POP, envPtr);
}
/*
@@ -662,6 +656,15 @@ TclCompileCatchCmd(
TclEmitOpcode( INST_END_CATCH, envPtr);
/*
+ * Push the return options if the caller wants them.
+ */
+
+ if (optsIndex != -1) {
+ Emit14Inst( INST_STORE_SCALAR, optsIndex, envPtr);
+ TclEmitOpcode( INST_POP, envPtr);
+ }
+
+ /*
* At this point, the top of the stack is inconveniently ordered:
* result returnCode
* Reverse the stack to store the result.