diff --git a/ChangeLog b/ChangeLog index 1555508a7..a90180feb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-21 Richard Frith-Macdonald + + * Source/NSBezierPath.m: ([transformUsingAffineTransform:]) corrected + code which was casting an array of items of one type to be an array + of items of another type whose size differs on 64bit machines. + 2008-08-15 Fred Kiefer * Source/NSWindow.m (-makeKeyAndOrderFront:): Unhide the application. diff --git a/Source/NSBezierPath.m b/Source/NSBezierPath.m index 2cd9f6238..ea5e8167b 100644 --- a/Source/NSBezierPath.m +++ b/Source/NSBezierPath.m @@ -1966,40 +1966,36 @@ static NSPoint point_on_curve(double t, NSPoint a, NSPoint b, NSPoint c, { NSBezierPathElement type; int i, count; - PathElement *elments = (PathElement *)GSIArrayItems(pathElements); + GSIArrayItem *elments = GSIArrayItems(pathElements); SEL transformPointSel = @selector(transformPoint:); NSPoint (*transformPointImp)(NSAffineTransform*, SEL, NSPoint); transformPointImp = (NSPoint (*)(NSAffineTransform*, SEL, NSPoint)) - [transform methodForSelector: transformPointSel]; + [transform methodForSelector: transformPointSel]; count = GSIArrayCount(pathElements); for (i = 0; i < count; i++) { - type = elments[i].type; + type = elments[i].ext.type; switch(type) { case NSMoveToBezierPathElement: case NSLineToBezierPathElement: - elments[i].points[0] = (*transformPointImp)(transform, - transformPointSel, - elments[i].points[0]); - break; + elments[i].ext.points[0] = (*transformPointImp)(transform, + transformPointSel, elments[i].ext.points[0]); + break; case NSCurveToBezierPathElement: - elments[i].points[0] = (*transformPointImp)(transform, - transformPointSel, - elments[i].points[0]); - elments[i].points[1] = (*transformPointImp)(transform, - transformPointSel, - elments[i].points[1]); - elments[i].points[2] = (*transformPointImp)(transform, - transformPointSel, - elments[i].points[2]); - break; + elments[i].ext.points[0] = (*transformPointImp)(transform, + transformPointSel, elments[i].ext.points[0]); + elments[i].ext.points[1] = (*transformPointImp)(transform, + transformPointSel, elments[i].ext.points[1]); + elments[i].ext.points[2] = (*transformPointImp)(transform, + transformPointSel, elments[i].ext.points[2]); + break; case NSClosePathBezierPathElement: - break; + break; default: - break; + break; } } INVALIDATE_CACHE();