raziel23x / skyrim-plugin-decoding-project

Automatically exported from code.google.com/p/skyrim-plugin-decoding-project
1 stars 3 forks source link

Assertion failure while deleting a Form which references another Form. #185

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Download main file from http://www.nexusmods.com/newvegas/mods/52510
2. Open just Alternative Repairing.esp with FNVEdit
3. Navigate to ACTI\0104BABF
4. Open "Referenced By" tab, double-click on first form (REFR:00153200 for me)
5. Navigate back (click the back arrow in top-right part of FNVEdit window)
6. Right click on the same form (REFR:00153200), choose remove.
7. Observe the error pop-up.

What is the expected output?
The form is deleted, no assertion error thrown, FNVEdit works as normal.

What do you see instead?
The assertion failure pop-up. Although the error seems harmless, there is no 
telling if saving the file won't cause corruption.

What version of the product are you using? On what operating system?
r1864, Win7 x86_64

Please provide any additional information below.
Attached the bug report file generated by FNVEdit.

Original issue reported on code.google.com by clampa...@gmail.com on 12 Jan 2015 at 3:45

Attachments:

GoogleCodeExporter commented 9 years ago
I Cannot reproduce. Neither with r1866, nor with more recent. I don't have 
r1864 on hand.

Original comment by HuguesLe...@gmail.com on 13 Jan 2015 at 1:41

GoogleCodeExporter commented 9 years ago
I have just reproduced, as described, with r1866. Same back-trace. How can I be 
of assistance in order to progress with the investigation?

Original comment by clampa...@gmail.com on 13 Jan 2015 at 6:01

Attachments:

GoogleCodeExporter commented 9 years ago
I can reproduce it, but this is not an actual "error".
When you move back after selecting REFR, it is visible in the left navigation 
tree and after it being removed xEdit is repainting navigation tree and tries 
to get values from non existent record. It is more of a GUI issue actually. 
Before removing, make sure that the record to be removed is not visible 
(collapse the group it is in). Even if you forget to do it and it throws error, 
just collapse/expand some groups until it fully repaints and returns to normal 
working mode. Your plugin is perfectly safe.

Original comment by zila...@gmail.com on 13 Jan 2015 at 7:32

GoogleCodeExporter commented 9 years ago
I had a mention from Mator than using RemoveNode could lead to assertion but 
without more details. I still have to reply to his PM by the way :)

Original comment by HuguesLe...@gmail.com on 13 Jan 2015 at 7:36

GoogleCodeExporter commented 9 years ago
RemoveNode() actually doesn't produce errors unlike simple Remove() since it 
removes the actual node in the tree for that record if it exists.

Original comment by zila...@gmail.com on 13 Jan 2015 at 7:40

GoogleCodeExporter commented 9 years ago
I understand the cause and the workaround, but shouldn't this be addressed in 
the code? I mean the remove operation should also remove the form node from the 
left navigation tree.

Original comment by clampa...@gmail.com on 13 Jan 2015 at 7:57