Author: titmuss
Date: Fri Jan 18 06:13:23 2008
New Revision: 1498

URL: http://svn.slimdevices.com?rev=1498&root=Jive&view=rev
Log:
Bug: N/A
Description:
Fix freeing players on timeout.


Modified:
    trunk/jive/src/pkg/jive/share/jive/slim/Player.lua
    trunk/jive/src/pkg/jive/share/jive/slim/SlimServer.lua

Modified: trunk/jive/src/pkg/jive/share/jive/slim/Player.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/jive/slim/Player.lua?rev=1498&root=Jive&r1=1497&r2=1498&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/jive/slim/Player.lua (original)
+++ trunk/jive/src/pkg/jive/share/jive/slim/Player.lua Fri Jan 18 06:13:23 2008
@@ -219,6 +219,7 @@
        players[obj.id] = obj
 
        -- notify of new player
+       log:info(obj, " new for ", obj.slimServer)
        jnt:notify('playerNew', obj)
 
        return obj
@@ -244,11 +245,13 @@
        if self.slimServer ~= slimServer then
                -- delete from old server
                if self.slimServer then
+                       log:info(self, " delete for ", self.slimServer)
                        self.jnt:notify('playerDelete', self)
                end
 
                -- add to new server
                self.slimServer = slimServer
+               log:info(self, " new for ", self.slimServer)
                self.jnt:notify('playerNew', self)
        end
        
@@ -322,18 +325,25 @@
 
 --[[
 
-=head2 jive.slim.Player:free()
-
-Deletes the player.
-
-=cut
---]]
-function free(self)
+=head2 jive.slim.Player:free(slimServer)
+
+Deletes the player, if connect to the given slimServer
+
+=cut
+--]]
+function free(self, slimServer)
+       _assert(slimServer)
+
+       if self.slimServer ~= slimServer then
+               -- ignore, we are not connected to this server
+               return
+       end
+
+       log:info(self, " delete for ", self.slimServer)
        self.jnt:notify('playerDelete', self)
        self:offStage()
 
-       -- FIXME we can't free players, maybe used by other servers
-       -- players[self.id] = nil
+       players[self.id] = nil
 end
 
 

Modified: trunk/jive/src/pkg/jive/share/jive/slim/SlimServer.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/jive/slim/SlimServer.lua?rev=1498&root=Jive&r1=1497&r2=1498&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/jive/slim/SlimServer.lua (original)
+++ trunk/jive/src/pkg/jive/share/jive/slim/SlimServer.lua Fri Jan 18 06:13:23 
2008
@@ -159,7 +159,7 @@
        for k,v in pairs(selfPlayers) do
                player = self.players[k]
                -- wave player bye bye
-               player:free()
+               player:free(self)
                self.players[k] = nil
        end
        
@@ -265,7 +265,7 @@
 
        -- delete players
        for id, player in pairs(self.players) do
-               player:free()
+               player:free(self)
        end
        self.players = nil
 

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to