[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lyx-devel
Subject:    Re: LyX crash after font assert
From:       Tommaso Cucinotta <tommaso () lyx ! org>
Date:       2012-06-07 22:15:36
Message-ID: 4FD12808.8030005 () lyx ! org
[Download RAW message or body]

On 04/06/12 18:22, Richard Heck wrote:
> The problem turns out to be that the paragraph we are redrawing here 
> references a non-existent Layout. This is because the copy_params() 
> routine in FindAndReplace.cpp, although it MAKES a new DocumentClass, 
> it never APPLIES this new DocumentClass to its Buffer. So the 
> paragraphs in that Buffer still refer to the Layouts in the OLD 
> DocumentClass. Which, in the new code, gets garbage collected.

Ops, nice catch! Sorry, for me this document class mangling is quite 
obscure magic, I just copied some bits from here and there, and when it 
seemed to work, I never touched it again :-).

> I'll sort this out. I've attached a patch that seems to work, but 
> something more elegant is probably needed.

At least, it doesn't crash now. Though, I have to check how it behaves 
when searching in documents with custom languages (from a quick check it 
seems ok).

Do u mind explaining what does this code do ?

+void BufferView::makeDocumentClass()
+{
+       DocumentClassConstPtr olddc = buffer_.params().documentClassPtr();
+       buffer_.params().makeDocumentClass();
+       updateDocumentClass(olddc);
+}

(can be useful to put in BufferView.h)

Thanks,

     T.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic