[ https://issues.apache.org/jira/browse/FLEX-33280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Harui closed FLEX-33280. ----------------------------- Resolution: Invalid Assignee: Alex Harui Unfortunately, the IOS packager is part of the Adobe AIR SDK and external to Apache Flex. Assuming the test case doesn't fail on Android or other Flash/AIR situations, you will have to file a bug against Adobe. > [iOS] Packager compiles boolean condition incorrectly after loop break > ---------------------------------------------------------------------- > > Key: FLEX-33280 > URL: https://issues.apache.org/jira/browse/FLEX-33280 > Project: Apache Flex > Issue Type: Bug > Components: .Unspecified - Compiler, Installation & Packaging > Affects Versions: Adobe Flex SDK 4.6 (Release) > Environment: Windows 7 Ultimate > Adobe Flex SDK 4.6 (build 23201, includes Adobe AIR 3.4 SDK) > Flash Builder 4.5.1.313231 > iPad 3 (running iOS6.0) / iPad 2 (running iOS6.0) > Reporter: Ben Crowl > Assignee: Alex Harui > Labels: ios, packaging > Attachments: BasicMobile.zip > > > ActionScript codes executes unexpectedly when compiled with Ad-Hoc packaging > type, using the Flex Packager for iOS. > The attached sample program contains a for each loop within another for each > loop, that is used to compare two lists of integers. At the start of the > outer loop, a variable named "matched" is set to false. > When a match is found in the inner loop, matched is assigned the value true, > and the inner loop issues a break command to early-exit the loop. > Following the inner loop, an if statement checks the value of the boolean > variable, like so: > if (matched == false) > { > ... > } > When the code is execute as an adhoc iOS release build on an iPad 3, the code > within the if statement is executed even when matched == true. > Changing the code to the following, works as expected: > if (!matched) > { > ... > } > Steps to reproduce: > 1) Run the attached BasicMobile project in the AIR simulator on your desktop > 2) The expected result is: > 1. Using matched == false > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > Loop > MATCHED: 3, 3 > Loop > UNMATCHED: 4 > 2. Using !matched > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > Loop > MATCHED: 3, 3 > Loop > UNMATCHED: 4 > 3. Using no break > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > Loop > MATCHED: 3, 3 > Loop > UNMATCHED: 4 > 3) Now export a release build for the same project to Apple iOS, using Ad Hoc > packaging type. > 4) Install the app on an iPad or iPhone > 5) Run the app. The result is: > 1. Using matched == false > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > UNMATCHED: 2 > Loop > MATCHED: 3, 3 > UNMATCHED: 3 > Loop > UNMATCHED: 4 > 2. Using !matched > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > Loop > MATCHED: 3, 3 > Loop > UNMATCHED: 4 > 3. Using !matched > --------------------------- > Loop > UNMATCHED: 0 > Loop > UNMATCHED: 1 > Loop > MATCHED: 2, 2 > Loop > MATCHED: 3, 3 > Loop > UNMATCHED: 4 > Notice how in the Adhoc release version, the first case "1. Using matched == > false" reports MATCHED and UNMATCHED for items 2 and 3. This indicates that > the boolean variable "matched" is passing the test == false, even when its > value has been set to true. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira