Author: toad
Date: 2008-01-18 12:40:10 +0000 (Fri, 18 Jan 2008)
New Revision: 17129

Modified:
   trunk/freenet/src/freenet/client/async/SingleFileInserter.java
Log:
Free the compressed data once we have inserted it.

Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-01-18 12:35:52 UTC (rev 17128)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-01-18 12:40:10 UTC (rev 17129)
@@ -196,8 +196,11 @@
                                throw new Error(e);
                        }
                }
-               if(bestCompressedData != null)
+               boolean freeData = false;
+               if(bestCompressedData != null) {
                        data = bestCompressedData;
+                       freeData = true;
+               }

                if(parent == cb) {
                        if(tryCompress)
@@ -273,13 +276,13 @@
                // insert it. Then when the splitinserter has finished, and the
                // metadata insert has finished too, tell the master callback.
                if(reportMetadataOnly) {
-                       SplitFileInserter sfi = new SplitFileInserter(parent, 
cb, data, bestCodec, origSize, block.clientMetadata, ctx, getCHKOnly, metadata, 
token, insertAsArchiveManifest, false);
+                       SplitFileInserter sfi = new SplitFileInserter(parent, 
cb, data, bestCodec, origSize, block.clientMetadata, ctx, getCHKOnly, metadata, 
token, insertAsArchiveManifest, freeData);
                        cb.onTransition(this, sfi);
                        sfi.start();
                        if(earlyEncode) sfi.forceEncode();
                } else {
                        SplitHandler sh = new SplitHandler();
-                       SplitFileInserter sfi = new SplitFileInserter(parent, 
sh, data, bestCodec, origSize, block.clientMetadata, ctx, getCHKOnly, metadata, 
token, insertAsArchiveManifest, false);
+                       SplitFileInserter sfi = new SplitFileInserter(parent, 
sh, data, bestCodec, origSize, block.clientMetadata, ctx, getCHKOnly, metadata, 
token, insertAsArchiveManifest, freeData);
                        sh.sfi = sfi;
                        cb.onTransition(this, sh);
                        sfi.start();


Reply via email to