MantisBT - Community
View Issue Details
0029884Community[OCCT] OCCT:Application Frameworkpublic2018-06-20 10:562019-07-10 09:01
Vico Liang 
[OCCT] 7.5.0* 
0029884: Calling sequence of BeforeUndo() and AfterUndo() unpredictable
Undo/redo delta sequence is base on label tree hierarchy. Base on this assumption, attributes may be designed with dependency with each other. The predict behavior is that BeforeUndo() and AfterUndo() will be called in the label tree hierarchy order. Actually, the order is unpredictable. The reason is TDF_Data::FixOrder() adjusted the delta order to fix another bug 0029142. It seems ugly and unnatural with such order fix.

No tags attached.
related to 0029142closed bugmaster Open CASCADE Exception on Redo 
Issue History
2018-06-20 10:56Vico LiangNew Issue
2018-06-20 10:56Vico LiangAssigned To => mpv
2018-06-20 11:07Vico LiangNote Added: 0076842
2018-06-20 11:08Vico LiangRelationship addedrelated to 0029142
2018-06-20 11:10Vico LiangNote Deleted: 0076842
2018-06-20 11:14Vico LiangNote Added: 0076843
2018-06-20 11:15Vico LiangNote Edited: 0076843bug_revision_view_page.php?bugnote_id=76843#r19316
2019-07-10 09:01abvTarget Version7.4.0 => 7.5.0*

Vico Liang   
2018-06-20 11:14   
(edited on: 2018-06-20 11:15)
My use case looks like this, the application is base on TObj package, TObj_TObject rely on AfterUndo() to recover object from death and My_AISPresentation rely on BeforeUndo() and AfterUndo() to do presentation update. My_AISPresentation is designed to depend on TObj_TObject. It will crash during presentation updating on undo/redo because AfterUndo() of TObj_TObject is not called before My_AISPresentation.