Review Request 113289: Fix logviewer crash with multiple conversations per date

Dan Vrátil dvratil at redhat.com
Thu Oct 17 08:35:55 UTC 2013


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


If parent index is a date, then internalId() contains index of the parent row.
If parent index is a conversation (leaf node), then internalId is pointer to parent Date struct.

This means that parent.internalId() >= 0 is true in both cases above, so restricting the upper boundary for dates makes sense. The code relies on a very bold assertion, that there will never be enough dates in one group for the number to reach a value of a pointer, and that system will never allocate pointer on address low enough to intersect with the dates. 

I admit that I was very stupid and lazy when writing this code and I don't deserve a sweet after lunch today.


A proper approach would probably be to have a Node class, and Date and Account subclasses of Node, so that we could only use pointers in QModelIndex::internalPointer and thus avoid the craziness above. 
Leon, are you willing to take a look into properly fixing the model? Otherwise ship this, and I'll rewrite the model tomorrow over the weekend.

- Dan Vrátil


On Oct. 17, 2013, 1:55 a.m., Leon Handreke wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/113289/
> -----------------------------------------------------------
> 
> (Updated Oct. 17, 2013, 1:55 a.m.)
> 
> 
> Review request for Telepathy and Dan Vrátil.
> 
> 
> Bugs: 325957
>     http://bugs.kde.org/show_bug.cgi?id=325957
> 
> 
> Repository: ktp-text-ui
> 
> 
> Description
> -------
> 
> Fix logviewer crash with multiple conversations per date
> 
> This situation commonly occurs when conversations from multiple accounts
> were held on a single day.
> 
> 
> Diffs
> -----
> 
>   logviewer/dates-model.cpp 93f4814149094a84d9a822e6618599fe70df3b55 
> 
> Diff: http://git.reviewboard.kde.org/r/113289/diff/
> 
> 
> Testing
> -------
> 
> Test scenario described in the bug.
> 
> 
> Thanks,
> 
> Leon Handreke
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20131017/d975351a/attachment.html>


More information about the KDE-Telepathy mailing list