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

List:       koffice-devel
Subject:    A bug in kspread's dependency tracking.
From:       Tadeusz Andrzej Kadlubowski <yess () hell ! org ! pl>
Date:       2007-09-23 8:02:13
Message-ID: 06D49584-D965-4241-876C-240885C6CC32 () hell ! org ! pl
[Download RAW message or body]

Hello.

For the past two or three days I've been working on a bug in trunk  
kspread. Here's how to reproduce it:

Create an empty spreadsheet. Make a circular dependency A1=A1. Select  
A1 Cell and remove it's content. Select any other cell. The  
RecalcManager::Private::cellsToCalculate() will get into infinite  
recursion on RecalcManager.cpp:164.

The reason it does so is because DependencyManager fails to do its  
job just a moment before. I have tracked this bug to  
DependencyManager::Private::removeDependencies() in  
DependencyManager.cpp:442.

consumers[sheet]->remove( range, cell );

fails silently because range is a QRect(QPoint(1,1), QPoint(1,1))  
whereas consumers[sheet] RTree has a key that is QRectF(QPointF(1,1),  
QPointF(1.8,1.8)).

At this moment I ask for your advice, as I don't understand how RTree  
works.

Best regards,
-- 
tadeusz andrzej kadłubowski
_______________________________________________
koffice-devel mailing list
koffice-devel@kde.org
https://mail.kde.org/mailman/listinfo/koffice-devel

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

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