harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jim Yu (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-5834) [classlib][luni] ArrayList growForInsert method code optimization
Date Wed, 21 May 2008 03:46:55 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-5834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jim Yu updated HARMONY-5834:
----------------------------

    Attachment: HARMONY-5834.diff

> [classlib][luni] ArrayList growForInsert method code optimization
> -----------------------------------------------------------------
>
>                 Key: HARMONY-5834
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5834
>             Project: Harmony
>          Issue Type: Improvement
>          Components: Classlib
>    Affects Versions: 5.0M6
>            Reporter: Jim Yu
>             Fix For: 5.0M6
>
>         Attachments: HARMONY-5834.diff
>
>
> In ArrayList.java, growForInsert method(line 407):
> [1] if (location < size / 2) {
>             int newFirst = newArray.length - (size + required);
>             // Copy elements after location to the new array skipping inserted elements
>             System.arraycopy(array, location + firstIndex, newArray, location + increment,
>                     size - location);
>             // Copy elements before location to the new array from firstIndex
>             System.arraycopy(array, firstIndex, newArray, newFirst, location);
>             firstIndex = newFirst;
>             lastIndex = newArray.length;
>         } else {
>             System.arraycopy(array, firstIndex, newArray, 0, location);
>             System.arraycopy(array, location + firstIndex, newArray, location + required,
>                     size - location);
>             firstIndex = 0;
>             lastIndex = size + required;
>         }
>      
>     Whether the location is less than size / 2 or not will only affect the allocation
of elements in the new array. 
>     The first case relates to leaving the additional space (when increment is larger
than required)which size is 
>     increment minus required to be at the top of the new array while the second case
relates to leaving it at the bottom.
>     There are two callers which will call growForInsert method. But none of them will
utilize the different allocation 
>     methods mentioned above. If the allocation methods don't make sense, it will only
produce duplicate code.  
>     I just use one allocation method and find it works fine.
>        

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message