2002-10-06 Martin Baulig <martin@gnome.org>
authorMartin Baulig <martin@novell.com>
Sun, 6 Oct 2002 16:57:37 +0000 (16:57 -0000)
committerMartin Baulig <martin@novell.com>
Sun, 6 Oct 2002 16:57:37 +0000 (16:57 -0000)
* statemenc.cs (FlowBranching.SetParameterAssigned): Don't crash
if it's a class type and not a struct.  Fixes #31815.

svn path=/trunk/mcs/; revision=8037

mcs/mcs/ChangeLog
mcs/mcs/statement.cs

index 9dbc3668173bb72ee137bc2001abf022030be5f4..b78565ae3d73399e8cba52357a55559a06677fac 100755 (executable)
@@ -1,3 +1,8 @@
+2002-10-06  Martin Baulig  <martin@gnome.org>
+
+       * statemenc.cs (FlowBranching.SetParameterAssigned): Don't crash
+       if it's a class type and not a struct.  Fixes #31815.
+
 2002-10-06  Martin Baulig  <martin@gnome.org>
 
        * statement.cs: Reworked the flow analysis code a bit to make it
index 7ab86c188dbf2a191ca0bf7911e62cedaf38442c..13df4227f7e0d4ee451ea8f85fbef7644f4ab6ec 100755 (executable)
@@ -2062,7 +2062,11 @@ namespace Mono.CSharp {
                        if (index == 0)
                                return true;
 
-                       int field_idx = struct_params [number] [field_name];
+                       MyStructInfo info = (MyStructInfo) struct_params [number];
+                       if (info == null)
+                               return true;
+
+                       int field_idx = info [field_name];
 
                        return CurrentUsageVector [index + field_idx];
                }
@@ -2083,7 +2087,11 @@ namespace Mono.CSharp {
                        if (index == 0)
                                return;
 
-                       int field_idx = struct_params [number] [field_name];
+                       MyStructInfo info = (MyStructInfo) struct_params [number];
+                       if (info == null)
+                               return;
+
+                       int field_idx = info [field_name];
 
                        if (!CurrentUsageVector.AlwaysBreaks)
                                CurrentUsageVector [index + field_idx] = true;