Abdelrazak Younes <[EMAIL PROTECTED]> writes:

| Lars Gullik Bjønnes wrote:
| 
| > // Close the socket and remove the address of the filesystem.
| > 75: LyXServerSocket::~LyXServerSocket()
| > 76: {
| > 77:        if (fd_ != -1) {
| > 78:                 theApp->unregisterSocketCallback(fd_);
| > 79:                if (::close(fd_) != 0)
| > 80:                        lyxerr << "lyx: Server socket " << fd_
| > 81:                               << " IO error on closing: " << 
strerror(errno);
| > 82:        }
| > 83:        lyx::support::unlink(address_);
| > 84:        lyxerr[Debug::LYXSERVER] << "lyx: Server socket quitting" << 
endl;
| > 85: }
| > It seems that theApp has already been destroyed or something.
| 
| Indeed, I forgot to transfer the destruction of lyx_server_ and
| lyx_socket_ when I transferred them from Application. I am going to
| commit this patch which should solve your crash.
| 
| Abdel.
| Index: lyx_main.C
| ===================================================================
| --- lyx_main.C        (revision 15390)
| +++ lyx_main.C        (working copy)
| @@ -384,6 +384,9 @@
|                       lyx::from_utf8(package().temp_dir()));
|               Alert::warning(_("Unable to remove temporary directory"), msg);
|       }
| +
| +     pimpl_->lyx_server_.reset();
| +     pimpl_->lyx_server_.reset();

Why resetting twice?

|  }
|  
|  
| @@ -855,8 +858,11 @@
|       // a crash
|  
|       pimpl_->buffer_list_.emergencyWriteAll();
| -     if (lyx::use_gui)
| +     if (lyx::use_gui) {
|               pimpl_->lyx_server_->emergencyCleanup();
| +             pimpl_->lyx_server_.reset();
| +             pimpl_->lyx_server_.reset();
| +     }

ditto

-- 
        Lgb

Reply via email to