You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Alex Harui <ah...@adobe.com.INVALID> on 2018/04/30 00:06:43 UTC

Re: [royale-asjs] branch develop updated: ClassSelectorList: Fix issue with infinite loop in addNames function

Hi Piotr,

Are you sure it is right to remove names that were there before?

-Alex

On 4/29/18, 10:48 AM, "piotrz@apache.org" <pi...@apache.org> wrote:

    This is an automated email from the ASF dual-hosted git repository.
    
    piotrz pushed a commit to branch develop
    in repository https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7Caharui%40adobe.com%7C0fc0bb013c6b498d00cd08d5adf96581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636606209043570512&sdata=1%2FgKb08tPhVJAbGu7lsE1vpep6pjlNwME6i5zHxf65M%3D&reserved=0
    
    
    The following commit(s) were added to refs/heads/develop by this push:
         new 4340b40  ClassSelectorList: Fix issue with infinite loop in addNames function
    4340b40 is described below
    
    commit 4340b40997cf2f445f0a228559146ba88f073c24
    Author: Piotr Zarzycki <pi...@gmail.com>
    AuthorDate: Sun Apr 29 19:48:09 2018 +0200
    
        ClassSelectorList: Fix issue with infinite loop in addNames function
    ---
     .../org/apache/royale/utils/ClassSelectorList.as   | 38 ++++++++++++++--------
     1 file changed, 24 insertions(+), 14 deletions(-)
    
    diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/ClassSelectorList.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/ClassSelectorList.as
    index 6c35dc3..79c1b34 100644
    --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/ClassSelectorList.as
    +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/ClassSelectorList.as
    @@ -59,6 +59,9 @@ package org.apache.royale.utils
             /**
              * Add a class selector to the list.
              * @param name Name of selector to remove.
    +         *
    +         * @royaleignorecoercion HTMLElement
    +         * @royaleignorecoercion DOMTokenList
              */
             public function remove(name:String):void
             {
    @@ -95,27 +98,34 @@ package org.apache.royale.utils
              * Add a space-separated list of names.
              * @param names Space-separated list of names to add.
              * @royaleignorecoercion HTMLElement
    +         * @royaleignorecoercion DOMTokenList
              */
             public function addNames(names:String):void
             {
                 COMPILE::JS
                 {
    -            var positioner:HTMLElement = component.positioner as HTMLElement;
    -            var classList:DOMTokenList = positioner.classList;
    -            if (component.parent)
    -            {
    -                // remove names that were set last time
    -                while (count > 0)
    +                var positioner:HTMLElement = component.positioner as HTMLElement;
    +                var classList:DOMTokenList = positioner.classList;
    +                if (component.parent)
                     {
    -                    var name:String = classList.item(startIndex);
    -                    classList.remove(name);
    +                    // remove names that were set last time
    +                    while (count > 0)
    +                    {
    +                        var name:String = classList.item(startIndex);
    +                        classList.remove(name);
    +                        count = classList.length - startIndex;
    +                    }
                     }
    -            }
    -            if (startIndex > 0)
    -                positioner.className += " " + names;
    -            else
    -                positioner.className = names;
    -            count = classList.length - startIndex;
    +
    +                if (startIndex > 0)
    +                {
    +                    positioner.className += " " + names;
    +                }
    +                else
    +                {
    +                    positioner.className = names;
    +                }
    +                count = classList.length - startIndex;
                 }
             }
         }
    
    -- 
    To stop receiving notification emails like this one, please contact
    piotrz@apache.org.
    


Re: [royale-asjs] branch develop updated: ClassSelectorList: Fix issue with infinite loop in addNames function

Posted by Alex Harui <ah...@adobe.com.INVALID>.
Ah ok.  I was reading the diff incorrectly.

Sorry for the confusion.
-Alex

On 4/29/18, 11:57 PM, "Piotr Zarzycki" <pi...@gmail.com> wrote:

    Alex,
    
    I'm not sure what do you mean. I have added here that line:
    
    count = classList.length - startIndex;
    
    Without it I'm having infinite loop when I use  ClassSelectorList in MDL
    NavigationLayout.
    
    Piotr
    
    2018-04-30 2:06 GMT+02:00 Alex Harui <ah...@adobe.com.invalid>:
    
    > Hi Piotr,
    >
    > Are you sure it is right to remove names that were there before?
    >
    > -Alex
    >
    > On 4/29/18, 10:48 AM, "piotrz@apache.org" <pi...@apache.org> wrote:
    >
    >     This is an automated email from the ASF dual-hosted git repository.
    >
    >     piotrz pushed a commit to branch develop
    >     in repository https://na01.safelinks.protection.outlook.com/?url=
    > https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-
    > asjs.git&data=02%7C01%7Caharui%40adobe.com%7C0fc0bb013c6b498d00cd08d5adf9
    > 6581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
    > 7C636606209043570512&sdata=1%2FgKb08tPhVJAbGu7lsE1vpep6pjlN
    > wME6i5zHxf65M%3D&reserved=0
    >
    >
    >     The following commit(s) were added to refs/heads/develop by this push:
    >          new 4340b40  ClassSelectorList: Fix issue with infinite loop in
    > addNames function
    >     4340b40 is described below
    >
    >     commit 4340b40997cf2f445f0a228559146ba88f073c24
    >     Author: Piotr Zarzycki <pi...@gmail.com>
    >     AuthorDate: Sun Apr 29 19:48:09 2018 +0200
    >
    >         ClassSelectorList: Fix issue with infinite loop in addNames
    > function
    >     ---
    >      .../org/apache/royale/utils/ClassSelectorList.as   | 38
    > ++++++++++++++--------
    >      1 file changed, 24 insertions(+), 14 deletions(-)
    >
    >     diff --git a/frameworks/projects/Core/src/main/royale/org/apache/
    > royale/utils/ClassSelectorList.as b/frameworks/projects/Core/
    > src/main/royale/org/apache/royale/utils/ClassSelectorList.as
    >     index 6c35dc3..79c1b34 100644
    >     --- a/frameworks/projects/Core/src/main/royale/org/apache/
    > royale/utils/ClassSelectorList.as
    >     +++ b/frameworks/projects/Core/src/main/royale/org/apache/
    > royale/utils/ClassSelectorList.as
    >     @@ -59,6 +59,9 @@ package org.apache.royale.utils
    >              /**
    >               * Add a class selector to the list.
    >               * @param name Name of selector to remove.
    >     +         *
    >     +         * @royaleignorecoercion HTMLElement
    >     +         * @royaleignorecoercion DOMTokenList
    >               */
    >              public function remove(name:String):void
    >              {
    >     @@ -95,27 +98,34 @@ package org.apache.royale.utils
    >               * Add a space-separated list of names.
    >               * @param names Space-separated list of names to add.
    >               * @royaleignorecoercion HTMLElement
    >     +         * @royaleignorecoercion DOMTokenList
    >               */
    >              public function addNames(names:String):void
    >              {
    >                  COMPILE::JS
    >                  {
    >     -            var positioner:HTMLElement = component.positioner as
    > HTMLElement;
    >     -            var classList:DOMTokenList = positioner.classList;
    >     -            if (component.parent)
    >     -            {
    >     -                // remove names that were set last time
    >     -                while (count > 0)
    >     +                var positioner:HTMLElement = component.positioner as
    > HTMLElement;
    >     +                var classList:DOMTokenList = positioner.classList;
    >     +                if (component.parent)
    >                      {
    >     -                    var name:String = classList.item(startIndex);
    >     -                    classList.remove(name);
    >     +                    // remove names that were set last time
    >     +                    while (count > 0)
    >     +                    {
    >     +                        var name:String = classList.item(startIndex);
    >     +                        classList.remove(name);
    >     +                        count = classList.length - startIndex;
    >     +                    }
    >                      }
    >     -            }
    >     -            if (startIndex > 0)
    >     -                positioner.className += " " + names;
    >     -            else
    >     -                positioner.className = names;
    >     -            count = classList.length - startIndex;
    >     +
    >     +                if (startIndex > 0)
    >     +                {
    >     +                    positioner.className += " " + names;
    >     +                }
    >     +                else
    >     +                {
    >     +                    positioner.className = names;
    >     +                }
    >     +                count = classList.length - startIndex;
    >                  }
    >              }
    >          }
    >
    >     --
    >     To stop receiving notification emails like this one, please contact
    >     piotrz@apache.org.
    >
    >
    >
    
    
    -- 
    
    Piotr Zarzycki
    
    Patreon: *https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cf0e310dda2fc4e2f577908d5ae67a8ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636606682675509292&sdata=tstX9x6iLTwBNlFyRXv6a%2BDVDQ3yJY63oNF%2BUI%2FYLHE%3D&reserved=0
    <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cf0e310dda2fc4e2f577908d5ae67a8ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636606682675509292&sdata=tstX9x6iLTwBNlFyRXv6a%2BDVDQ3yJY63oNF%2BUI%2FYLHE%3D&reserved=0>*
    


Re: [royale-asjs] branch develop updated: ClassSelectorList: Fix issue with infinite loop in addNames function

Posted by Piotr Zarzycki <pi...@gmail.com>.
Alex,

I'm not sure what do you mean. I have added here that line:

count = classList.length - startIndex;

Without it I'm having infinite loop when I use  ClassSelectorList in MDL
NavigationLayout.

Piotr

2018-04-30 2:06 GMT+02:00 Alex Harui <ah...@adobe.com.invalid>:

> Hi Piotr,
>
> Are you sure it is right to remove names that were there before?
>
> -Alex
>
> On 4/29/18, 10:48 AM, "piotrz@apache.org" <pi...@apache.org> wrote:
>
>     This is an automated email from the ASF dual-hosted git repository.
>
>     piotrz pushed a commit to branch develop
>     in repository https://na01.safelinks.protection.outlook.com/?url=
> https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-
> asjs.git&data=02%7C01%7Caharui%40adobe.com%7C0fc0bb013c6b498d00cd08d5adf9
> 6581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> 7C636606209043570512&sdata=1%2FgKb08tPhVJAbGu7lsE1vpep6pjlN
> wME6i5zHxf65M%3D&reserved=0
>
>
>     The following commit(s) were added to refs/heads/develop by this push:
>          new 4340b40  ClassSelectorList: Fix issue with infinite loop in
> addNames function
>     4340b40 is described below
>
>     commit 4340b40997cf2f445f0a228559146ba88f073c24
>     Author: Piotr Zarzycki <pi...@gmail.com>
>     AuthorDate: Sun Apr 29 19:48:09 2018 +0200
>
>         ClassSelectorList: Fix issue with infinite loop in addNames
> function
>     ---
>      .../org/apache/royale/utils/ClassSelectorList.as   | 38
> ++++++++++++++--------
>      1 file changed, 24 insertions(+), 14 deletions(-)
>
>     diff --git a/frameworks/projects/Core/src/main/royale/org/apache/
> royale/utils/ClassSelectorList.as b/frameworks/projects/Core/
> src/main/royale/org/apache/royale/utils/ClassSelectorList.as
>     index 6c35dc3..79c1b34 100644
>     --- a/frameworks/projects/Core/src/main/royale/org/apache/
> royale/utils/ClassSelectorList.as
>     +++ b/frameworks/projects/Core/src/main/royale/org/apache/
> royale/utils/ClassSelectorList.as
>     @@ -59,6 +59,9 @@ package org.apache.royale.utils
>              /**
>               * Add a class selector to the list.
>               * @param name Name of selector to remove.
>     +         *
>     +         * @royaleignorecoercion HTMLElement
>     +         * @royaleignorecoercion DOMTokenList
>               */
>              public function remove(name:String):void
>              {
>     @@ -95,27 +98,34 @@ package org.apache.royale.utils
>               * Add a space-separated list of names.
>               * @param names Space-separated list of names to add.
>               * @royaleignorecoercion HTMLElement
>     +         * @royaleignorecoercion DOMTokenList
>               */
>              public function addNames(names:String):void
>              {
>                  COMPILE::JS
>                  {
>     -            var positioner:HTMLElement = component.positioner as
> HTMLElement;
>     -            var classList:DOMTokenList = positioner.classList;
>     -            if (component.parent)
>     -            {
>     -                // remove names that were set last time
>     -                while (count > 0)
>     +                var positioner:HTMLElement = component.positioner as
> HTMLElement;
>     +                var classList:DOMTokenList = positioner.classList;
>     +                if (component.parent)
>                      {
>     -                    var name:String = classList.item(startIndex);
>     -                    classList.remove(name);
>     +                    // remove names that were set last time
>     +                    while (count > 0)
>     +                    {
>     +                        var name:String = classList.item(startIndex);
>     +                        classList.remove(name);
>     +                        count = classList.length - startIndex;
>     +                    }
>                      }
>     -            }
>     -            if (startIndex > 0)
>     -                positioner.className += " " + names;
>     -            else
>     -                positioner.className = names;
>     -            count = classList.length - startIndex;
>     +
>     +                if (startIndex > 0)
>     +                {
>     +                    positioner.className += " " + names;
>     +                }
>     +                else
>     +                {
>     +                    positioner.className = names;
>     +                }
>     +                count = classList.length - startIndex;
>                  }
>              }
>          }
>
>     --
>     To stop receiving notification emails like this one, please contact
>     piotrz@apache.org.
>
>
>


-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*