-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/102097/
-----------------------------------------------------------

Review request for Calligra and Casper Boemann.


Summary
-------

Attached patch fixes the case that in KoTextLayoutArea.cpp we could end in an 
infinite loop by trying to restart layouting the same line from text-position 0 
again and again if at position 0 we had a soft-page-break and if the line 
itself had a textLength of zero (means the soft-page-break was the only 
character at the line).

The problem is that in the previous code we did;

    line = layout->createLine();
    cursor->lineTextStart = line.isValid() ? line.textStart() : 0;
    if (softBreak) {
        return false;
    }

what resulted in us trying to continue layouting the same line with 
soft-page-break again and again from position 0 The patch changes that to

    line = layout->createLine();
    if (!line.isValid()) {
        break;
    }
    cursor->lineTextStart = line.textStart();
    if (softBreak) {
        return false;
    }

Now the question is if it#s ave to assume that if we cannot create one more 
line then we are done? Is that true or would it be better to add a condition 
somewhere that checks if cursor->lineTextStart < line.textStart() + 
line.textLength() (e.g. in restartLayout)?


Diffs
-----

  libs/textlayout/KoTextLayoutArea.cpp 05bf300 

Diff: http://git.reviewboard.kde.org/r/102097/diff


Testing
-------


Thanks,

Sebastian

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to