On 17 Dec 2010, at 13:42, Fred Kiefer wrote: > First of all, Gorm is wrong in having all these methods return unsigned, > it should be NSDragOperation. But this doesn't explain why libobjc2 has > a problem here. > David, could you please have a look at that and see what the difference > between these two types is?
The method that is being called returns an unsigned int, but the selector returns a signed int (I vs i - difficult to see in some fonts). libobjc2 catches cases where you call a method with the wrong types and logs a message before calling the incorrectly-typed method. Eventually this will be a hard error, because calling a method with the wrong types can cause stack corruption[1]. It's probably safe in this specific case (although it can result in some weird bugs because you have an implicit integer cast that you may be unaware of), but in nontrivial cases (e.g. returning an integer, expecting an object) it can be a serious problem. There is a hook that can be called to perform fixup. If you link against LanguageKit, then it automatically generates and inserts a method at run time that can box / unbox primitives as objects. For more information, see these two blog posts: http://etoileos.com/news/archive/2010/09/01/1228/ http://etoileos.com/news/archive/2010/09/01/1444/ David -- Sent from my IBM 1620 _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
