Skip to content

Commit 0dafd39

Browse files
author
Evgueni Driouk
committed
Change from LinkedList to Arrayist for better performance
Fix to #110 Problems with Generator support in Eclipse CMSIS pack manager plugin
1 parent a191e40 commit 0dafd39

59 files changed

Lines changed: 274 additions & 192 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

com.arm.cmsis.config/src/com/arm/cmsis/config/model/ConfigWizardItem.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111

1212
package com.arm.cmsis.config.model;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
15-
import java.util.LinkedList;
16+
import java.util.List;
1617
import java.util.Map;
1718
import java.util.TreeMap;
1819

@@ -47,7 +48,7 @@ public class ConfigWizardItem implements IConfigWizardItem {
4748
private boolean fInvertValue;
4849
private Map<Long, String> fItems;
4950
private Map<String, String> fStrItems;
50-
private LinkedList<IConfigWizardItem> fChildren;
51+
private List<IConfigWizardItem> fChildren;
5152
private String fSelStr;
5253

5354
/**
@@ -69,7 +70,7 @@ public ConfigWizardItem(EItemType itemType, int line, IConfigWizardItem parent)
6970
fSpinStep = 0;
7071
fItems = new TreeMap<>();
7172
fStrItems = new TreeMap<>();
72-
fChildren = new LinkedList<>();
73+
fChildren = new ArrayList<>();
7374
}
7475

7576
@Override
@@ -312,10 +313,10 @@ public Collection<IConfigWizardItem> getChildren() {
312313

313314
@Override
314315
public IConfigWizardItem getLastChild() {
315-
if (fChildren == null || fChildren.size() == 0) {
316+
if (fChildren == null || fChildren.isEmpty()) {
316317
return null;
317318
}
318-
return fChildren.getLast();
319+
return fChildren.get(fChildren.size() - 1);
319320
}
320321

321322
@Override

com.arm.cmsis.config/src/com/arm/cmsis/parser/ConfigWizardScanner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212

1313
package com.arm.cmsis.parser;
1414

15+
import java.util.ArrayList;
1516
import java.util.Collection;
1617
import java.util.LinkedHashMap;
17-
import java.util.LinkedList;
1818
import java.util.Map;
1919
import java.util.regex.Pattern;
2020

@@ -69,7 +69,7 @@ protected boolean removeEldestEntry(Map.Entry<Integer, Boolean> eldest) {
6969

7070
public ConfigWizardScanner(boolean isAsmFile) {
7171
isAsm = isAsmFile;
72-
Collection<IRule> rules = new LinkedList<>();
72+
Collection<IRule> rules = new ArrayList<>();
7373

7474
// Comment rules
7575
rules.add(new CommentRule("//", new Token(CONFIG_COMMENT))); //$NON-NLS-1$

com.arm.cmsis.pack.build.armcc/src/com/arm/cmsis/pack/build/armcc/ArmccToolChainAdapter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
package com.arm.cmsis.pack.build.armcc;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
1516
import java.util.Iterator;
16-
import java.util.LinkedList;
1717
import java.util.List;
1818

1919
import org.eclipse.cdt.managedbuilder.core.BuildException;
@@ -338,7 +338,7 @@ protected Collection<String> getStringListValue(IBuildSettings buildSettings, in
338338
return null;
339339
case ARMCC5_ASMDEFINES_OPTION:
340340
case IBuildSettings.ADEFINES_OPTION: {
341-
List<String> asmDefines = new LinkedList<String>();
341+
List<String> asmDefines = new ArrayList<String>();
342342
if (oType == ARMCC5_ASMDEFINES_OPTION)
343343
oType = IBuildSettings.RTE_DEFINES; // change to key used in buildSettings
344344
Collection<String> defines = buildSettings.getStringListValue(oType);
@@ -368,7 +368,7 @@ protected Collection<String> getStringListValue(IBuildSettings buildSettings, in
368368
Collection<String> value = super.getStringListValue(buildSettings, oType);
369369
if (rteValue != null && !rteValue.isEmpty()) {
370370
if (value == null) {
371-
value = new LinkedList<>();
371+
value = new ArrayList<>();
372372
}
373373
for (String s : rteValue) {
374374
value.add(CmsisConstants.CMSIS_RTE_VAR + s);
@@ -382,7 +382,7 @@ protected Collection<String> getRteStringListValue(IBuildSettings buildSettings,
382382
switch (oType) {
383383
case IBuildSettings.ADEFINES_OPTION:
384384
case ARMCC5_ASMDEFINES_OPTION: {
385-
List<String> asmDefines = new LinkedList<String>();
385+
List<String> asmDefines = new ArrayList<String>();
386386
if (oType == ARMCC5_ASMDEFINES_OPTION)
387387
oType = IBuildSettings.RTE_DEFINES; // change to key used in buildSettings
388388
Collection<String> defines = buildSettings.getStringListValue(oType);

com.arm.cmsis.pack.build.armgcc/src/com/arm/cmsis/pack/build/armgcc/ArmGccToolChainAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
package com.arm.cmsis.pack.build.armgcc;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
15-
import java.util.LinkedList;
1616
import java.util.List;
1717

1818
import org.eclipse.cdt.managedbuilder.core.BuildException;
@@ -158,7 +158,7 @@ protected Collection<String> getStringListValue(IBuildSettings buildSettings, in
158158
return null; // we add libraries as objects => ignore libs and lib paths
159159
} else if (type == IBuildSettings.RTE_OBJECTS) {
160160
Collection<String> objs = buildSettings.getStringListValue(IBuildSettings.RTE_OBJECTS);
161-
List<String> value = new LinkedList<String>();
161+
List<String> value = new ArrayList<String>();
162162
if (objs != null && !objs.isEmpty())
163163
value.addAll(objs);
164164
Collection<String> libs = buildSettings.getStringListValue(IBuildSettings.RTE_LIBRARIES);

com.arm.cmsis.pack.build.gnuarmeclipse/src/com/arm/cmsis/pack/build/gnuarmeclipse/GnuarmeclipseToolChainAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
package com.arm.cmsis.pack.build.gnuarmeclipse;
1414

15+
import java.util.ArrayList;
1516
import java.util.Collection;
16-
import java.util.LinkedList;
1717
import java.util.List;
1818

1919
import org.eclipse.cdt.managedbuilder.core.IOption;
@@ -131,7 +131,7 @@ protected Collection<String> getStringListValue(IBuildSettings buildSettings, in
131131
} else if (type == IBuildSettings.RTE_DEFINES) {
132132
// escape defines by adding "${cmsis_rte}" prefix
133133
Collection<String> defines = buildSettings.getStringListValue(IBuildSettings.RTE_DEFINES);
134-
List<String> value = new LinkedList<String>();
134+
List<String> value = new ArrayList<String>();
135135
if (defines != null && !defines.isEmpty()) {
136136
for (String s : defines) {
137137
value.add(CmsisConstants.CMSIS_RTE_VAR + s);
@@ -141,7 +141,7 @@ protected Collection<String> getStringListValue(IBuildSettings buildSettings, in
141141

142142
} else if (type == IBuildSettings.RTE_OBJECTS) {
143143
Collection<String> objs = buildSettings.getStringListValue(IBuildSettings.RTE_OBJECTS);
144-
List<String> value = new LinkedList<String>();
144+
List<String> value = new ArrayList<String>();
145145
if (objs != null && !objs.isEmpty())
146146
value.addAll(objs);
147147
// add libraries as objects (gcc does not allow to specify libs with

com.arm.cmsis.pack.common/src/com/arm/cmsis/pack/error/CmsisErrorCollection.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
package com.arm.cmsis.pack.error;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
1516
import java.util.Collections;
1617
import java.util.Iterator;
17-
import java.util.LinkedList;
1818
import java.util.List;
1919

2020
import com.arm.cmsis.pack.common.CmsisConstants;
@@ -65,7 +65,7 @@ public void addError(CmsisError e) {
6565
if (e == null)
6666
return;
6767
if (fErrors == null)
68-
fErrors = new LinkedList<>();
68+
fErrors = new ArrayList<>();
6969
fErrors.add(e);
7070
ICmsisConsole console = getCmsisConsole();
7171
if (console != null) {
@@ -99,7 +99,7 @@ public CmsisError getFirstError() {
9999

100100
@Override
101101
public Collection<String> getErrorStrings() {
102-
List<String> errorStrings = new LinkedList<>();
102+
List<String> errorStrings = new ArrayList<>();
103103
for (ICmsisError e : getErrors()) {
104104
errorStrings.add(e.toString());
105105
}

com.arm.cmsis.pack.common/src/com/arm/cmsis/pack/generic/GenericListenerList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
package com.arm.cmsis.pack.generic;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collections;
1516
import java.util.Iterator;
1617
import java.util.LinkedHashSet;
17-
import java.util.LinkedList;
1818
import java.util.List;
1919
import java.util.Set;
2020

@@ -49,7 +49,7 @@ public synchronized void removeAllListeners() {
4949
@Override
5050
public synchronized void notifyListeners(E event) {
5151
// make a copy to avoid add/remove conflicts
52-
List<L> workingList = new LinkedList<>(listeners);
52+
List<L> workingList = new ArrayList<>(listeners);
5353
for (Iterator<? extends L> iterator = workingList.iterator(); iterator.hasNext();) {
5454
if (listeners.isEmpty())
5555
return;

com.arm.cmsis.pack.common/src/com/arm/cmsis/pack/generic/ITreeItem.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.util.ArrayList;
1515
import java.util.Collection;
1616
import java.util.Collections;
17-
import java.util.LinkedList;
1817

1918
/**
2019
* Generic template-based interface for tree like structures
@@ -124,7 +123,7 @@ default <C> Collection<C> getChildrenOfType(Class<C> type) {
124123
if (!hasChildren())
125124
return Collections.emptyList();
126125

127-
LinkedList<C> typedChildren = new LinkedList<>();
126+
ArrayList<C> typedChildren = new ArrayList<>();
128127
for (T child : getChildren()) {
129128
if (type.isInstance(child)) {
130129
typedChildren.add(type.cast(child));
@@ -141,7 +140,7 @@ default <C> Collection<C> getChildrenOfType(Class<C> type) {
141140
*/
142141
default <C> Collection<C> getAllChildrenOfType(Collection<C> allChildren, Class<C> type) {
143142
if (allChildren == null)
144-
allChildren = new LinkedList<>();
143+
allChildren = new ArrayList<>();
145144
if (hasChildren()) {
146145
allChildren.addAll(getChildrenOfType(type)); // add own
147146
for (T c : getChildren()) {

com.arm.cmsis.pack.common/src/com/arm/cmsis/pack/item/CmsisMapItem.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
package com.arm.cmsis.pack.item;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
1516
import java.util.Collections;
16-
import java.util.LinkedList;
1717
import java.util.List;
1818
import java.util.Map;
1919
import java.util.TreeMap;
@@ -109,7 +109,7 @@ public T findChild(List<String> keyPath, boolean useFullPath) {
109109

110110
@Override
111111
public List<String> getKeyPath() {
112-
List<String> keyPath = new LinkedList<>();
112+
List<String> keyPath = new ArrayList<>();
113113
T child = getThisItem();
114114
for (T parent = getParent(); parent != null; parent = parent.getParent()) {
115115
String key = parent.getItemKey(child);

com.arm.cmsis.pack.common/src/com/arm/cmsis/pack/item/CmsisTreeItem.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
package com.arm.cmsis.pack.item;
1313

14+
import java.util.ArrayList;
1415
import java.util.Collection;
1516
import java.util.Collections;
1617
import java.util.Iterator;
17-
import java.util.LinkedList;
1818

1919
import com.arm.cmsis.pack.common.CmsisConstants;
2020
import com.arm.cmsis.pack.utils.WildCards;
@@ -169,7 +169,7 @@ protected Collection<T> children() {
169169
*/
170170
protected Collection<T> createCollection() {
171171
// default creates linkedList
172-
return new LinkedList<>();
172+
return new ArrayList<>();
173173
}
174174

175175
@Override

0 commit comments

Comments
 (0)