Author: cesar
Date: 2005-11-21 20:56:30 -0500 (Mon, 21 Nov 2005)
New Revision: 53334
Modified:
trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
Log:
2005-11-21 Cesar Lopez Nataren <[EMAIL PROTECTED]>
* Statement.cs (class Switch): Preserve the value of
EmitContext.LoopEnd as can be overriden in nested blocks, for
example in a switch statement inside a for-loop.
Modified: trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
===================================================================
--- trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
2005-11-22 01:34:43 UTC (rev 53333)
+++ trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
2005-11-22 01:56:30 UTC (rev 53334)
@@ -1,3 +1,9 @@
+2005-11-21 Cesar Lopez Nataren <[EMAIL PROTECTED]>
+
+ * Statement.cs (class Switch): Preserve the value of
+ EmitContext.LoopEnd as can be overriden in nested blocks, for
+ example in a switch statement inside a for-loop.
+
2005-10-28 Raja R Harinath <[EMAIL PROTECTED]>
* Import.cs (Resolve): Update to changes in GMCS.
Modified: trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
===================================================================
--- trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
2005-11-22 01:34:43 UTC (rev 53333)
+++ trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
2005-11-22 01:56:30 UTC (rev 53334)
@@ -596,6 +596,7 @@
ILGenerator ig = ec.ig;
Label init_default = ig.DefineLabel ();
Label end_of_default = ig.DefineLabel ();
+ Label old_end = ec.LoopEnd;
ec.LoopEnd = ig.DefineLabel ();
LocalBuilder loc = ig.DeclareLocal (typeof (object));
@@ -632,7 +633,8 @@
c.EmitStms (ec);
}
}
- ig.MarkLabel (ec.LoopEnd);
+ ig.MarkLabel (ec.LoopEnd);
+ ec.LoopEnd = old_end;
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches