Satoshi Nakagawa
snaka****@infot*****
Thu May 24 09:09:02 JST 2007
Hi Laurent. I have tried the latest trunk, it's now fixed. Thank you. -- Satoshi Nakagawa On 2007/05/24, at 6:04, Laurent Sansonetti wrote: > Should be fixed in r1771. > > Laurent > > On May 23, 2007, at 6:54 PM, Laurent Sansonetti wrote: > >> Forgot what I said, I can reproduce it. >> >> Investigating now :-) >> >> Laurent >> >> On May 23, 2007, at 6:44 PM, Laurent Sansonetti wrote: >> >>> Hi Satoshi-san, >>> >>> I have problems reproducing the defect. >>> >>> Here is the code I used: >>> >>> <<< >>> require 'osx/cocoa' >>> >>> OSX.require_framework 'WebKit' >>> >>> include OSX >>> >>> 3000.times do |i| >>> obj = NSObject.alloc.init >>> if obj.class.name != 'OSX::NSObject' >>> puts "Not NSObject at: #{i}" >>> p obj >>> return >>> end >>> view = WebView.alloc.initWithFrame(NSZeroRect) >>> view.setPolicyDelegate(self) >>> view.mainFrame.loadHTMLString_baseURL('<html></html>', nil) >>> end >>> puts 'No problem' >>>>>> >>> >>> It always prints "No problem" on 2 different environments (ppc and >>> i386). I also tried to increase 3000 by a bigger number, without >>> success. >>> >>> # I also try your AllocDefect projet, without success too :( >>> >>> Laurent >>> >>> On May 23, 2007, at 7:43 AM, Satoshi Nakagawa wrote: >>> >>>> Hi. >>>> >>>> I'm writing an application using WebKit. In the process I found a >>>> defect of RubyCocoa. >>>> >>>> The defect is that NSObject.alloc.init doesn't return NSObject >>>> sometimes. It is reproducible only when setting a ruby object for >>>> WebPolicyDelegate or WebUIDelegate. If I set an Objective-C object >>>> for WebPolicyDelegate, it works normally. >>>> >>>> In the following code, NSObject.alloc.init return >>>> OSX::WebPolicyDecisionListener or OSX::NSMutableURLRequest >>>> sometimes. >>>> >>>> Environment: OSX 10.4 + ruby 1.8.2 >>>> Reproducible versions: 0.10.1, 0.11.0 >>>> NOT reproducible version: 0.5.0 >>>> >>>> -------- Reproduce code >>>> class AppController < OSX::NSObject >>>> include OSX >>>> >>>> def >>>> webView_decidePolicyForNavigationAction_request_frame_decisionListener >>>> (sender, action, request, frame, listener) >>>> listener.use >>>> end >>>> >>>> def awakeFromNib >>>> puts '@@@ awakeFromNib' >>>> 3000.times do |i| >>>> obj = NSObject.alloc.init >>>> if obj.class.name != 'OSX::NSObject' >>>> puts "Not NSObject at: #{i}" >>>> p obj >>>> return >>>> end >>>> view = WebView.alloc.initWithFrame(NSZeroRect) >>>> view.setPolicyDelegate(self) >>>> view.mainFrame.loadHTMLString_baseURL('<html></html>', nil) >>>> end >>>> puts 'No problem' >>>> end >>>> end >>>> -------- >>>> >>>> -------- Result 1 >>>> @@@ awakeFromNib >>>> Not NSObject at: 104 >>>> #<OSX::WebPolicyDecisionListener:0x159ed6 class='NSObject' >>>> id=0x500e20> >>>> -------- >>>> >>>> -------- Result 2 >>>> @@@ awakeFromNib >>>> Not NSObject at: 186 >>>> #<OSX::NSMutableURLRequest:0x80d6f8 class='NSObject' id=0xd60bf60> >>>> -------- >>>> >>>> The entire project contains the reproduce code: >>>> http://limechat.net/rubycocoa/AllocRuby.zip >>>> >>>> And another project using Objective-C delegate object (it works >>>> normally): >>>> http://limechat.net/rubycocoa/AllocObjc.zip >>>> >>>> -- >>>> Satoshi Nakagawa >>>> http://limechat.net/ >>>> http://www.lingr.com/ >>>> >>>> _______________________________________________ >>>> Rubycocoa-devel mailing list >>>> Rubyc****@lists***** >>>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel >>> >>> _______________________________________________ >>> Rubycocoa-devel mailing list >>> Rubyc****@lists***** >>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel >> >> _______________________________________________ >> Rubycocoa-devel mailing list >> Rubyc****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel > > _______________________________________________ > Rubycocoa-devel mailing list > Rubyc****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel