Delivered-To: garrigue at math.nagoya-u.ac.jp Authentication-Results: mailhost.math.nagoya-u.ac.jp sender=lablgtk-bounces at yquem.inria.fr; domainkey=neutral (no query protocol specified; no policy for yquem.inria.fr) Delivered-To: Lablgtk at yquem.inria.fr DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:in-reply-to:references:x-mailer:mime-version :content-type; bh=CQjDNhH9kr9zndahTsBswk8eHxm2L7np/WM42eQB3No=; b=SX1HYXakPcakJ9149b3B91haXsRRZHu2EzTyKJV/Bpv1eFyRExU7BJYr5wb6ya6Px/ yMH5lXTMGB+iGJxYL63mNNiAAAHmEhY6dE/dTrYdnXIYFIJcmYFY+UC3i+imrTpAsu6K Fbza9uRrCqi32A8AsZjF1yBQeOe3dgu6PcVwE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:in-reply-to:references:x-mailer :mime-version:content-type; b=BoNlhitTDBNhnhNnodlW5+L1UdeFQ2cUBUxSyn3TMLEnmKSNshmNzVQVBraRie5Ria OvMODldhIXz5o40IScD7px38o1yPxHLr67EZAbDbjzP1X2vsXXSJg7nEf7W/HXCAfSG1 wh3kKCVSFfXgcVC2I08jbLYT4rZttKuchaMBs= Date: Tue, 14 Sep 2010 15:49:14 -0500 From: Peter Groves To: Jacques Garrigue Subject: Re: [Lablgtk] segfault when reattaching a tree model to a tree view Message-Id: <20100914154914.9a890dc1.pdgroves at gmail.com> In-Reply-To: References: <20100913205658.026ac951.pdgroves at gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Tue__14_Sep_2010_15_49_14_-0500_5AOJlkF5tFe+1xBS" Cc: Lablgtk at yquem.inria.fr Status: U This is a multi-part message in MIME format. --Multipart=_Tue__14_Sep_2010_15_49_14_-0500_5AOJlkF5tFe+1xBS Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Jacques, Thanks for offering to take a look. I'm sorry it's such a complicated piece of code. I've attached the module. Here's the quick explanation of what's going on: - the data to be displayed is in a structure called a TacticScoreTable.t - makeTreeModel() populates a GTree.list_store with the data, plus a boolean column to indicate if the row in the table is 'selected' - makeTreeView() creates a GTree.view of the list_store, with the 'selected' column viewed as an editable check box - setSelectedTacticsByMask() sets all the boolean values to true or false based on a bitmask. this is where the segfault occurs when I try to add calls to treeView#set_model to detach and reattach the treeModel. In this version of the code, I actually try reattaching the model before editing any data in the model, and it crashes there. That is, in this code the "updating model info" log message is never reached.=20 I noticed that when the view_columns are created, they take a reference to the model columns. This would seem to cause an inconsistency if I attached a new model. Am I suppose to be rebuilding the view_columns each time I call set_model with a Some(x) value? I'm now going to try to isolate the bug further if possible. Thanks for any help. Peter p.s. The crash occurs both on Ubuntu Intrepid Ibex and Lucid Lynx (10.04). Lablgtk versions listed in my apt repositories are 2.10.1-2 and 2.14.0 +dfsg-2build1, respectively. On Tue, 14 Sep 2010 16:36:12 +0900 Jacques Garrigue wrote: > Dear Peter, >=20 > I tried to do the same kind of thing with the tree_model.ml example, > and I don't see any segmentation fault when setting the model again. > Can you show some code. > Also the version numbers of lablgtk and gtk, and the platform used, > would be useful. >=20 > Jacques >=20 > On Tue, Sep 14, 2010 at 10:56 AM, Peter Groves > wrote: > > Hi, > > > > I'm trying to speed up a tree view using the hints in the tutorial > > found here: > > > > http://plus.kaist.ac.kr/~shoh/ocaml/lablgtk2/treeview-tutorial/ch03s03.= html#sec-treestore-adding-many-rows > > > > My problem is slightly different than the one described in the > > tutorial, however. I'm not replacing rows in the table but just > > changing the values in a single column. The column is booleans in > > the model and "cell_renderer_toggle" in the view, which basically > > means that one of the columns in the table contains a checkbox for > > every row. The slow performance occurs when I try to set the values > > of all the checkboxes in a batch. I have also tried disabling > > sorting, but that did not seem to make any difference. > > > > So now I'm trying to detach the model from the view while I do the > > batch update, then reattach them. I'm able to detach the model from > > the view using: > > > > =A0- self.treeView#set_model None; > > > > =A0- Then I update the model by using an 'iter' over all the rows in > > the model. > > > > =A0- Finally, I try to replace the model with: > > =A0 =A0self.treeView#set_model (Some(self.treeModel#coerce)); > > > > It segFaults on the last step. Are there any suggestions for what > > might be going wrong or any way to debug this? > > > > Thanks, > > Peter > > > > _______________________________________________ > > Lablgtk mailing list > > Lablgtk@yquem.inria.fr > > http://yquem.inria.fr/cgi-bin/mailman/listinfo/lablgtk > > --Multipart=_Tue__14_Sep_2010_15_49_14_-0500_5AOJlkF5tFe+1xBS Content-Type: application/octet-stream; name="TacticScoreTablePane.ml" Content-Disposition: attachment; filename="TacticScoreTablePane.ml" Content-Transfer-Encoding: base64 KCoqIHRoaXMgaXMganVzdCBmb3IgY29udmVuaWVuY2UgdG8gcGFzcyBhcm91bmQgdGhlIEdUcmVl J3MgZGF0YW1vZGVsIGNvbHVtc24sIAp3aGljaCBoYXZlIGRpZmZlcmVudCBzaWduYXR1cmVzIHNv IGRvbid0IGZpdCBpbiBhIGxpc3QgKikKdHlwZSB0TG9jYWxNb2RlbCA9IHsKCWNoZWNrQm94Q29s dW1uOiBib29sIEdUcmVlLmNvbHVtbjsKCXRhY3RpY0lkeENvbHVtbjogaW50IEdUcmVlLmNvbHVt bjsKCW1ldHJpY0NvbHVtbkFyeTogZmxvYXQgR1RyZWUuY29sdW1uIGFycmF5OwoJfQoKCnR5cGUg dCA9IHsKCXRyZWVWaWV3OiBHVHJlZS52aWV3OwoJbG9jYWxNb2RlbDogdExvY2FsTW9kZWw7Cgl0 cmVlTW9kZWw6IEdUcmVlLmxpc3Rfc3RvcmU7CglzY29yZVRhYmxlOiBUYWN0aWNTY29yZVRhYmxl LnQ7Cgl0b2dnbGVQaXBlOiAoaW50ICogYm9vbCkgUGlwZS50ICgqKiBicm9hZGNhc3RzIG1lc3Nh Z2VzIHdoZW4gYSB0YWN0aWMKCQlnZXRzIGl0J3MgY2hlY2tib3ggY2xpY2tlZC91bmNsaWNrZWQu IHRoZSBib29sIGlzIHRoZSBuZXcgdmFsdWUsIHRoZQoJCWludCBpcyB0aGUgdGFjdGljIGluZGV4 ICopCgl9CgooKiBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgdmlld2FhYmxlIHRhYmxlIGJlZm9y ZSB0aGUgbWV0cmljcyBjb2x1bW5zICopCmxldCBudW1MZWFkSW5Db2x1bW5zID0gMiAKCigqKiBl eHRyYWN0cyB0aGUgc2NvcmVzIGZyb20gdGhlIHRhY3RpY3MgYW5kIHB1dHMgdGhlbSBpbiB0aGUg dGFibGUgbW9kZWwKdGhhdCBndGsgdHJlZSB2aWV3ZXIgdW5kZXJzdGFuZHMuICopCmxldCBtYWtl VHJlZU1vZGVsIHRhY3RpY1Njb3JlVGFibGUgPSBiZWdpbgoKCSgqKiB0aGUgY29sdW1ucyBhcmUg c3RvcmVkIGluIGEgY29sdW1fbGlzdCB3aGljaCB3aWxsIHRoZW4gcG9wdWxhdGUKCXRoZSBtYWlu IG1vZGVsICopCglsZXQgbW9kZWxDb2xMc3RPYmplY3QgPSBuZXcgR1RyZWUuY29sdW1uX2xpc3Qg aW4KCgkoKiogYWRkIHRoZSBjaGVja2JveCBjb2x1bW4gKikKCWxldCBjaGVja0JveENvbCA9IG1v ZGVsQ29sTHN0T2JqZWN0I2FkZCBHb2JqZWN0LkRhdGEuYm9vbGVhbiBpbgoKCSgqKiBhZGQgdGhl IHJvdyBpbmRleCAodGFjdGljIGluZGV4KSBjb2x1bW4gKikKCWxldCB0YWN0aWNJZHhDb2wgPSBt b2RlbENvbExzdE9iamVjdCNhZGQgR29iamVjdC5EYXRhLmludCBpbgoKCSgqKiBhZGQgYSBmbG9h dCBjb2x1bW4gdG8gdGhlIG1vZGVsIGZvciBldmVyeSBtZXRyaWMgLSB0aGV5J3JlIGFsbCB0aGUg c2FtZSAqKQoJbGV0IGluaXRNb2RlbE1ldHJpY0NvbHVtbiA9IGZ1biAoKSAtPiBiZWdpbgoJCWxl dCBjb2wgPSBtb2RlbENvbExzdE9iamVjdCNhZGQgR29iamVjdC5EYXRhLmZsb2F0IGluCgkJY29s CgkJZW5kCglpbgoJbGV0IG51bU1ldHJpY3MgPSBUYWN0aWNTY29yZVRhYmxlLmdldE51bU1ldHJp Y3MgdGFjdGljU2NvcmVUYWJsZSBpbgoJbGV0IG1ldHJpY0NvbExzdCA9IExpc3RVdGlsLmluaXQg CgkJfmdlbkZ1bjppbml0TW9kZWxNZXRyaWNDb2x1bW4gIAoJCX5sZW5ndGg6bnVtTWV0cmljcwoJ aW4KCWxldCBtZXRyaWNDb2xBcnkgPSBBcnJheS5vZl9saXN0IG1ldHJpY0NvbExzdCBpbgoKCgko KiogbWFrZSB0aGUgZ3JpZCAoYXMgb3Bwb3NlZCB0byB0cmVlKSBtb2RlbCBmcm9tIHRoZSBjb2x1 bW5zICopCglsZXQgbW9kZWxMaXN0U3RvcmUgPSBHVHJlZS5saXN0X3N0b3JlIG1vZGVsQ29sTHN0 T2JqZWN0IGluCgoJKCoqIGZpbGwgaW4gdGhlIHJvd3Mgb2YgdGhlIGRhdGEgbW9kZWwgdGFibGUu IHRoaXMgaXMgZG9uZSBieSByb3cuICopCglsZXQgYXBwZW5kUm93ID0gZnVuIHJvd0lkeCAtPiBi ZWdpbgoJCWxldCBndGtJdGVyID0gbW9kZWxMaXN0U3RvcmUjYXBwZW5kICgpIGluCgkJbW9kZWxM aXN0U3RvcmUjc2V0IGd0a0l0ZXIgY2hlY2tCb3hDb2wgZmFsc2U7CgkJbW9kZWxMaXN0U3RvcmUj c2V0IGd0a0l0ZXIgdGFjdGljSWR4Q29sIHJvd0lkeDsKCgkJbGV0IHZpc2l0TWV0cmljSWR4ID0g ZnVuIG1ldHJpY0lkeCAtPiBiZWdpbgoJCQlsZXQgc2NvcmVGbHQgPSBUYWN0aWNTY29yZVRhYmxl LmdldFNjb3JlIHRhY3RpY1Njb3JlVGFibGUKCQkJCX50YWN0aWNJZHg6cm93SWR4IH5tZXRyaWNJ ZHg6bWV0cmljSWR4CgkJCWluCgkJCSgqbGV0IGNvbElkeCA9IG1ldHJpY0lkeCArIG51bUxlYWRJ bkNvbHVtcyBpbiopCgkJCWxldCBtZXRyaWNDb2wgPSBBcnJheS5nZXQgbWV0cmljQ29sQXJ5IG1l dHJpY0lkeCBpbgoJCQltb2RlbExpc3RTdG9yZSNzZXQgZ3RrSXRlciBtZXRyaWNDb2wgc2NvcmVG bHQ7CgkJCSgpCgkJCWVuZAoJCWluCgkJQmxvY2suZm9yRG8gbnVtTWV0cmljcyB2aXNpdE1ldHJp Y0lkeDsKCQllbmQKCWluCglsZXQgbnVtVGFjdGljcyA9IFRhY3RpY1Njb3JlVGFibGUuZ2V0TnVt VGFjdGljcyB0YWN0aWNTY29yZVRhYmxlIGluCglCbG9jay5mb3JEbyBudW1UYWN0aWNzIGFwcGVu ZFJvdzsKCWxldCBsb2NhbE1vZGVsID0gewoJCWNoZWNrQm94Q29sdW1uID0gY2hlY2tCb3hDb2w7 CgkJdGFjdGljSWR4Q29sdW1uID0gdGFjdGljSWR4Q29sOwoJCW1ldHJpY0NvbHVtbkFyeSA9IG1l dHJpY0NvbEFyeTsKCQl9CglpbgoJKG1vZGVsTGlzdFN0b3JlLCBsb2NhbE1vZGVsKQoJZW5kCgps ZXQgbWFrZVRyZWVWaWV3ICh0cmVlTW9kZWwgOkdUcmVlLmxpc3Rfc3RvcmUpIGxvY2FsTW9kZWwg c2NvcmVUYWJsZSA9IGJlZ2luCglsZXQgdHJlZVZpZXcgPSBHVHJlZS52aWV3ICgpIGluCgl0cmVl VmlldyNzZXRfcnVsZXNfaGludCB0cnVlOwoJdHJlZVZpZXcjc2V0X2hlYWRlcnNfY2xpY2thYmxl IHRydWU7Cgl0cmVlVmlldyNzZXRfcmVvcmRlcmFibGUgdHJ1ZTsKCgkKCSgqKiBhZGQgdGhlIGNo ZWNrYm94IGNvbHVtbiB0byB0aGUgdmlldyAqKQoJbGV0IGNoZWNrQm94TW9kZWxDb2wgPSBsb2Nh bE1vZGVsLmNoZWNrQm94Q29sdW1uIGluCglsZXQgcmVuZGVyT3B0aW9uc0NoZWNrQm94ID0gWyhg QUNUSVZBVEFCTEUgdHJ1ZSk7IChgQUNUSVZFIHRydWUpXSBpbgoJbGV0IHJlbmRlcmVyQ2hlY2tC b3ggPSBHVHJlZS5jZWxsX3JlbmRlcmVyX3RvZ2dsZSByZW5kZXJPcHRpb25zQ2hlY2tCb3ggaW4K CglsZXQgdG9nZ2xlQnJvYWRjYXN0UGlwZSA9IFBpcGUuY3JlYXRlICgpIGluCglsZXQgdG9nZ2xl TW9uaXRvciA9IGZ1biBndGtUcmVlUGF0aCAtPiBiZWdpbgoJCWxldCBtb2RlbEl0ZXIgPSB0cmVl TW9kZWwjZ2V0X2l0ZXIgZ3RrVHJlZVBhdGggaW4KCQlsZXQgZXhpc3RpbmdCb29sVmFsID0gdHJl ZU1vZGVsI2dldCAKCQkJfnJvdzptb2RlbEl0ZXIgCgkJCX5jb2x1bW46Y2hlY2tCb3hNb2RlbENv bCAKCQlpbgoJCWxldCB0YWN0aWNJZHggPSB0cmVlTW9kZWwjZ2V0IAoJCQl+cm93Om1vZGVsSXRl ciAKCQkJfmNvbHVtbjpsb2NhbE1vZGVsLnRhY3RpY0lkeENvbHVtbiAKCQlpbgoJCWxldCBuZXdC b29sVmFsID0gKG5vdCBleGlzdGluZ0Jvb2xWYWwpIGluCgkJdHJlZU1vZGVsI3NldCB+cm93Om1v ZGVsSXRlciB+Y29sdW1uOmNoZWNrQm94TW9kZWxDb2wgbmV3Qm9vbFZhbDsKCQlQaXBlLmhhbmRs ZUV2ZW50IHRvZ2dsZUJyb2FkY2FzdFBpcGUgKHRhY3RpY0lkeCwgbmV3Qm9vbFZhbCk7CgkJKCkK CQllbmQKCWluCglpZ25vcmUgKHJlbmRlcmVyQ2hlY2tCb3gjY29ubmVjdCN0b2dnbGVkIH5jYWxs YmFjazp0b2dnbGVNb25pdG9yKTsKCglsZXQgdmlld0NvbHVtbkNoZWNrQm94ID0gR1RyZWUudmll d19jb2x1bW4KCQl+dGl0bGU6IlNlbGVjdGVkPyIKCQl+cmVuZGVyZXI6KHJlbmRlcmVyQ2hlY2tC b3gsIFsoImFjdGl2ZSIsIGNoZWNrQm94TW9kZWxDb2wpXSkKCQkoKQoJaW4KCXZpZXdDb2x1bW5D aGVja0JveCNzZXRfc29ydF9jb2x1bW5faWQgMDsKCWlnbm9yZSAodHJlZVZpZXcjYXBwZW5kX2Nv bHVtbih2aWV3Q29sdW1uQ2hlY2tCb3gpKTsKCgkoKiBhZGQgdGhlIHRhY3RpYyBpbmRleCBjb2x1 bW4gdG8gdGhlIHZpZXcqKQoJbGV0IHRhY3RpY0lkeE1vZGVsQ29sID0gbG9jYWxNb2RlbC50YWN0 aWNJZHhDb2x1bW4gaW4KCWxldCByZW5kZXJPcHRpb25UYWN0aWNJZHggPSBbXSBpbgoJbGV0IHJl bmRlcmVyVGFjdGljSWR4ID0gR1RyZWUuY2VsbF9yZW5kZXJlcl90ZXh0IHJlbmRlck9wdGlvblRh Y3RpY0lkeCBpbgoJbGV0IHZpZXdDb2x1bW5UYWN0aWNJZHggPSBHVHJlZS52aWV3X2NvbHVtbgoJ CX50aXRsZToiVGFjdGljSW5kZXgiCgkJfnJlbmRlcmVyOihyZW5kZXJlclRhY3RpY0lkeCwgWygi dGV4dCIsIHRhY3RpY0lkeE1vZGVsQ29sKV0pCgkJKCkKCWluCgl2aWV3Q29sdW1uVGFjdGljSWR4 I3NldF9zb3J0X2NvbHVtbl9pZCAxOwoKCWlnbm9yZSAodHJlZVZpZXcjYXBwZW5kX2NvbHVtbih2 aWV3Q29sdW1uVGFjdGljSWR4KSk7CgkJCgoJKCoqIGFkZCB0aGUgbWV0cmljcyBjb2x1bW5zIHRv IHRoZSB2aWV3ICopCglsZXQgbnVtTWV0cmljcyA9IFRhY3RpY1Njb3JlVGFibGUuZ2V0TnVtTWV0 cmljcyBzY29yZVRhYmxlIGluCglsZXQgdmlzaXRNZXRyaWNJZHggPSBmdW4gbWV0cmljSWR4IC0+ IGJlZ2luCgkJbGV0IHRyZWVWaWV3Q29sSWR4ID0gbWV0cmljSWR4ICsgbnVtTGVhZEluQ29sdW1u cyBpbgoJCWxldCBjb2xMYWJlbCA9IFRhY3RpY1Njb3JlVGFibGUuZ2V0TWV0cmljTGFiZWwgc2Nv cmVUYWJsZSBtZXRyaWNJZHggaW4KCQlsZXQgcmVuZGVyT3B0aW9ucyA9IFtdIGluCgkJbGV0IHJl bmRlcmVyID0gR1RyZWUuY2VsbF9yZW5kZXJlcl90ZXh0IHJlbmRlck9wdGlvbnMgaW4KCQlsZXQg bW9kZWxDb2x1bW4gPSBBcnJheS5nZXQgbG9jYWxNb2RlbC5tZXRyaWNDb2x1bW5BcnkgbWV0cmlj SWR4IGluCgkJbGV0IHZpZXdDb2x1bW4gPSBHVHJlZS52aWV3X2NvbHVtbiAKCQkJfnRpdGxlOmNv bExhYmVsIAoJCQl+cmVuZGVyZXI6KHJlbmRlcmVyLCBbKCJ0ZXh0IiwgbW9kZWxDb2x1bW4pXSkK CQkJKCkgCgkJaW4KCQl2aWV3Q29sdW1uI3NldF9zb3J0X2NvbHVtbl9pZCB0cmVlVmlld0NvbElk eDsKCgkJaWdub3JlICh0cmVlVmlldyNhcHBlbmRfY29sdW1uIHZpZXdDb2x1bW4pOwoJCSgpCgkJ ZW5kCglpbgoJQmxvY2suZm9yRG8gbnVtTWV0cmljcyB2aXNpdE1ldHJpY0lkeDsKCXRyZWVWaWV3 I3NldF9tb2RlbCAoU29tZSh0cmVlTW9kZWwjY29lcmNlKSk7CgoJKHRyZWVWaWV3LCB0b2dnbGVC cm9hZGNhc3RQaXBlKQoJZW5kCgpsZXQgY3JlYXRlIHNjb3JlVGFibGUgPSBiZWdpbgoJbGV0ICh0 cmVlTW9kZWwsIGxvY2FsTW9kZWwpID0gbWFrZVRyZWVNb2RlbCBzY29yZVRhYmxlIGluCglsZXQg KHRyZWVWaWV3LCB0b2dnbGVQaXBlKSA9IG1ha2VUcmVlVmlldyB0cmVlTW9kZWwgbG9jYWxNb2Rl bCBzY29yZVRhYmxlIGluCgoJbGV0IG5ld1NlbGYgPSB7CgkJdHJlZVZpZXcgPSB0cmVlVmlldzsK CQlsb2NhbE1vZGVsID0gbG9jYWxNb2RlbDsKCQl0cmVlTW9kZWwgPSB0cmVlTW9kZWw7CgkJc2Nv cmVUYWJsZSA9IHNjb3JlVGFibGU7CgkJdG9nZ2xlUGlwZSA9IHRvZ2dsZVBpcGU7CgkJfQoJaW4K CW5ld1NlbGYKCWVuZAoKbGV0IHRvRlBhbmUgc2VsZiA9IGJlZ2luCglsZXQgdHJlZVZpZXdBc0dX aWRnZXQgPSBzZWxmLnRyZWVWaWV3I2NvZXJjZSBpbgoJbGV0IHNjcm9sbGVyID0gR0Jpbi5zY3Jv bGxlZF93aW5kb3cKCQl+aHBvbGljeTpgQVVUT01BVElDCgkJfnZwb2xpY3k6YEFVVE9NQVRJQwoJ CSgpCglpbgoJbGV0IGRlZmF1bHRXaWR0aCA9IDYwMCBpbgoJbGV0IGRlZmF1bHRIZWlnaHQgPSAy NTAgaW4KCXNjcm9sbGVyI2FkZCB0cmVlVmlld0FzR1dpZGdldDsKCXNjcm9sbGVyI3NldF9zaGFk b3dfdHlwZSBgRVRDSEVEX0lOOwoJc2Nyb2xsZXIjbWlzYyNzZXRfc2l6ZV9yZXF1ZXN0IH53aWR0 aDpkZWZhdWx0V2lkdGggfmhlaWdodDpkZWZhdWx0SGVpZ2h0ICgpOwoJc2Nyb2xsZXIjc2V0X3Jl c2l6ZV9tb2RlIGBQQVJFTlQ7CglsZXQgZnBhbmUgPSBGUGFuZS5mcm9tR1dpZGdldCBzY3JvbGxl ciNjb2VyY2UgaW4KCWZwYW5lCgllbmQKCgpsZXQgc2V0U2VsZWN0ZWRUYWN0aWNzQnlNYXNrIHNl bGYgYml0U2V0TWFzayA9IGJlZ2luCgkoKiogZGlzY29ubmVjdCB0aGUgdmlldyBmcm9tIHRoZSBt b2RlbCB3aGlsZSB3ZSBkbyB0aGUgdXBkYXRlcyAqKQoJTG9nLmluZm8gInNldHRpbmcgdmlldydz IG1vZGVsIHRvIE5vbmUiOwoJc2VsZi50cmVlVmlldyNzZXRfbW9kZWwgTm9uZTsKCXNlbGYudHJl ZVZpZXcjc2V0X21vZGVsIChTb21lKHNlbGYudHJlZU1vZGVsI2NvZXJjZSkpOwoJc2VsZi50cmVl VmlldyNzZXRfbW9kZWwgTm9uZTsKCglMb2cuaW5mbyAidXBkYXRpbmcgbW9kZWwgZGF0YSI7Cgls ZXQgbW9kZWwgPSBzZWxmLnRyZWVNb2RlbCNjb2VyY2UgaW4KCWxldCBpdGVyID0gYmVnaW4KCQlt YXRjaCBtb2RlbCNnZXRfaXRlcl9maXJzdCB3aXRoCgkJfE5vbmUgLT4gVmVyaWZ5LmNyYXNoIH5s YWJlbDoiVGFjdGljU0NvcmVUYWJsZVBhbmUuc2V0U2VsZWN0ZWRCeU1hc2s6bm9uZSIKCQl8U29t ZSh4KSAtPiB4CgkJZW5kCglpbgoJbGV0IHdoaWxlQmxvY2sgPSBmdW4gKCkgLT4gYmVnaW4KCQls ZXQgdGFjdGljSWR4ID0gc2VsZi50cmVlTW9kZWwjZ2V0CgkJCX5yb3c6aXRlcgoJCQl+Y29sdW1u OihzZWxmLmxvY2FsTW9kZWwudGFjdGljSWR4Q29sdW1uKQoJCWluCgkJc2VsZi50cmVlTW9kZWwj c2V0IAoJCQl+cm93Oml0ZXIgCgkJCX5jb2x1bW46KHNlbGYubG9jYWxNb2RlbC5jaGVja0JveENv bHVtbikKCQkJKEJpdFNldC5pc19zZXQgYml0U2V0TWFzayB0YWN0aWNJZHgpOwoJCSgpCgkJZW5k CglpbgoJQmxvY2suZG9XaGlsZSAoZnVuICgpIC0+IG1vZGVsI2l0ZXJfbmV4dCBpdGVyKSB3aGls ZUJsb2NrOwoKCSgqIHJlY29ubmVjdCB0aGUgdmlldyB0byB0aGUgbW9kZWwgKikKCUxvZy5pbmZv ICJkb25lIHVwZGF0aW5nIHRyZWUncyB2aWV3IjsKCXNlbGYudHJlZVZpZXcjc2V0X21vZGVsIChT b21lKHNlbGYudHJlZU1vZGVsI2NvZXJjZSkpOwoJZW5kCgpsZXQgcmVnaXN0ZXJBc1NlbGVjdGFi bGVTcG9rZSBzZWxmIHNIdWIgPSBiZWdpbgoJbGV0IHNTcG9rZSA9IFNlbGVjdGFibGUuY3JlYXRl U3Bva2Ugc0h1YiBpbgoKCWxldCB1cGRhdGVMb2NhbERpc3BsYXkgPSBmdW4gKCkgLT4gYmVnaW4K CQlsZXQgbWFzayA9IFNlbGVjdGFibGUuZ2V0Q3VycmVudE1hc2sgc1Nwb2tlIGluCgkJc2V0U2Vs ZWN0ZWRUYWN0aWNzQnlNYXNrIHNlbGYgbWFzazsKCQllbmQKCWluCgoJKCoqKiogbWVzc2FnZXMg RlJPTSB0aGUgaHViICopCglsZXQgYW55SHViVXBkYXRlTW9uID0gZnVuIF8gLT4gdXBkYXRlTG9j YWxEaXNwbGF5ICgpIGluCglTZWxlY3RhYmxlLnJlZ2lzdGVyVXBkYXRlZE1hc2tNb25pdG9yIAoJ CX5zcG9rZTpzU3Bva2UgCgkJfnVwZGF0ZWRNYXNrTW9uOmFueUh1YlVwZGF0ZU1vbjsJCgoJKCoq IG1lc3NhZ2VzIFRPIHRoZSBodWIgKikKCWxldCBsb2NhbFRvZ2dsZU1vbiA9IGZ1biAodGFjdGlj SWR4LCBuZXdJc1NlbGVjdGVkQm9vbCkgLT4gYmVnaW4KCQlsZXQgbnVtVGFjdHMgPSBUYWN0aWNT Y29yZVRhYmxlLmdldE51bVRhY3RpY3Mgc2VsZi5zY29yZVRhYmxlIGluCgkJbGV0IG1hc2tNc2cg PSBCaXRTZXQuY3JlYXRlIG51bVRhY3RzIGluCgkJQml0U2V0LnNldCBtYXNrTXNnIHRhY3RpY0lk eDsKCQkoKiogaWYgaXQgd2VudCBmcm9tIHVuY2hlY2tlZC0+Y2hlY2tlZCwgaXRzIGEgbWFzayBv ZiB3aGF0IG5lZWRzCgkJdG8gYmUgYWRkZWQgdG8gdGhlIG92ZXJhbGwgbWFzaywgaWYgdGhlIG90 aGVyIHdheSBhcm91bmQsIHJlbW92ZWQuICopCgkJbWF0Y2ggbmV3SXNTZWxlY3RlZEJvb2wgd2l0 aAoJCXx0cnVlIC0+IFNlbGVjdGFibGUuY29tbWl0QWRkTWFzayBzU3Bva2UgbWFza01zZwoJCXxm YWxzZSAtPiBTZWxlY3RhYmxlLmNvbW1pdFJlbW92ZU1hc2sgc1Nwb2tlIG1hc2tNc2cKCQllbmQK CWluCglQaXBlLnJlZ2lzdGVyIHNlbGYudG9nZ2xlUGlwZSBsb2NhbFRvZ2dsZU1vbjsKCSgpCgll bmQKCg== --Multipart=_Tue__14_Sep_2010_15_49_14_-0500_5AOJlkF5tFe+1xBS Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Lablgtk mailing list Lablgtk@yquem.inria.fr http://yquem.inria.fr/cgi-bin/mailman/listinfo/lablgtk --Multipart=_Tue__14_Sep_2010_15_49_14_-0500_5AOJlkF5tFe+1xBS--