mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
* 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:
parent
4ea812deb4
commit
826db719cc
2 changed files with 26 additions and 8 deletions
12
ChangeLog
12
ChangeLog
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue