Update of /cvsroot/libufo/ufo-0.5/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15773/src
Modified Files:
uabstractdisplay.cpp
Log Message:
Fixed handling of volatile data. Removed referencing.
Index: uabstractdisplay.cpp
===================================================================
RCS file: /cvsroot/libufo/ufo-0.5/src/uabstractdisplay.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** uabstractdisplay.cpp 18 Aug 2005 18:05:20 -0000 1.16
--- uabstractdisplay.cpp 18 Oct 2005 15:56:00 -0000 1.17
***************
*** 68,77 ****
setDefault(NULL);
}
- // unreference volatile data
- for(std::list<UVolatileData*>::iterator iter = m_volatileData.begin();
- iter != m_volatileData.end();
- ++iter) {
- (*iter)->unreference();
- }
}
--- 68,71 ----
***************
*** 92,97 ****
m_volatileData.end()) {
m_volatileData.push_back(vdata);
- // references the volatile data
- vdata->reference();
}
}
--- 86,89 ----
***************
*** 104,108 ****
if (iter != m_volatileData.end()) {
m_volatileData.erase(iter);
- vdata->unreference();
}
}
--- 96,99 ----
***************
*** 287,302 ****
case UEvent::Refresh: {
// refresh volatile data and remove unused data
! for(std::list<UVolatileData*>::iterator next_iter, iter = m_volatileData.begin();
! iter != m_volatileData.end();
! iter = next_iter) {
! next_iter = iter;
! ++next_iter;
! if ((*iter)->getReferenceCount() == 1) {
! // this object is ready for deletion
! (*iter)->unreference();
! m_volatileData.erase(iter);
! } else {
! (*iter)->refresh();
! }
}
// refresh contexts
--- 278,287 ----
case UEvent::Refresh: {
// refresh volatile data and remove unused data
! std::list<UVolatileData*>::iterator iter = m_volatileData.begin();
! std::list<UVolatileData*>::iterator next_iter;
! while (iter != m_volatileData.end()) {
! next_iter = ++iter;
! (*iter)->refresh();
! iter = next_iter;
}
// refresh contexts
|