{"action":"closed","issue":{"url":"https://api.github.com/repos/theos/logos/issues/13","repository_url":"https://api.github.com/repos/theos/logos","labels_url":"https://api.github.com/repos/theos/logos/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/theos/logos/issues/13/comments","events_url":"https://api.github.com/repos/theos/logos/issues/13/events","html_url":"https://github.com/theos/logos/issues/13","id":376918876,"node_id":"MDU6SXNzdWUzNzY5MTg4NzY=","number":13,"title":"CGFloat %property wrongly assumes float, crashes on 32-bit","user":{"login":"joshuaseltzer","id":2706602,"node_id":"MDQ6VXNlcjI3MDY2MDI=","avatar_url":"https://avatars2.githubusercontent.com/u/2706602?v=4","gravatar_id":"","url":"https://api.github.com/users/joshuaseltzer","html_url":"https://github.com/joshuaseltzer","followers_url":"https://api.github.com/users/joshuaseltzer/followers","following_url":"https://api.github.com/users/joshuaseltzer/following{/other_user}","gists_url":"https://api.github.com/users/joshuaseltzer/gists{/gist_id}","starred_url":"https://api.github.com/users/joshuaseltzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshuaseltzer/subscriptions","organizations_url":"https://api.github.com/users/joshuaseltzer/orgs","repos_url":"https://api.github.com/users/joshuaseltzer/repos","events_url":"https://api.github.com/users/joshuaseltzer/events{/privacy}","received_events_url":"https://api.github.com/users/joshuaseltzer/received_events","type":"User","site_admin":false},"labels":[{"id":819122244,"node_id":"MDU6TGFiZWw4MTkxMjIyNDQ=","url":"https://api.github.com/repos/theos/logos/labels/bug","name":"bug","color":"d73a4a","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-03-22T17:36:15Z","updated_at":"2018-11-24T04:17:05Z","closed_at":"2018-11-24T04:17:05Z","author_association":"NONE","body":"What are the steps to reproduce this issue?\r\n-------------------------------------------\r\n1. Create a %property (with nonatomic, assign) into a hooked class that is of type CGFloat\r\n2. Attempt to access this property from within the hooked code (i.e. self.MyFloat) on a 32-bit device.\r\n\r\nWhat happens?\r\n-------------\r\nThe dylib will crash.\r\n\r\nWhat were you expecting to happen?\r\n----------------------------------\r\nThe dylib accesses the float value as expected.\r\n\r\nAny logs, error output, etc?\r\n----------------------------\r\nYou might see this in the logs:\r\n`[NSISRestrictedToZeroMarkerVariable floatValue]: unrecognized selector sent to instance 0x197a33e0`\r\n\r\nAny other comments?\r\n-------------------\r\n@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).\r\n\r\nWhat versions of software are you using?\r\n----------------------------------------\r\n**Operating System:** 9.3.3 (iPad3,4 with Home Depot jailbreak)\r\n\r\n**Toolchain Version:** 9.3\r\n\r\n**SDK Version:** 9.3"}}
{"actor":{"display_login":"uroboro"}}