You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Alex Harui (JIRA)" <ji...@apache.org> on 2012/11/28 06:28:58 UTC

[jira] [Closed] (FLEX-33280) [iOS] Packager compiles boolean condition incorrectly after loop break

     [ 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