* Source/NSAffineTransform.m (-appendTransform:,

-prependTransform:): Fix bug in optimisation code by using a local variable.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33716 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Fred Kiefer 2011-08-11 07:27:52 +00:00
parent 4ea812deb4
commit 826db719cc
2 changed files with 26 additions and 8 deletions

View file

@ -1,4 +1,10 @@
2011-08-09 08:43 theraven
2011-08-11 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSAffineTransform.m (-appendTransform:)
(-prependTransform:): Fix bug in optimisation code by using a
local variable.
2011-08-09 08:43 David Chisnall <theraven@gna.org>
* libs/base/trunk/Source/NSConcreteHashTable.m,
libs/base/trunk/Source/NSConcreteMapTable.m: Replace the
@ -6,7 +12,7 @@
with ones that work and don't cause people to dereference
pointers that are set to random integer values.
2011-08-07 18:00 theraven
2011-08-07 18:00 David Chisnall <theraven@gna.org>
* libs/base/trunk/Source/NSObject.m: In -finalize, we're pretending
to be the Objective-C runtime, so we need to
@ -16,7 +22,7 @@
objects created with
class_createInstance().
2011-08-07 16:56 theraven
2011-08-07 16:56 David Chisnall <theraven@gna.org>
* libs/base/trunk/Source/NSObject.m: When calling -.cxx_dealloc,
look up the superclass before calling. This method

View file

@ -160,12 +160,15 @@ static NSAffineTransformStruct identityTransform = {
if (_isIdentity)
{
CGFloat newTX;
A = aTransform->A;
B = aTransform->B;
C = aTransform->C;
D = aTransform->D;
TX = TX * aTransform->A + TY * aTransform->C + aTransform->TX;
newTX = TX * aTransform->A + TY * aTransform->C + aTransform->TX;
TY = TX * aTransform->B + TY * aTransform->D + aTransform->TY;
TX = newTX;
_isIdentity = NO; // because aTransform is not an identity transform.
_isFlipY = aTransform->_isFlipY;
check();
@ -174,12 +177,15 @@ static NSAffineTransformStruct identityTransform = {
if (_isFlipY)
{
CGFloat newTX;
A = aTransform->A;
B = aTransform->B;
C = -aTransform->C;
D = -aTransform->D;
TX = TX * aTransform->A + TY * aTransform->C + aTransform->TX;
newTX = TX * aTransform->A + TY * aTransform->C + aTransform->TX;
TY = TX * aTransform->B + TY * aTransform->D + aTransform->TY;
TX = newTX;
_isIdentity = NO;
_isFlipY = NO;
check();
@ -280,16 +286,22 @@ static NSAffineTransformStruct identityTransform = {
if (aTransform->_isIdentity)
{
TX = aTransform->TX * A + aTransform->TY * C + TX;
CGFloat newTX;
newTX = aTransform->TX * A + aTransform->TY * C + TX;
TY = aTransform->TX * B + aTransform->TY * D + TY;
TX = newTX;
check();
return;
}
if (aTransform->_isFlipY)
{
TX = aTransform->TX * A + aTransform->TY * C + TX;
TY = aTransform->TX * B + aTransform->TY * D + TY;
CGFloat newTX;
newTX = aTransform->TX * A + aTransform->TY * C + TX;
TY = aTransform->TX * B + aTransform->TY * D + TY;
TX = newTX;
C = -C;
D = -D;
if (_isIdentity)