Laurent Sansonetti
lsans****@apple*****
Sun Feb 10 16:04:43 JST 2008
This test was apparently added in the hope the problem could be fixed. Object caching is a difficult problem, there are so many different use cases that we need to take into account (and some of them are not in the tests, unfortunately, but in samples or applications). I don't remember why Qfalse was specifically passed when converting method arguments... I fixed them in both places as you suggested (in r2189), and tried all samples successfully. All tests except those in tc_activerecord.rb are passing too. We should try other RubyCocoa applications and see if this change doesn't break them. LimeChat is a good one, it seems at least to start and behave as before. Laurent On Feb 9, 2008, at 10:27 PM, kimura wataru wrote: > Hi, > > RubyCocoa trunk(r2188) fails in test/tc_uniqobj.rb. > > % ruby install.rb test --test-args=--testcase=TC_UniqObject > 1) Failure: > > test_equality_of_a_objc_object_that_has_been_instantiated_from_a_nib > (TC_UniqO > bject) [./tc_uniqobj.rb:96]: > <false> is not true. > > 6 tests, 15 assertions, 1 failures, 0 errors > test failed > > This failure caused RubyCocoa do not cache ObjC obejct passed as > arguments from ObjC world. > The following change will solve this. I guess ovmix_ffi_closure() > in OverrideMixin.m has the same problem. > > =================================================================== > --- framework/src/objc/RBObject.m (revision 2188) > +++ framework/src/objc/RBObject.m (working copy) > @@ -142,7 +142,7 @@ > > RBOBJ_LOG("arg[%d] of type '%s'", i, octstr); > [an_inv getArgument: ocdata atIndex: (i+2)]; > - f_conv_success = ocdata_to_rbobj(Qfalse, octstr, ocdata, > &arg_val, NO); > + f_conv_success = ocdata_to_rbobj(Qnil, octstr, ocdata, > &arg_val, NO); > if (f_conv_success == NO) { > arg_val = Qnil; > } > > _______________________________________________ > Rubycocoa-devel mailing list > Rubyc****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel