Skip to content

Commit

Permalink
Remove minor redundant array casting and logic
Browse files Browse the repository at this point in the history
  • Loading branch information
PseudoKnight committed Feb 11, 2018
1 parent 87330f8 commit 628dd3b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
10 changes: 6 additions & 4 deletions src/main/java/com/laytonsmith/core/constructs/CArray.java
Expand Up @@ -289,12 +289,14 @@ public void push(Construct c, Integer index, Target t) throws IllegalArgumentExc
*/
@Override
public Set<Construct> keySet() {
Set<Construct> set = !associative_mode ? new LinkedHashSet<>(array.size()) : new LinkedHashSet<>(associative_array.size());
Set<Construct> set;
if(!associative_mode) {
set = new LinkedHashSet<>(array.size());
for(int i = 0; i < array.size(); i++) {
set.add(new CInt(i, Target.UNKNOWN));
}
} else {
set = new LinkedHashSet<>(associative_array.size());
for(String key : associative_array.keySet()) {
set.add(new CString(key, Target.UNKNOWN));
}
Expand All @@ -309,15 +311,15 @@ public Set<Construct> keySet() {
* @return
*/
public Set<String> stringKeySet() {
Set<String> set = !associative_mode ? new LinkedHashSet<>(array.size()) : new HashSet<>(associative_array.size());
if(!associative_mode) {
Set<String> set = new LinkedHashSet<>(array.size());
for(int i = 0; i < array.size(); i++) {
set.add(Integer.toString(i));
}
return set;
} else {
set = associative_array.keySet();
return associative_array.keySet();
}
return set;
}

private void setAssociative() {
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/com/laytonsmith/core/functions/ArrayHandling.java
Expand Up @@ -437,7 +437,7 @@ public Construct exec(Target t, Environment env, Construct... args) throws Confi
CArray array = (CArray) args[0];
int initialSize = (int) array.size();
for(int i = 1; i < args.length; i++) {
((CArray) args[0]).push(args[i], t);
array.push(args[i], t);
for(ArrayAccess.ArrayAccessIterator iterator : env.getEnv(GlobalEnv.class).GetArrayAccessIteratorsFor(((ArrayAccess) args[0]))) {
//This is always pushing after the current index.
//Given that this is the last one, we don't need to waste
Expand Down Expand Up @@ -846,17 +846,16 @@ public Boolean runAsync() {
@Override
public Construct exec(Target t, Environment env, Construct... args) throws ConfigRuntimeException {
if(args[0] instanceof CArray) {
if(!((CArray) args[0]).inAssociativeMode()) {
CArray ca = (CArray) args[0];
if(!ca.inAssociativeMode()) {
try {
int index = Static.getInt32(args[1], t);
CArray ca = (CArray) args[0];
return CBoolean.get(index <= ca.size() - 1);
return CBoolean.get(index < ca.size());
} catch (ConfigRuntimeException e) {
//They sent a key that is a string. Obviously it doesn't exist.
//They probably sent a key that can't be translated into an int, so it doesn't exist here.
return CBoolean.FALSE;
}
} else {
CArray ca = (CArray) args[0];
return CBoolean.get(ca.containsKey(args[1].val()));
}
} else {
Expand Down

0 comments on commit 628dd3b

Please sign in to comment.