Skip to content

Commit 82e40ed

Browse files
Gaspard Petitjyemin
authored andcommitted
Allocating BsonArray using capacity when known
JAVA-3613 Signed-off-by: Gaspard Petit <[email protected]>
1 parent 55ca500 commit 82e40ed

File tree

5 files changed

+7
-7
lines changed

5 files changed

+7
-7
lines changed

bson/src/main/org/bson/BsonArray.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ public String toString() {
243243

244244
@Override
245245
public BsonArray clone() {
246-
BsonArray to = new BsonArray();
246+
BsonArray to = new BsonArray(this.size());
247247
for (BsonValue cur : this) {
248248
switch (cur.getBsonType()) {
249249
case DOCUMENT:

driver-core/src/main/com/mongodb/TaggableReadPreference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ protected List<ServerDescription> chooseForReplicaSet(final ClusterDescription c
545545
}
546546

547547
private BsonArray tagsListToBsonArray() {
548-
BsonArray bsonArray = new BsonArray();
548+
BsonArray bsonArray = new BsonArray(tagSetList.size());
549549
for (TagSet tagSet : tagSetList) {
550550
bsonArray.add(toDocument(tagSet));
551551
}

driver-core/src/main/com/mongodb/client/model/Filters.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ public static Bson geoWithinBox(final String fieldName, final double lowerLeftX,
648648
* @since 3.1
649649
*/
650650
public static Bson geoWithinPolygon(final String fieldName, final List<List<Double>> points) {
651-
BsonArray pointsArray = new BsonArray();
651+
BsonArray pointsArray = new BsonArray(points.size());
652652
for (List<Double> point : points) {
653653
pointsArray.add(new BsonArray(asList(new BsonDouble(point.get(0)), new BsonDouble(point.get(1)))));
654654
}
@@ -1231,7 +1231,7 @@ public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentCl
12311231
Map.Entry<String, BsonValue> entry = filterDocument.entrySet().iterator().next();
12321232
return createFilter(entry.getKey(), entry.getValue());
12331233
} else {
1234-
BsonArray values = new BsonArray();
1234+
BsonArray values = new BsonArray(filterDocument.size());
12351235
for (Map.Entry<String, BsonValue> docs : filterDocument.entrySet()) {
12361236
values.add(new BsonDocument(docs.getKey(), docs.getValue()));
12371237
}

driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnectionInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ private BsonDocument createIsMasterCommand(final Authenticator authenticator, fi
162162
isMasterCommandDocument.append("client", clientMetadataDocument);
163163
}
164164
if (!requestedCompressors.isEmpty()) {
165-
BsonArray compressors = new BsonArray();
165+
BsonArray compressors = new BsonArray(this.requestedCompressors.size());
166166
for (MongoCompressor cur : this.requestedCompressors) {
167167
compressors.add(new BsonString(cur.getName()));
168168
}

driver-core/src/main/com/mongodb/internal/connection/KillCursorProtocol.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public void setCommandListener(final CommandListener commandListener) {
140140
}
141141

142142
private BsonDocument asCommandDocument() {
143-
BsonArray array = new BsonArray();
143+
BsonArray array = new BsonArray(cursors.size());
144144
for (long cursor : cursors) {
145145
array.add(new BsonInt64(cursor));
146146
}
@@ -149,7 +149,7 @@ private BsonDocument asCommandDocument() {
149149
}
150150

151151
private BsonDocument asCommandResponseDocument() {
152-
BsonArray cursorIdArray = new BsonArray();
152+
BsonArray cursorIdArray = new BsonArray(cursors.size());
153153
for (long cursorId : cursors) {
154154
cursorIdArray.add(new BsonInt64(cursorId));
155155
}

0 commit comments

Comments
 (0)