Merge pull request #1323 from StephenMcConnel/bug-23591
authorZoltan Varga <vargaz@gmail.com>
Fri, 5 Dec 2014 19:06:36 +0000 (14:06 -0500)
committerZoltan Varga <vargaz@gmail.com>
Fri, 5 Dec 2014 19:06:36 +0000 (14:06 -0500)
Fix potential crash in ListView.ItemControl.ItemsMouseDown

1  2 
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs

index d46cfb22718d1f97b82c306d20ea5c4b16629ecf,73d7a837d2bd59268ff7e8aa43902cd9d53a279c..51e8b0d587e52438d6ff186c75aa0d7b25db24aa
@@@ -1031,7 -1031,6 +1031,7 @@@ namespace System.Windows.Form
  
                                virtual_list_size = value;
                                if (virtual_mode) {
 +                                      focused_item_index = -1;
                                        selected_indices.Reset ();
                                        Redraw (true);
                                }
                                                        owner.UpdateMultiSelection (clicked_item.DisplayIndex, reselect);
                                        } else {
                                                clicked_item.Selected = true;
+                                               // Side-effects to setting Selected can possibly result in ItemsMouseUp() being called
+                                               // and clicked_item being set to null.  (See Xamarin bug 23591.)  In such a case, assume
+                                               // that there's nothing more we can do here.
+                                               if (clicked_item == null)
+                                                       return;
                                        }
  
                                        if (owner.VirtualMode && changed) {