Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-09-03 14:28:45 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-09-03 14:28:45 (GMT)
commit131c791f15992ecaf6960ba8d90e0e106468fa5e (patch)
tree9fa6fff8ac64b8e8e10b258b677a0730e06bb7a6
parente8549d91315dc9dbdc84c750d39bcc4a477c893e (diff)
parent9645f7ca8930c7822e3c3a9df264337adb459251 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/web-activity
Conflicts: NEWS
-rw-r--r--NEWS2
-rw-r--r--linkbutton.py4
-rw-r--r--messenger.py8
-rw-r--r--model.py1
-rwxr-xr-xwebactivity.py6
5 files changed, 12 insertions, 9 deletions
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)