[Butia-devel-list] The layer problem

Walter Bender walter.bender en gmail.com
Mar Mar 20 19:15:35 UYT 2012


I would like to get to the root cause instead of masking the problem.
It does not happen on Sugar in the emulator. I will try to reproduce
it on an XO.

-walter

On Tue, Mar 20, 2012 at 5:51 PM, Alan Jhonn Aguiar Schwyn
<alanjas en hotmail.com> wrote:
>
> I make some test..
>
> I make a for to get the complete list of sprites..
>
>     def set_layer(self, layer=None):
>         ''' Set the layer for a sprite '''
>         self._sprites.remove_from_list(self)
>         if layer is not None:
>             self.layer = layer
>
>         # print all sprites list
>         print 'list:'
>         for i in range(self._sprites.length_of_list()):
>             a = self._sprites.get_sprite(i)
>             print 'sprite', a
>
>         for i in range(self._sprites.length_of_list()):
>             a = self._sprites.get_sprite(i)
>             if layer < a.layer:
>                 self._sprites.insert_in_list(self, i)
>                 self.inval()
>                 return
>         self._sprites.append_to_list(self)
>         self.inval()
>
> With this, I corroborate that in a few cases, the list have None sprites:
>
> list:
> sprite <TurtleArt.sprites.Sprite instance at 0x91d586c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98d4fec>
> sprite <TurtleArt.sprites.Sprite instance at 0x98d8a2c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98d8ccc>
> sprite <TurtleArt.sprites.Sprite instance at 0x98da14c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98da54c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98da9ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x98dadac>
> sprite <TurtleArt.sprites.Sprite instance at 0x98de22c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98de5ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x98de9ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x98dee2c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d2e2ac>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d2e66c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d2ea2c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d2ee2c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d3228c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d326ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d32aac>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d5d4c>
> sprite <TurtleArt.sprites.Sprite instance at 0x98cc1ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x98cc52c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d274c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d2acc>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d2e6c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d524c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d562c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d5a8c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0cf0ac>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0cf46c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0cf82c>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0cfbec>
> sprite <TurtleArt.sprites.Sprite instance at 0xa0d52ac>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d5542c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d5578c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d55b2c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d55f8c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d583ac>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d587ec>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d58bcc>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d58fcc>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d5b44c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d5b84c>
> sprite <TurtleArt.sprites.Sprite instance at 0x9d5bcac>
> sprite None
> sprite None
> sprite None
> sprite None
> sprite None
> list:
> sprite <TurtleArt.sprites.Sprite instance at 0x91d586c>
> ....
>
> Attach the part of the logs...
>
> For solve the problem, attach a patch that only check for the None sprites..
>
> The question is: why are None sprites in that list?
>
> Who insert the sprites in the list?
>
> Regards!
>
> Alan
>
>> Date: Tue, 20 Mar 2012 07:11:50 -0400
>> Subject: Re: The layer problem
>> From: walter.bender en gmail.com
>> To: alanjas en hotmail.com
>> CC: butia-devel-l en fing.edu.uy
>
>>
>> On Mon, Mar 19, 2012 at 11:27 PM, Alan Jhonn Aguiar Schwyn
>> <alanjas en hotmail.com> wrote:
>> >
>> > Hi,
>> >
>> > This problem.. you can reproduce it?
>>
>> I'll try again.
>>
>> -walter
>>
>> >
>> > Traceback (most recent call last):
>> >   File "/usr/lib/python2.7/threading.py", line 530, in __bootstrap_inner
>> >     self.run()
>> >   File "/usr/lib/python2.7/threading.py", line 734, in run
>> >     self.function(*self.args, **self.kwargs)
>> >   File
>> > "/home/olpc/Activities/TurtleBots.activity/plugins/butia/butia.py",
>> > line 674, in bobot_poll
>> >     self.check_for_device_change()
>> >   File
>> > "/home/olpc/Activities/TurtleBots.activity/plugins/butia/butia.py",
>> > line 482, in check_for_device_change
>> >     self.change_butia_palette_colors()
>> >   File
>> > "/home/olpc/Activities/TurtleBots.activity/plugins/butia/butia.py",
>> > line 462, in change_butia_palette_colors
>> >     self.tw.show_toolbar_palette(palette_name_to_index('butia'),
>> > regenerate=True, show=False)
>> >   File
>> > "/home/olpc/Activities/TurtleBots.activity/TurtleArt/tawindow.py",
>> > line 753, in show_toolbar_palette
>> >     self._create_proto_blocks(n)
>> >   File
>> > "/home/olpc/Activities/TurtleBots.activity/TurtleArt/tawindow.py",
>> > line 874, in _create_proto_blocks
>> >     self.palettes[n][-1].spr.set_layer(PROTO_LAYER)
>> >   File "/home/olpc/Activities/TurtleBots.activity/TurtleArt/sprites.py",
>> > line 258, in set_layer
>> >     if layer < self._sprites.get_sprite(i).layer:
>> > AttributeError: 'NoneType' object has no attribute 'layer'
>> >
>> > I have it in new sugar (0.94.1).. in the old LATU's image (0.88.1) no...
>> >
>> > The latest build.. http://www.fing.edu.uy/~aaguiar/files/TurtleBots-7.xo
>> >
>> > Regards!
>> >
>> > Alan
>>
>>
>>
>> --
>> Walter Bender
>> Sugar Labs
>> http://www.sugarlabs.org



-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org



Más información sobre la lista de distribución Butia-devel-l