You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create a %property (with nonatomic, assign) into a hooked class that is of type CGFloat
Attempt to access this property from within the hooked code (i.e. self.MyFloat) on a 32-bit device.
What happens?
The dylib will crash.
What were you expecting to happen?
The dylib accesses the float value as expected.
Any logs, error output, etc?
You might see this in the logs: [NSISRestrictedToZeroMarkerVariable floatValue]: unrecognized selector sent to instance 0x197a33e0
Any other comments?
@uroboro believes that this is due to the way %property is generated for CGFloat values and that is wrongly assumed to be of type float. See: https://github.com/theos/theos/blob/master/bin/lib/Logos/Generator/Base/Property.pm for the definition of a %property that is a CGFloat. My code will run perfectly fine on 64-bit devices (iPhone 6s on 9.3.3, iPhone 6s on 10.2, iPad Air on 9.3.2) but fails on 32-bit devices (iPad 4 on 9.3.3).
What versions of software are you using?
Operating System: 9.3.3 (iPad3,4 with Home Depot jailbreak)
Toolchain Version: 9.3
SDK Version: 9.3
The text was updated successfully, but these errors were encountered:
We discussed this when it was filed – +[NSValue valueWithBytes:objCType:] and -[NSValue getValue:] were brought up as a way we can store primitive values generically. As we know the exact type, we can get back exactly what was stored rather than approximating it with NSNumber like we do now.
What are the steps to reproduce this issue?
What happens?
The dylib will crash.
What were you expecting to happen?
The dylib accesses the float value as expected.
Any logs, error output, etc?
You might see this in the logs:
[NSISRestrictedToZeroMarkerVariable floatValue]: unrecognized selector sent to instance 0x197a33e0
Any other comments?
@uroboro believes that this is due to the way %property is generated for CGFloat values and that is wrongly assumed to be of type float. See: https://github.com/theos/theos/blob/master/bin/lib/Logos/Generator/Base/Property.pm for the definition of a %property that is a CGFloat. My code will run perfectly fine on 64-bit devices (iPhone 6s on 9.3.3, iPhone 6s on 10.2, iPad Air on 9.3.2) but fails on 32-bit devices (iPad 4 on 9.3.3).
What versions of software are you using?
Operating System: 9.3.3 (iPad3,4 with Home Depot jailbreak)
Toolchain Version: 9.3
SDK Version: 9.3
The text was updated successfully, but these errors were encountered: