On 09/08/2009 20:50, Vincent van Ravesteijn wrote:
Abdelrazak Younes schreef:
On 09/08/2009 20:48, Vincent van Ravesteijn wrote:
Abdelrazak Younes schreef:
Hi,
There used to be a recursive call to setBuffer() at the top of
Buffer::updateLabels(); is there a reason why this has been
removed? Now we get crashes with a lot of LFUNs because of the
buffer absence. Try LFUN_PARAGRAPH_MOVE_UP for example...
Abdel.
The reason is that we decided that it shouldn't be there.
And the reason why you decided this?
:-)
Abdel.
The reason was that we couldn't think of a valid reason that it should
be there.
:-)
OK, then now you have one: safety. There are a lot of cases where insets
are copied, LFUN_PARAGRAPH_MOVE_UP being one:
swap(pars_[pit], pars_[pit - 1]);
AYCS, there are two Paragraph copy operations here. OK, in this case I
agree we should not do a copy here but really swap the paragraphs at
'pit' and 'pit-1'.
So we have two solutions:
1) set the Buffer again for pars_[pit] and pars_[pit - 1] and do this
for all operation that involves a Paragraph or an Inset copy.
2) set the buffer for all paragraphs and insets in updateLabel() as this
is guaranted to be be called each time each time a new Paragraph or a
new inset is created or removed.
I agree 1) is the most efficient CPU wise but do we really care?
Abdel.