[freenet-cvs] r11930 - trunk/freenet/src/freenet/client

nextgens at freenetproject.org nextgens at freenetproject.org
Wed Feb 28 19:05:45 UTC 2007


Author: nextgens
Date: 2007-02-28 19:05:44 +0000 (Wed, 28 Feb 2007)
New Revision: 11930

Modified:
   trunk/freenet/src/freenet/client/InsertBlock.java
Log:
Better that way : prevent possible double-free.

Modified: trunk/freenet/src/freenet/client/InsertBlock.java
===================================================================
--- trunk/freenet/src/freenet/client/InsertBlock.java	2007-02-28 18:54:38 UTC (rev 11929)
+++ trunk/freenet/src/freenet/client/InsertBlock.java	2007-02-28 19:05:44 UTC (rev 11930)
@@ -12,12 +12,14 @@
 public class InsertBlock {
 
 	private final Bucket data;
+	private boolean isFreed;
 	public final FreenetURI desiredURI;
 	public final ClientMetadata clientMetadata;
 	
 	public InsertBlock(Bucket data, ClientMetadata metadata, FreenetURI desiredURI) {
 		if(data == null) throw new NullPointerException();
 		this.data = data;
+		this.isFreed = false;
 		if(metadata == null)
 			clientMetadata = new ClientMetadata();
 		else
@@ -26,10 +28,11 @@
 	}
 	
 	public Bucket getData() {
-		return data;
+		return (isFreed ? null : data);
 	}
 	
-	public void free(){
+	public synchronized void free(){
+		isFreed = true;
 		data.free();
 	}
 }




More information about the cvs mailing list