aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsync
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2014-08-26 01:13:10 -0700
committerKoushik Dutta <koushd@gmail.com>2014-08-26 01:13:15 -0700
commit3f9ececb5057cce5a069651edbc30d5b56a1b836 (patch)
tree438fc36e46f1e96a4289d7ce7cdc8316203eaec6 /AndroidAsync
parentf3213fed8a1f68d8c1c8098f7fc84b318abc7a89 (diff)
downloadAndroidAsync-3f9ececb5057cce5a069651edbc30d5b56a1b836.tar.gz
AndroidAsync-3f9ececb5057cce5a069651edbc30d5b56a1b836.tar.bz2
AndroidAsync-3f9ececb5057cce5a069651edbc30d5b56a1b836.zip
Fix up leaky alloctions.
Diffstat (limited to 'AndroidAsync')
-rw-r--r--AndroidAsync/AndroidAsync-AndroidAsync.iml6
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java3
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java7
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java6
5 files changed, 13 insertions, 11 deletions
diff --git a/AndroidAsync/AndroidAsync-AndroidAsync.iml b/AndroidAsync/AndroidAsync-AndroidAsync.iml
index bf5ba2c..73665c3 100644
--- a/AndroidAsync/AndroidAsync-AndroidAsync.iml
+++ b/AndroidAsync/AndroidAsync-AndroidAsync.iml
@@ -37,22 +37,22 @@
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/test/assets" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/test/src" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
index 9a15cb2..19fd2c3 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java
@@ -174,6 +174,9 @@ public class AsyncNetworkSocket implements AsyncSocket {
pending.add(b);
Util.emitAllData(this, pending);
}
+ else {
+ ByteBufferList.reclaim(b);
+ }
if (closed) {
reportEndPending(null);
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
index 36d087c..0e8ab19 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
@@ -388,10 +388,8 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
// if the handshake is finished, don't send
// 0 bytes of data, since that makes the ssl connection die.
// it wraps a 0 byte package, and craps out.
- if (finishedHandshake && bb.remaining() == 0) {
- mWrapping = false;
- return;
- }
+ if (finishedHandshake && bb.remaining() == 0)
+ break;
remaining = bb.remaining();
try {
ByteBuffer[] arr = bb.getAllArray();
@@ -417,6 +415,7 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
while ((remaining != bb.remaining() || (res != null && res.getHandshakeStatus() == HandshakeStatus.NEED_WRAP)) && mSink.remaining() == 0);
ByteBufferList.reclaim(mWriteTmp);
mWrapping = false;
+ ByteBufferList.reclaim(writeBuf);
}
@Override
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
index 851d77d..3715fb7 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/ResponseCacheMiddleware.java
@@ -416,10 +416,12 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
FileInputStream din = cacheResponse.getBody();
int read = din.read(buffer.array(), buffer.arrayOffset(), buffer.capacity());
if (read == -1) {
+ ByteBufferList.reclaim(buffer);
allowEnd = true;
report(null);
return;
}
+ allocator.track(read);
buffer.limit(read);
pending.add(buffer);
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java b/AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java
index 8ec87f2..3ae1363 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/filter/InflaterInputFilter.java
@@ -36,8 +36,7 @@ public class InflaterInputFilter extends FilteredDataEmitter {
int inflated = mInflater.inflate(output.array(), output.arrayOffset() + output.position(), output.remaining());
output.position(output.position() + inflated);
if (!output.hasRemaining()) {
- output.limit(output.position());
- output.position(0);
+ output.flip();
transformed.add(output);
assert totalRead != 0;
int newSize = output.capacity() * 2;
@@ -48,8 +47,7 @@ public class InflaterInputFilter extends FilteredDataEmitter {
}
ByteBufferList.reclaim(b);
}
- output.limit(output.position());
- output.position(0);
+ output.flip();
transformed.add(output);
Util.emitAllData(this, transformed);