From 131c791f15992ecaf6960ba8d90e0e106468fa5e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 03 Sep 2007 14:28:45 +0000 Subject: Merge branch 'master' of git+ssh://dev.laptop.org/git/web-activity Conflicts: NEWS --- diff --git a/NEWS b/NEWS index 3db5efa..e309a06 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ * #2327 Unescape the URI to display it in the address bar (marco) +* fixed memory consuption when creating shared links + by calling the garbage collector (erikos) 45 diff --git a/linkbutton.py b/linkbutton.py index 5716812..8b2e478 100644 --- a/linkbutton.py +++ b/linkbutton.py @@ -21,6 +21,7 @@ import gobject from gettext import gettext as _ import rsvg import re +import gc from sugar.graphics.palette import Palette from sugar.graphics.tray import TrayButton @@ -67,6 +68,9 @@ class LinkButton(TrayButton, gobject.GObject): img.set_from_pixbuf(pixbuf_bg) self.set_icon_widget(img) img.show() + del pixbuf + del pixbuf_bg + gc.collect() def _read_link_background(self, filename, fill_color, stroke_color): icon_file = open(filename, 'r') diff --git a/messenger.py b/messenger.py index 37976fc..35bbc21 100644 --- a/messenger.py +++ b/messenger.py @@ -61,12 +61,12 @@ class Messenger(ExportedGObject): IFACE, path=PATH, sender_keyword='sender', byte_arrays=True) + self.bus_name = self.tube.get_unique_name() if self.is_initiator: _logger.debug('Initialising a new shared browser, I am %s .' %self.tube.get_unique_name()) else: # sync with other members - self.bus_name = self.tube.get_unique_name() _logger.debug('Joined I am %s .'%self.bus_name) for member in self.members: if member != self.bus_name: @@ -78,7 +78,7 @@ class Messenger(ExportedGObject): self.entered = True - def reply_sync(self, a_ids): + def reply_sync(self, a_ids, sender): a_ids.pop() for link in self.model.data['shared_links']: if link['hash'] not in a_ids: @@ -90,7 +90,7 @@ class Messenger(ExportedGObject): def error_sync(self, e, when): _logger.error('Error %s: %s'%(when, e)) - @dbus.service.method(dbus_interface=IFACE, in_signature='as', out_signature='as', sender_keyword='sender') + @dbus.service.method(dbus_interface=IFACE, in_signature='as', out_signature='ass', sender_keyword='sender') def sync_with_members(self, b_ids, sender=None): '''Sync with members ''' b_ids.pop() @@ -103,7 +103,7 @@ class Messenger(ExportedGObject): a_ids = self.model.get_links_ids() a_ids.append('') # links I want from the caller - return a_ids + return (a_ids, self.bus_name) @dbus.service.method(dbus_interface=IFACE, in_signature='ssssss', out_signature='') def send_link(self, id, url, title, color, owner, buffer): diff --git a/model.py b/model.py index 1ee85f8..4ffe5b7 100644 --- a/model.py +++ b/model.py @@ -49,7 +49,6 @@ class Model(gobject.GObject): self.data['shared_links'][index]['thumb'] = '' def serialize(self): - print self.data return json.write(self.data) def deserialize(self, data): diff --git a/webactivity.py b/webactivity.py index 9f5a848..8222a8a 100755 --- a/webactivity.py +++ b/webactivity.py @@ -280,10 +280,8 @@ class WebActivity(activity.Activity): self._add_link_totray(link['url'], base64.b64decode(link['thumb']), link['color'], link['title'], link['owner'], i) - i+=1 - - if self.model.data['history'] is not '': - self._browser.set_session(self.model.data['history']) + i+=1 + self._browser.set_session(self.model.data['history']) else: self._browser.load_uri(file_path) _sugarext.set_prgname(self.sname) -- cgit v0.9.1