View Issue Details

IDProjectCategoryView StatusLast Update
00298462.x IDE BugsDnD EditorPublic2018-09-04 14:36
ReporterSam CummingAssigned ToAlexander Borup 
PriorityHighSeverityA - Crash/HangReproducibility75%
Status ClosedResolutionFixed 
Product Version2.1.5 
Target Version2.2.0Fixed in Version2.2.0 
Summary0029846: DnD Editor: IDE becomes unstable if you drag a parent Else statement into a child If statement
DescriptionIf you drag a parent Else statement into a child If statement from the DnD overview panel, there is a chance that the IDE will crash.

[15:07:53:139(e5fd)] Exception in YoYoStudio.Plugins.CorePlugins.DnD.Gadgets.Story.DnDStory,Void EntryReordered(Int32, Int32) : System.NullReferenceException: Object reference not set to an instance of an object
  at YoYoStudio.Core.Utils.WeakDelegate`1[T].Invoke (System.Object[] _args) [0x0008b] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Core.Utils.WeakEvent`1[T].Throw (YoYoStudio.Core.Utils.InterruptEvent _interrupt, System.Object[] _args) [0x0007e] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Core.Utils.WeakEvent`1[T].Throw (System.Object[] _args) [0x00000] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Plugins.CorePlugins.DnD.Gadgets.Story.DnDStory.EntryReordered (System.Int32 _oldindex, System.Int32 _newindex) [0x00115] in <593cf4792c9845669dd4be167b96ff5a>:0
  at (wrapper dynamic-method) YoYoStudio.Plugins.CorePlugins.DnD.Gadgets.Story.DnDStory:WeakDelegate (object,object[])
  at YoYoStudio.Core.Utils.WeakDelegate`1[T].Invoke (System.Object[] _args) [0x00030] in <ea25140f6b3d4648a70e59e9dde1d134>:0
[15:07:53:140(e5fd)] Fatal Error! 'IDE.OnWeakDelegateException - Object reference not set to an instance of an object'
[15:07:53:142(e5fd)] at YoYoStudio.Core.Utils.WeakDelegate`1[T].Invoke (System.Object[] _args) [0x0008b] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Core.Utils.WeakEvent`1[T].Throw (YoYoStudio.Core.Utils.InterruptEvent _interrupt, System.Object[] _args) [0x0007e] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Core.Utils.WeakEvent`1[T].Throw (System.Object[] _args) [0x00000] in <ea25140f6b3d4648a70e59e9dde1d134>:0
  at YoYoStudio.Plugins.CorePlugins.DnD.Gadgets.Story.DnDStory.EntryReordered (System.Int32 _oldindex, System.Int32 _newindex) [0x00115] in <593cf4792c9845669dd4be167b96ff5a>:0
  at (wrapper dynamic-method) YoYoStudio.Plugins.CorePlugins.DnD.Gadgets.Story.DnDStory:WeakDelegate (object,object[])
  at YoYoStudio.Core.Utils.WeakDelegate`1[T].Invoke (System.Object[] _args) [0x00030] in <ea25140f6b3d4648a70e59e9dde1d134>:0
[15:07:53:143(e5fd)] ####################################
[15:07:53:143(e5fd)] Break in FatalErrorWarning (IDE:2451)
[15:07:53:143(e5fd)] ####################################
Steps To Reproduce1. Open the attached project.
2. Navigate to oBall > Create
3. Drag the parent Else onto its child If from the Code Overview panel.
4. Observe that the IDE becomes unstable, the else and its children have disappeared, and a floating Else block is visible in the Editor.
TagsIDE
2.x IDE Found In2.1.5.322
2.x Runtime Found In2.1.5.246
2.x IDE Verified In2.2.0.333
2.x Runtime Verified In2.2.0.251

Activities

Sam Cumming

2018-08-01 15:11

Developer  

ui.log (491,746 bytes)
DnDCrash.yyz (395,386 bytes)

Alexander Borup

2018-08-02 10:57

Developer   ~0061018

Bug was that reordering through the overview skipped the check to see if you're adding a parent to one of its children, something normal reordering checked for. The bug was that the check itself should have been inside the IsValidInsertion method and not explicitly implemented in DnDNodeReorderGhost.

Matthew McInnes

2018-09-04 14:36

Developer   ~0061495

Closing. Verified as fixed in:

IDE v2.2.0.333 Runtime v2.2.0.251