2025/12/20 1:44、Jean-Marc Lasgouttes <[email protected]>のメール:
It would be interesting to see what theBufferList().isLoaded(buf) and theBufferList().isInternal(buf) return in the helper destructor. The question is to know how it is possible to detect that the buffer has been destroyed.

After evaluation of the “for” sentence in ~UndoGroupHelper() (line 716), we have:
d->buffers_ has 1 item
buf has an address
theBufferList() has an address
-> binternal 0items
-> bstore 0items
theBufferList().isLoaded(buf) <no such value>
theBufferList().isInternal(buf) <no such value>

Do you see some backtrace leading to the destructors.

I attach them to this mail.

JMarc

Koji

1   lyx::UndoGroupHelper::~UndoGroupHelper()                                    
                     Undo.cpp                                                   
                            718  0x1027077d4 
2   lyx::frontend::GuiApplication::dispatch(lyx::FuncRequest const&)            
                     GuiApplication.cpp                                         
                            1596 0x102945b6c 
3   lyx::frontend::Action::action()                                             
                     Action.cpp                                                 
                            87   0x102919d90 
4   lyx::frontend::Action::qt_static_metacall(QObject *, QMetaObject::Call, 
int, void * *)           moc_Action.cpp                                         
                                79   0x102919d78 
5   void doActivate<false>(QObject *, int, void * *)                            
                     qobject.cpp                                                
                            4269 0x1055f33e4 
6   void QMetaObject::activate<void, bool>(QObject *, QMetaObject const *, int, 
void *, bool const&) qobjectdefs.h                                              
                            319  0x103b5b544 
7   QAction::triggered(bool)                                                    
                     moc_qaction.cpp                                            
                            374  0x103b5b528 
8   QAction::activate(QAction::ActionEvent)                                     
                     qaction.cpp                                                
                                 0x103b5b528 
9   QObject::event(QEvent *)                                                    
                     qobject.cpp                                                
                            1413 0x1055ead98 
10  QApplicationPrivate::notify_helper(QObject *, QEvent *)                     
                     qapplication.cpp                                           
                            3305 0x10438c014 
11  QApplication::notify(QObject *, QEvent *)                                   
                     qapplication.cpp                                           
                            3255 0x10438d06c 
12  lyx::frontend::GuiApplication::notify(QObject *, QEvent *)                  
                     GuiApplication.cpp                                         
                            3046 0x10294ee28 
13  QCoreApplication::notifyInternal2(QObject *, QEvent *)                      
                     qcoreapplication.cpp                                       
                            1109 0x1055a0e78 
14  QCoreApplication::sendEvent(QObject *, QEvent *)                            
                     qcoreapplication.cpp                                       
                            1549 0x1055a0dfc 
15  QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *)    
                     qcoreapplication.cpp                                       
                            1904 0x1055a1648 
16  QCocoaEventDispatcherPrivate::processPostedEvents()                         
                     qcocoaeventdispatcher.mm                                   
                            871  0x1053e31f8 
17  QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void *)            
                     qcocoaeventdispatcher.mm                                   
                            893  0x1053e4498 
18  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__                  
                     (arm64e) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation   
   0x19871c9f8 
19  __CFRunLoopDoSource0                                                        
                     (arm64e) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation   
   0x19871c98c 
20  __CFRunLoopDoSources0                                                       
                     (arm64e) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation   
   0x19871c6f8 
... 
1   lyx::Buffer::~Buffer()                                                    
Buffer.cpp           517  0x10440172c 
2   lyx::BufferList::release(lyx::Buffer *)                                   
BufferList.cpp       97   0x10442f3b0 
3   lyx::frontend::GuiView::closeBuffer(lyx::Buffer&)                         
GuiView.cpp          3935 0x104a175b4 
4   lyx::frontend::GuiView::closeWorkArea(lyx::frontend::GuiWorkArea *, bool) 
GuiView.cpp          3866 0x104a16778 
5   lyx::frontend::GuiView::closeTabWorkArea(lyx::frontend::TabWorkArea *)    
GuiView.cpp          3961 0x104a17274 
6   lyx::frontend::GuiView::closeWorkAreaAll()                                
GuiView.cpp          3844 0x104a084f4 
7   lyx::frontend::GuiView::closeEvent(QCloseEvent *)                         
GuiView.cpp          1438 0x104a0820c 
8   QWidget::event(QEvent *)                                                  
qwidget.cpp               0x1062c2cf0 
9   QMainWindow::event(QEvent *)                                              
qmainwindow.cpp      1269 0x1063e7b64 
10  QApplicationPrivate::notify_helper(QObject *, QEvent *)                   
qapplication.cpp     3305 0x106274014 
11  QApplication::notify(QObject *, QEvent *)                                 
qapplication.cpp          0x106275a74 
12  lyx::frontend::GuiApplication::notify(QObject *, QEvent *)                
GuiApplication.cpp   3046 0x104856e28 
13  QCoreApplication::notifyInternal2(QObject *, QEvent *)                    
qcoreapplication.cpp 1109 0x107488e78 
14  QCoreApplication::sendEvent(QObject *, QEvent *)                          
qcoreapplication.cpp 1549 0x107488dfc 
15  QWidgetPrivate::handleClose(QWidgetPrivate::CloseMode)                    
qwidget.cpp          8595 0x1062c2a8c 
16  QWidgetWindow::closeEvent(QCloseEvent *)                                  
qwidgetwindow.cpp    890  0x1062dbb98 
17  QWindow::event(QEvent *)                                                  
qwindow.cpp          2724 0x10573433c 
18  QApplicationPrivate::notify_helper(QObject *, QEvent *)                   
qapplication.cpp     3305 0x106274014 
19  QApplication::notify(QObject *, QEvent *)                                 
qapplication.cpp     3255 0x10627506c 
20  lyx::frontend::GuiApplication::notify(QObject *, QEvent *)                
GuiApplication.cpp   3046 0x104856e28 
... 
-- 
lyx-devel mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to