Author: j16sdiz
Date: 2009-04-23 08:55:29 +0000 (Thu, 23 Apr 2009)
New Revision: 27240
Modified:
trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
Log:
Factor out freeBucketsArray()
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-04-23 08:55:06 UTC (rev 27239)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-04-23 08:55:29 UTC (rev 27240)
@@ -540,39 +540,15 @@
}
if(removeOnEncode) {
if(logMINOR) Logger.minor(this, "Removing on encode:
"+this);
- for(int i=0;i<dataBuckets.length;i++) {
- if(dataBuckets[i] == null) continue;
- dataBuckets[i].free();
- if(persistent)
- dataBuckets[i].removeFrom(container);
- dataBuckets[i] = null;
- }
- for(int i=0;i<checkBuckets.length;i++) {
- if(checkBuckets[i] == null) continue;
- checkBuckets[i].free();
- if(persistent)
- checkBuckets[i].removeFrom(container);
- checkBuckets[i] = null;
- }
+ freeBucketsArray(container, dataBuckets);
+ freeBucketsArray(container, checkBuckets);
removeFrom(container, context);
return;
}
if(fin) {
Logger.error(this, "Encoded segment even though segment
finished! Freeing buckets...");
- for(int i=0;i<dataBuckets.length;i++) {
- if(dataBuckets[i] == null) continue;
- dataBuckets[i].free();
- if(persistent)
- dataBuckets[i].removeFrom(container);
- dataBuckets[i] = null;
- }
- for(int i=0;i<checkBuckets.length;i++) {
- if(checkBuckets[i] == null) continue;
- checkBuckets[i].free();
- if(persistent)
- checkBuckets[i].removeFrom(container);
- checkBuckets[i] = null;
- }
+ freeBucketsArray(container, dataBuckets);
+ freeBucketsArray(container, checkBuckets);
return;
}
// Start the inserts
@@ -622,16 +598,7 @@
parent.encodedSegment(this, container, context);
synchronized (this) {
- for (int i = 0; i < dataBlocks.length; i++) {
- if (dataFinished[i] && dataBlocks[i] != null) {
- if(logMINOR) Logger.minor(this,
"Freeing data block "+i+" delayed for encode");
- if(persistent)
container.activate(dataBlocks[i], 1);
- dataBlocks[i].free();
- if(persistent)
-
dataBlocks[i].removeFrom(container);
- dataBlocks[i] = null;
- }
- }
+ freeBucketsArray(container, dataBlocks);
}
if(persistent) {
@@ -662,20 +629,9 @@
container.store(this);
}
parent.segmentFinished(this, container, context);
- for(int i=0;i<dataBlocks.length;i++) {
- if(dataBlocks[i] == null) continue;
- container.activate(dataBlocks[i], 1);
- dataBlocks[i].free();
- dataBlocks[i].removeFrom(container);
- dataBlocks[i] = null;
- }
- for(int i=0;i<checkBlocks.length;i++) {
- if(checkBlocks[i] == null) continue;
- container.activate(checkBlocks[i], 1);
- checkBlocks[i].free();
- checkBlocks[i].removeFrom(container);
- checkBlocks[i] = null;
- }
+
+ freeBucketsArray(container, dataBlocks);
+ freeBucketsArray(container, checkBlocks);
}
/**
@@ -701,20 +657,9 @@
}
unregister(container, context);
parent.segmentFinished(this, container, context);
- for(int i=0;i<dataBlocks.length;i++) {
- if(dataBlocks[i] == null) continue;
- container.activate(dataBlocks[i], 1);
- dataBlocks[i].free();
- dataBlocks[i].removeFrom(container);
- dataBlocks[i] = null;
- }
- for(int i=0;i<checkBlocks.length;i++) {
- if(checkBlocks[i] == null) continue;
- container.activate(checkBlocks[i], 1);
- checkBlocks[i].free();
- checkBlocks[i].removeFrom(container);
- checkBlocks[i] = null;
- }
+
+ freeBucketsArray(container, dataBlocks);
+ freeBucketsArray(container, checkBlocks);
}
private void onEncode(int x, ClientCHK key, ObjectContainer container,
ClientContext context) {
@@ -817,20 +762,8 @@
container.activate(parent, 1);
}
parent.segmentFinished(this, container, context);
- for(int i=0;i<dataBlocks.length;i++) {
- if(dataBlocks[i] == null) continue;
- if(persistent) container.activate(dataBlocks[i], 1);
- dataBlocks[i].free();
- if(persistent) dataBlocks[i].removeFrom(container);
- dataBlocks[i] = null;
- }
- for(int i=0;i<checkBlocks.length;i++) {
- if(checkBlocks[i] == null) continue;
- if(persistent) container.activate(checkBlocks[i], 1);
- checkBlocks[i].free();
- if(persistent) checkBlocks[i].removeFrom(container);
- checkBlocks[i] = null;
- }
+ freeBucketsArray(container, dataBlocks);
+ freeBucketsArray(container, checkBlocks);
}
public void onTransition(ClientPutState oldState, ClientPutState
newState, ObjectContainer container) {
@@ -1501,20 +1434,8 @@
encodeJob = null;
}
// parent, putter can deal with themselves
- for(int i=0;i<dataBlocks.length;i++) {
- if(dataBlocks[i] == null) continue;
- container.activate(dataBlocks[i], 1);
- dataBlocks[i].free();
- dataBlocks[i].removeFrom(container);
- dataBlocks[i] = null;
- }
- for(int i=0;i<checkBlocks.length;i++) {
- if(checkBlocks[i] == null) continue;
- container.activate(checkBlocks[i], 1);
- checkBlocks[i].free();
- checkBlocks[i].removeFrom(container);
- checkBlocks[i] = null;
- }
+ freeBucketsArray(container, dataBlocks);
+ freeBucketsArray(container, checkBlocks);
for(ClientCHK chk : dataURIs) {
if(chk != null) {
if(logMINOR) Logger.minor(this, "dataURI is
null on "+this);
@@ -1569,4 +1490,15 @@
return true;
}
+ private void freeBucketsArray(ObjectContainer container, Bucket[]
buckets) {
+ for(int i=0;i<buckets.length;i++) {
+ if(buckets[i] == null) continue;
+ if(persistent)
+ container.activate(buckets[i], 1);
+ buckets[i].free();
+ if(persistent)
+ buckets[i].removeFrom(container);
+ buckets[i] = null;
+ }
+ }
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs