[
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