Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import de.ii.xtraplatform.features.domain.SchemaMappingBase;
import de.ii.xtraplatform.geometries.domain.GeometryType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
Expand All @@ -34,7 +35,7 @@ public class FeatureEventBuffer<
private final FeatureTokenEmitter2<U, V, W> bufferIn;
private final FeatureTokenReader<U, V, W> bufferOut;

private final Vector<Integer> events;
private final int[] events;
private final Vector<List<Integer>> enclosings;
private final Map<String, SchemaMapping> mappings;
private boolean doBuffer;
Expand All @@ -48,7 +49,6 @@ public FeatureEventBuffer(
this.buffer = new ArrayList<>();
this.bufferIn = (FeatureTokenEmitter2<U, V, W>) (this::append);
this.bufferOut = new FeatureTokenReader<>(downstream, context);
this.events = new Vector<>();
this.enclosings = new Vector<>();
this.mappings = mappings;

Expand All @@ -63,7 +63,7 @@ public FeatureEventBuffer(
.orElseThrow()
* 2
+ 2;
events.setSize(maxEvents);
this.events = new int[maxEvents];
enclosings.setSize(maxEvents);
}

Expand All @@ -89,15 +89,15 @@ public void next(int pos, List<Integer> enclosing) {
* @return first index for event position in buffer
*/
private int start(int pos) {
return events.get(pos * 2);
return events[pos * 2];
}

/**
* @param pos event position
* @return length for event position in buffer
*/
private int length(int pos) {
return events.get((pos * 2) + 1);
return events[(pos * 2) + 1];
}

/**
Expand Down Expand Up @@ -132,12 +132,12 @@ private void plus(int pos, int delta) {
private void plus(int pos, int delta, boolean propagate) {
// increase length of pos
int lenPos = (pos * 2) + 1;
events.set(lenPos, events.get(lenPos) + delta);
events[lenPos] += delta;

// increase start of following pos
if (propagate) {
for (int i = (pos + 1) * 2; i < events.size(); i += 2) {
events.set(i, events.get(i) + delta);
for (int i = (pos + 1) * 2; i < events.length; i += 2) {
events[i] += delta;
}
}
}
Expand Down Expand Up @@ -167,7 +167,7 @@ void append(Object token) {
}

void reset(String type) {
Collections.fill(events, 0);
Arrays.fill(events, 0);

if (!Objects.equals(lastType, type)) {
Collections.fill(enclosings, List.of());
Expand Down
Loading