[Sugar-devel] [PATCH] _update_signal_match wasn't initialized
Raul Gutierrez Segales
rgs at rieder.net.py
Tue Apr 27 09:43:21 EDT 2010
James,
On Tue, 2010-04-27 at 11:25 +1000, James Cameron wrote:
> On Mon, Apr 26, 2010 at 03:50:17PM -0400, Raul Gutierrez Segales wrote:
> > Because of missing initialization and a weak test for the existence of
> > the object (self._update_signal_match is not None) Turtle Art was
> > crashing when resuming from the Journal.
>
> Reviewed, but I didn't understand. This might be my fault.
>
> Your patch appears to be to sugar-toolkit.
>
Correct.
> self._update_signal_match is only used in DSObject, it is already
> initialised in sugar-toolkit 0.84.9, and you're adding the
> initialisation to DSMetadata, where it is not used.
>
Sorry, this was done on the run.. Because we were spinning new builds.
Looking at it with more detail, the problem is that
self._update_signal_match is initialized in the wrong order (after a
call to set_object_id that depends on it).
diff --git a/src/sugar/datastore/datastore.py
b/src/sugar/datastore/datastore.py
index 6ff10de..7aa4d15 100644
--- a/src/sugar/datastore/datastore.py
+++ b/src/sugar/datastore/datastore.py
@@ -109,12 +109,12 @@ class DSMetadata(gobject.GObject):
class DSObject(object):
def __init__(self, object_id, metadata=None, file_path=None):
+ self._update_signal_match = None
self.set_object_id(object_id)
self._metadata = metadata
self._file_path = file_path
self._destroyed = False
self._owns_file = False
- self._update_signal_match = None
def get_object_id(self):
return self._object_id
More information about the Sugar-devel
mailing list