Removed a couple stupid cursor-related bugs
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9403 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -156,16 +156,21 @@ void CursorManager::DeleteCursor(int32 token)
|
|||||||
void CursorManager::RemoveAppCursors(team_id team)
|
void CursorManager::RemoveAppCursors(team_id team)
|
||||||
{
|
{
|
||||||
Lock();
|
Lock();
|
||||||
|
|
||||||
ServerCursor *temp;
|
int32 i=0;
|
||||||
for(int32 i=0; i<fCursorList->CountItems();i++)
|
ServerCursor *temp=(ServerCursor*)fCursorList->ItemAt(i);
|
||||||
|
while(temp)
|
||||||
{
|
{
|
||||||
temp=(ServerCursor*)fCursorList->ItemAt(i);
|
|
||||||
if(temp && temp->OwningTeam()==team)
|
if(temp && temp->OwningTeam()==team)
|
||||||
{
|
{
|
||||||
fCursorList->RemoveItem(i);
|
fCursorList->RemoveItem(i);
|
||||||
delete temp;
|
delete temp;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
temp=(ServerCursor*)fCursorList->ItemAt(i);
|
||||||
}
|
}
|
||||||
Unlock();
|
Unlock();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,9 +153,11 @@ ServerApp::~ServerApp(void)
|
|||||||
|
|
||||||
delete fMsgSender;
|
delete fMsgSender;
|
||||||
fMsgSender=NULL;
|
fMsgSender=NULL;
|
||||||
|
|
||||||
if(fAppCursor)
|
// This shouldn't be necessary -- all cursors owned by the app
|
||||||
delete fAppCursor;
|
// should be cleaned up by RemoveAppCursors
|
||||||
|
// if(fAppCursor)
|
||||||
|
// delete fAppCursor;
|
||||||
|
|
||||||
cursormanager->RemoveAppCursors(fClientTeamID);
|
cursormanager->RemoveAppCursors(fClientTeamID);
|
||||||
delete_sem(fLockSem);
|
delete_sem(fLockSem);
|
||||||
|
|||||||
Reference in New Issue
Block a user