If you take NaroCAD till this Sunday and you do this simple steps: make an extrude twice, do an undo, make the second extrude again and do twice undo, you should have no extrude. But you will see that one extrude is floating still. Eventually seems to me that was the second extrude (from the list of three created).
After a long research and trying to make small breaks, I remained out of ideas.
Eventually, I made assurances not by debugging but in code also that all parts are right, one by one. So I found that the diffs was computed wrong. Means that they were wrong from what was visual and what was computed. The diff in undo was computed right, but the trees eventually seemed wrong. The cause seems to be that after applying Undo, I did not make the compare point as previous.
So as a simple sketch: and you have 3 stages, A, B and C. And you will go from A to C like: A->B->C
That was really a well hidden bug, but the great thing is that at least undo/redo and at least all workflow of data between rectangle, reference subshape and extrude works flawlessly and is checked countless times, also in all relations between undo, redo and events like removal of them!
No comments:
Post a Comment