Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion Failure when using Referenced By to jump to INFO #897

Closed
Infernio opened this issue Jan 15, 2021 · 3 comments
Closed

Assertion Failure when using Referenced By to jump to INFO #897

Infernio opened this issue Jan 15, 2021 · 3 comments

Comments

@Infernio
Copy link
Contributor

Infernio commented Jan 15, 2021

What is the version of xEdit you are using?
SSEEdit 4.1.3e EXTREMELY EXPERIMENTAL (Test Build 3) (F23A851C) starting session 2021-01-15 15:58:51

Describe the bug
In certain situations, trying to jump to INFO records via the Referenced By tab leads to assertion failures.
Exception log of one such assertion failure: xEditException.log

To reproduce
Steps to reproduce the behavior:

  1. Open HearthFires.esm in SSEEdit
  2. Navigate to CW [QUST:00019E53]
  3. Open the Referenced By tab
  4. Scroll all the way to the bottom, until you find [INFO:02008774] ([R]'I'm gonna join the Stormcloaks. They're the best!' in GRUP Topic Children of RelationshipAdoption_Hellos [DIAL:02003CFF])
  5. Double-click to jump to it, note the assertion failure you now get

Expected behavior
The record should show up without an assertion failure being triggered.

Additional context
The Messages tab prints this out:

<Error sorting INFO for ["GRUP Topic Children of DialogueGenericHello "DialogueGenericHello" [DIAL:000142B5]" in "[00] Skyrim.esm"]: [EAssertionFailed] Assertion failure (P:\Projects\xEdit-4.1.x\Core\wbImplementation.pas, line 21371)>
<Warning: could not sort INFO for ["GRUP Topic Children of DialogueGenericHello "DialogueGenericHello" [DIAL:000142B5]" in "[00] Skyrim.esm"] because of previous error>
@ElminsterAU
Copy link
Collaborator

The "Referenced By" tab is a red herring. This happens also when you directly navigate to 02008774 using the FormID search field.
It does not happen when you first go to 02003CFF and then to 02008774 (like when you normally open the nodes in the tree view to navigate to the record.

@ElminsterAU
Copy link
Collaborator

It's caused by an unexpected re-entry into the DIAL children group sorting code. During that code, it was possible for the main message loop to get pumped, which could then result in the processing of a WM_PAINT message, which accessed data that required the group to be sorted, which triggered a sorting (despite that already being in progress). Solution is to prevent processing of the message queue during the execution of the non-reentrant sorting code.

@ElminsterAU
Copy link
Collaborator

should be fixed with commit referenced above (will be in 4.1.3h)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants