From: Joao P. <joa...@ya...> - 2003-02-15 07:27:11
|
Hi, Is ListStore#each leaking memory ? Thanks, Joao __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com |
From: Masao M. <mu...@hi...> - 2003-02-15 10:07:48
|
Hi, On Fri, 14 Feb 2003 23:27:11 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > Hi, > > Is ListStore#each leaking memory ? I'm not sure. Could you send here (small if possible)sample script? -- .:% Masao Mutoh<mu...@hi...> |
From: Java B. <can...@ya...> - 2003-02-15 14:10:56
|
Hi, > I'm not sure. > Could you send here (small if possible)sample > script? Here it is. What am I doing wrong ? :) Thanks, Joao ---bof--- require 'gtk2' include Gtk Gtk.init w = Window.new b = Button.new('Start') b.signal_connect('clicked') { ls = ListStore.new(String) Gtk.timeout_add(10) { (1..100).each { |j| (1..1000).each { |i| ls.append.set_value(0,'ah') ls.each { |a| } ls.remove(ls.get_iter("0")) } p "count: #{j}" GC.start } false } } w.add(b) w.show_all Gtk.main ---eof--- __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com |
From: Masahiro S. <s01...@sf...> - 2003-02-15 16:05:25
|
Hi, From: Java Brasil <can...@ya...> Subject: Re: [ruby-gnome2-devel-en] Is ListStore#each leaking memory ? Date: Sat, 15 Feb 2003 06:10:55 -0800 (PST) > > I'm not sure. > > Could you send here (small if possible)sample > > script? > > Here it is. What am I doing wrong ? :) This problem is caused by inappropriate usage of G_RELATIVE. Following patch will fix the problem. -- Masahiro Sakai Index: src/rbgtktreemodel.c =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktreemodel.c,v retrieving revision 1.11 diff -u -r1.11 rbgtktreemodel.c --- src/rbgtktreemodel.c 19 Jan 2003 14:28:25 -0000 1.11 +++ src/rbgtktreemodel.c 15 Feb 2003 15:47:54 -0000 @@ -97,8 +97,7 @@ treemodel_foreach(self) VALUE self; { - VALUE func = rb_f_lambda(); - G_RELATIVE(self, func); + volatile VALUE func = rb_f_lambda(); gtk_tree_model_foreach(_SELF(self), (GtkTreeModelForeachFunc)treemodel_foreach_func, (gpointer)func); |
From: Masao M. <mu...@hi...> - 2003-02-15 16:12:06
|
Hi, On Sun, 16 Feb 2003 01:05:05 +0900 Masahiro Sakai <s01...@sf...> wrote: > Hi, > > From: Java Brasil <can...@ya...> > Subject: Re: [ruby-gnome2-devel-en] Is ListStore#each leaking memory ? > Date: Sat, 15 Feb 2003 06:10:55 -0800 (PST) > > > > I'm not sure. > > > Could you send here (small if possible)sample > > > script? > > > > Here it is. What am I doing wrong ? :) > > This problem is caused by inappropriate usage of G_RELATIVE. > Following patch will fix the problem. Thanks, please check it in CVS. -- .:% Masao Mutoh<mu...@hi...> |
From: Joao P. <joa...@ya...> - 2003-02-15 16:46:31
|
Hi, > > > > I'm not sure. > > > > Could you send here (small if possible)sample > > > > script? > > > > > > Here it is. What am I doing wrong ? :) > > > > This problem is caused by inappropriate usage of > G_RELATIVE. > > Following patch will fix the problem. Despite this fix it is still leaking memory, but it could be another problem. This is the code where the problem occurs: ---bof--- require 'gtk2' include Gtk module Gtk2_Tools class List < ScrolledWindow attr_reader :model, :column, :treeview def initialize(titulo="Data") super() @model = ListStore.new(String) @column = TreeViewColumn.new(titulo, CellRendererText.new, {:text => 0}) @treeview = TreeView.new(model) @treeview.append_column(column) @treeview.selection.set_mode(SELECTION_SINGLE) set_policy(POLICY_NEVER, POLICY_ALWAYS) add_with_viewport(@treeview) end def find(s) r = -1 #p @model.get_iter("0").methods.sort =begin (0..100000).each { |j| i = @model.get_iter("#{j}") break if i == nil if i.get_value(0) == s then r = j break end } =end #p @model.methods.sort @model.each { |a,b,c| if c.get_value(0) == s then r = b.to_s.to_i break end } r end def remove(s) #when this line is uncommented it stops the leaking #return r = true if s.class == String then i = find(s) if i != nil then r = @model.remove(@model.get_iter(i.to_s)) end else r = @model.remove(@model.get_iter(s.to_s)) end r end def append(s) #when this line is uncommented it stops the leaking #return @model.append.set_value(0,s) end def insert(i,s) @model.insert(i).set_value(0,s) end def get(i) @model.get_iter(i.to_s).get_value(0) end def clear @model.clear end end end ---eof--- Thanks, Joao __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com |
From: Masao M. <mu...@hi...> - 2003-02-16 16:19:49
|
Hi, On Sat, 15 Feb 2003 08:46:31 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > > Hi, > > > > > > I'm not sure. > > > > > Could you send here (small if possible)sample > > > > > script? > > > > > > > > Here it is. What am I doing wrong ? :) > > > > > > This problem is caused by inappropriate usage of > > G_RELATIVE. > > > Following patch will fix the problem. > > Despite this fix it is still leaking memory, but it > could be another problem. > > This is the code where the problem occurs: Could you re-send here your sample script which is executable? Because your sample was only a module and a class. I can use it, but I don't know how you used this class and how occured your problem. It is difficult for me to guess how you occured your problem. -- .:% Masao Mutoh<mu...@hi...> |
From: Joao P. <joa...@ya...> - 2003-02-16 16:49:16
|
Howdy, > Could you re-send here your sample script which is > executable? > > Because your sample was only a module and a class. > I can use it, but I don't know how you used this > class and > how occured your problem. > It is difficult for me to guess how you occured your > problem. https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en Sorry :-) Here it is. ---bof leak.rb--- require 'gtk2' require 'gtk2_tools' include Gtk Gtk.init w = Window.new(Window::TOPLEVEL) w.set_size_request(500,400) list = Gtk2_Tools::List.new('column1') Gtk.timeout_add(50) { (1..100).each { list.append('any_value') list.remove('any_value') } } w.add(list) w.show_all Gtk.main ---eof leak.rb--- ---bof gtk2_tools.rb--- require 'gtk2' include Gtk module Gtk2_Tools class List < ScrolledWindow attr_reader :model, :column, :treeview def initialize(titulo="Data") super() @model = ListStore.new(String) @column = TreeViewColumn.new(titulo, CellRendererText.new, {:text => 0}) @treeview = TreeView.new(model) @treeview.append_column(column) @treeview.selection.set_mode(SELECTION_SINGLE) set_policy(POLICY_NEVER, POLICY_ALWAYS) add_with_viewport(@treeview) end def find(s) r = -1 #p @model.get_iter("0").methods.sort =begin (0..100000).each { |j| i = @model.get_iter("#{j}") break if i == nil if i.get_value(0) == s then r = j break end } =end #p @model.methods.sort @model.each { |a,b,c| if c.get_value(0) == s then r = b.to_s.to_i break end } r end def remove(s) r = true if s.class == String then i = find(s) if i != nil then r = @model.remove(@model.get_iter(i.to_s)) end else r = @model.remove(@model.get_iter(s.to_s)) end r end def append(s) @model.append.set_value(0,s) end def insert(i,s) @model.insert(i).set_value(0,s) end def get(i) @model.get_iter(i.to_s).get_value(0) end def clear @model.clear end end end ---eof gtk2_tools.rb--- Thanks, Joao __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com |
From: Masao M. <mu...@hi...> - 2003-02-17 17:18:08
|
Hi, On Sun, 16 Feb 2003 08:49:15 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > > Howdy, > > > Could you re-send here your sample script which is > > executable? > > > > Because your sample was only a module and a class. > > I can use it, but I don't know how you used this > > class and > > how occured your problem. > > It is difficult for me to guess how you occured your > > problem. > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en > > Sorry :-) > Here it is. Thanks. I confirmed your problem. I try to fix it. -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2003-02-21 18:11:07
|
Hi, I tried your script. But I couldn't find leaking memory .... . You should call GC.start yourself. But I think it doesn't mean it causes leaking memory. On Sun, 16 Feb 2003 08:49:15 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > > Howdy, > > > Could you re-send here your sample script which is > > executable? > > > > Because your sample was only a module and a class. > > I can use it, but I don't know how you used this > > class and > > how occured your problem. > > It is difficult for me to guess how you occured your > > problem. > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en > > Sorry :-) > Here it is. > > ---bof leak.rb--- > require 'gtk2' > require 'gtk2_tools' > include Gtk > Gtk.init > w = Window.new(Window::TOPLEVEL) > w.set_size_request(500,400) > list = Gtk2_Tools::List.new('column1') > Gtk.timeout_add(50) { > (1..100).each { > list.append('any_value') > list.remove('any_value') > } GC.start #HERE! > } > w.add(list) > w.show_all > Gtk.main > ---eof leak.rb--- > > ---bof gtk2_tools.rb--- > require 'gtk2' > > include Gtk > > module Gtk2_Tools > class List < ScrolledWindow > attr_reader :model, :column, :treeview > def initialize(titulo="Data") > super() > @model = ListStore.new(String) > @column = TreeViewColumn.new(titulo, > CellRendererText.new, {:text => 0}) > @treeview = TreeView.new(model) > @treeview.append_column(column) > @treeview.selection.set_mode(SELECTION_SINGLE) > set_policy(POLICY_NEVER, POLICY_ALWAYS) > add_with_viewport(@treeview) > end > def find(s) > r = -1 > #p @model.get_iter("0").methods.sort > =begin > (0..100000).each { |j| > i = @model.get_iter("#{j}") > break if i == nil > if i.get_value(0) == s then > r = j > break > end > } > =end > #p @model.methods.sort > @model.each { |a,b,c| > if c.get_value(0) == s then > r = b.to_s.to_i > break > end > } > r > end > def remove(s) > r = true > if s.class == String then > i = find(s) > if i != nil then > r = @model.remove(@model.get_iter(i.to_s)) > end > else > r = @model.remove(@model.get_iter(s.to_s)) > end > r > end > def append(s) > @model.append.set_value(0,s) > end > def insert(i,s) > @model.insert(i).set_value(0,s) > end > def get(i) > @model.get_iter(i.to_s).get_value(0) > end > def clear > @model.clear > end > end > end > ---eof gtk2_tools.rb--- > > Thanks, > Joao > > __________________________________________________ > Do you Yahoo!? > Yahoo! Shopping - Send Flowers for Valentine's Day > http://shopping.yahoo.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en > -- .:% Masao Mutoh<mu...@hi...> |
From: Joao P. <joa...@ya...> - 2003-02-22 00:20:55
|
Hi, --- Masao Mutoh <mu...@hi...> wrote: > Hi, > > I tried your script. > But I couldn't find leaking memory .... . > > You should call GC.start yourself. > But I think it doesn't mean it causes leaking > memory. You are right. This time I did not test with GC.start. Sorry for the time you spent on this. I found this behaviour with the IRC client that I am slowly developing. Some channels are full with people, something like 200 to 500 persons per channel, and the program keeps increasing its memory usage. I will publish it on http://sourceforge.net/projects/irconnector/ as soon as I clean up a little bit more the source code and translate to english some portuguese words. Thanks for everything, Joao __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ |
From: Joao P. <joa...@ya...> - 2003-02-22 00:58:07
|
Hi, --- Joao Pedrosa <joa...@ya...> wrote: > > > Hi, > > --- Masao Mutoh <mu...@hi...> wrote: > > Hi, > > > > I tried your script. > > But I couldn't find leaking memory .... . > > > > You should call GC.start yourself. > > But I think it doesn't mean it causes leaking > > memory. > After testing with the following script it still increases its memory usage. I got the same on the IRC after adding calls to GC.start. Any ideas ? ---bof--- require 'gtk2' require 'gtk2_tools' include Gtk Gtk.init w = Window.new(Window::TOPLEVEL) w.set_size_request(500,400) list = Gtk2_Tools::List.new('column1') counter = 0 (1..10).each { |i| list.append("item#{i}") } Gtk.timeout_add(50) { (1..100).each { list.append('any_value') #list.find('any_value') list.remove('any_value') } counter += 1 if counter % 10 == 0 then p 'executing GC...' GC.start end true } w.add(list) w.show_all Gtk.main ---eof--- Thanks, Joao __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ |
From: Masao M. <mu...@hi...> - 2003-02-22 18:46:37
|
Hi, On Fri, 21 Feb 2003 16:58:06 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > > Hi, > > After testing with the following script it still > increases its memory usage. I got the same on the IRC > after adding calls to GC.start. > Any ideas ? Oops, it's sure. I'll try to fix it. -- .:% Masao Mutoh<mu...@hi...> |
From: Joao P. <joa...@ya...> - 2003-02-24 02:52:31
|
Hi, ListStore does not set value correctly for more than one column. The following script shows the problem. Regards, Joao ---beginning of script--- require 'gtk2' Gtk.init window = Gtk::Window.new scrolled_win = Gtk::ScrolledWindow.new scrolled_win.set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC) data = [ "hello", "world" ] model = Gtk::ListStore.new(String) column1 = Gtk::TreeViewColumn.new("Number", Gtk::CellRendererText.new, {:text => 0}) column2 = Gtk::TreeViewColumn.new("Data", Gtk::CellRendererText.new, {:text => 0}) treeview = Gtk::TreeView.new(model) treeview.append_column(column1) treeview.append_column(column2) treeview.selection.set_mode(Gtk::SELECTION_SINGLE) scrolled_win.add_with_viewport(treeview) n = 1 data.each do |v| iter = model.append iter.set_value(0, n.to_s) iter.set_value(1, v) n += 1 end window.add(scrolled_win) window.set_default_size(300, 300) window.show_all Gtk.main ---end of script--- __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ |
From: Masao M. <mu...@hi...> - 2003-02-24 16:52:52
|
Hi, On Sun, 23 Feb 2003 18:52:30 -0800 (PST) Joao Pedrosa <joa...@ya...> wrote: > Hi, > > ListStore does not set value correctly for more than > one column. The following script shows the problem. I commented it below. gtk/sample/treeview.rb may help you. > ---beginning of script--- > require 'gtk2' > Gtk.init > window = Gtk::Window.new > scrolled_win = Gtk::ScrolledWindow.new > scrolled_win.set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC) > data = [ > "hello", > "world" > ] > model = Gtk::ListStore.new(String) model = Gtk::ListStore.new(*data.collect{|d| d.class}) #or model = Gtk::ListStore.new(String, String) > column1 = Gtk::TreeViewColumn.new("Number", > > Gtk::CellRendererText.new, {:text => 0}) #=> this is for data[0] > column2 = Gtk::TreeViewColumn.new("Data", > > Gtk::CellRendererText.new, {:text => 0}) Gtk::CellRendererText.new, {:text => 1}) #for data[1] > treeview = Gtk::TreeView.new(model) > treeview.append_column(column1) > treeview.append_column(column2) > treeview.selection.set_mode(Gtk::SELECTION_SINGLE) > scrolled_win.add_with_viewport(treeview) > n = 1 > data.each do |v| > iter = model.append > iter.set_value(0, n.to_s) > iter.set_value(1, v) > n += 1 > end > window.add(scrolled_win) > window.set_default_size(300, 300) > window.show_all > Gtk.main -- .:% Masao Mutoh<mu...@hi...> |
From: Joao P. <joa...@ya...> - 2003-02-24 19:28:08
|
Thank you Masao :-) I am going to test it as soon as I get home. __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ |