You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Jim Yu (JIRA)" <ji...@apache.org> on 2009/06/24 11:01:07 UTC
[jira] Closed: (HARMONY-5834) [classlib][luni] ArrayList
growForInsert method code optimization
[ https://issues.apache.org/jira/browse/HARMONY-5834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Yu closed HARMONY-5834.
---------------------------
> [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
> Assignee: Jimmy, Jing Lv
> 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.