Hi! Le 6 juil. 2010 à 21:59, Matt Neuburg a écrit :
> On Tue, 6 Jul 2010 20:31:06 +0200, vincent habchi <[email protected]> said: >> BTW, another unrelated question. I have a method that takes an NSPoint as an > argument. I call it this way: >> >> [foo point:NSMakePoint(x, y)] >> >> and get an analyzer warning: "Pass-by-value argument in function call is > undefined". > > How about passing an NSValue? Surely valueWithPoint: must be good for > something... :) m. It appears the warning should be read: "The variable you pass to NSMakePoint is undefined". The real code looks like this: - (void)drawPoint:(CGContextRef)ctx origin:(CGPoint)origin dimension:(int)dim data:(char **)data { double pt [dim]; for (int i = 0 ; i < dim ; i ++) { memcpy (& (pt [i]), * data, sizeof (double)); * data += sizeof (double); } NSPoint point = [displayController mapToLayerCoordinates:NSMakePoint(pt [0], pt [1])]; The analyzer does not figure out that the pt array gets initialized through the loop by copying values directly from a chunk of memory, and spits out the warning about pt [•] not being defined. Maybe I should report this to the LLVM team? Vincent PS : Note that the (char **) may seem a bit clumsy, but the chunk of memory contains different informations, not only double. I will probably rewrite it thus: - (void)drawPoint:(CGContextRef)ctx origin:(CGPoint)origin dimension:(int)dim data:(double **)data { double pt [dim]; for (int i = 0 ; i < dim ; i ++, *data ++) { memcpy (& (pt [i]), * data, sizeof (double)); } _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
