Skip to content

Commit 3f9ecec

Browse files
committed
Fix up leaky alloctions.
1 parent f3213fe commit 3f9ecec

File tree

5 files changed

+13
-11
lines changed

5 files changed

+13
-11
lines changed

AndroidAsync/AndroidAsync-AndroidAsync.iml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,22 @@
3737
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
3838
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
3939
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
40+
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
4041
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
41-
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
4242
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
4343
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
4444
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
4545
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
4646
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
47+
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
4748
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
48-
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
4949
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
5050
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
5151
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
5252
<sourceFolder url="file://$MODULE_DIR$/test/res" type="java-test-resource" />
5353
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
54+
<sourceFolder url="file://$MODULE_DIR$/test/assets" type="java-test-resource" />
5455
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
55-
<sourceFolder url="file://$MODULE_DIR$/test/assets" isTestSource="true" />
5656
<sourceFolder url="file://$MODULE_DIR$/test/src" isTestSource="true" />
5757
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
5858
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />

AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ int onReadable() {
174174
pending.add(b);
175175
Util.emitAllData(this, pending);
176176
}
177+
else {
178+
ByteBufferList.reclaim(b);
179+
}
177180

178181
if (closed) {
179182
reportEndPending(null);

AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,10 +388,8 @@ public void write(ByteBufferList bb) {
388388
// if the handshake is finished, don't send
389389
// 0 bytes of data, since that makes the ssl connection die.
390390
// it wraps a 0 byte package, and craps out.
391-
if (finishedHandshake && bb.remaining() == 0) {
392-
mWrapping = false;
393-
return;
394-
}
391+
if (finishedHandshake && bb.remaining() == 0)
392+
break;
395393
remaining = bb.remaining();
396394
try {
397395
ByteBuffer[] arr = bb.getAllArray();
@@ -417,6 +415,7 @@ public void write(ByteBufferList bb) {
417415
while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0);
418416
ByteBufferList.reclaim(mWriteTmp);
419417
mWrapping = false;
418+
ByteBufferList.reclaim(writeBuf);
420419
}
421420

422421
@Override

AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,10 +416,12 @@ void spewInternal() {
416416
FileInputStream din = cacheResponse.getBody();
417417
int read = din.read(buffer.array(), buffer.arrayOffset(), buffer.capacity());
418418
if (read == -1) {
419+
ByteBufferList.reclaim(buffer);
419420
allowEnd = true;
420421
report(null);
421422
return;
422423
}
424+
allocator.track(read);
423425
buffer.limit(read);
424426
pending.add(buffer);
425427
}

AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ public void onDataAvailable(DataEmitter emitter, ByteBufferList bb) {
3636
int inflated = mInflater.inflate(output.array(), output.arrayOffset() + output.position(), output.remaining());
3737
output.position(output.position() + inflated);
3838
if (!output.hasRemaining()) {
39-
output.limit(output.position());
40-
output.position(0);
39+
output.flip();
4140
transformed.add(output);
4241
assert totalRead != 0;
4342
int newSize = output.capacity() * 2;
@@ -48,8 +47,7 @@ public void onDataAvailable(DataEmitter emitter, ByteBufferList bb) {
4847
}
4948
ByteBufferList.reclaim(b);
5049
}
51-
output.limit(output.position());
52-
output.position(0);
50+
output.flip();
5351
transformed.add(output);
5452

5553
Util.emitAllData(this, transformed);

0 commit comments

Comments
 (0)