From 28af51b156ef5734da023594ed7fdaa7f8c23ea2 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Sat, 15 Dec 2012 05:07:03 +0000
Subject: [PATCH] SLIP classes don't need to depend on SLTP classes.

---
 .../src/net/sf/briar/reliability/ReliabilityLayerImpl.java  | 6 +++---
 briar-core/src/net/sf/briar/reliability/SlipDecoder.java    | 5 +++--
 briar-core/src/net/sf/briar/reliability/SlipEncoder.java    | 1 -
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
index 7b17ba877d..ed1df1a1a7 100644
--- a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
@@ -45,7 +45,7 @@ class ReliabilityLayerImpl implements ReliabilityLayer, WriteHandler {
 		SlipEncoder encoder = new SlipEncoder(this);
 		final Sender sender = new Sender(clock, encoder);
 		receiver = new Receiver(clock, sender);
-		decoder = new SlipDecoder(receiver);
+		decoder = new SlipDecoder(receiver, Data.MAX_LENGTH);
 		inputStream = new ReceiverInputStream(receiver);
 		outputStream = new SenderOutputStream(sender);
 		running = true;
@@ -97,12 +97,12 @@ class ReliabilityLayerImpl implements ReliabilityLayer, WriteHandler {
 		return outputStream;
 	}
 
-	// The transport calls this method to pass data up to the SLIP decoder
+	// The lower layer calls this method to pass data up to the SLIP decoder
 	public void handleRead(byte[] b) throws IOException {
 		if(running) decoder.handleRead(b);
 	}
 
-	// The SLIP encoder calls this method to pass data down to the transport
+	// The SLIP encoder calls this method to pass data down to the lower layer
 	public void handleWrite(byte[] b) {
 		if(running && b.length > 0) writes.add(b);
 	}
diff --git a/briar-core/src/net/sf/briar/reliability/SlipDecoder.java b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java
index cfe3a464e9..3d210139b4 100644
--- a/briar-core/src/net/sf/briar/reliability/SlipDecoder.java
+++ b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java
@@ -11,13 +11,14 @@ class SlipDecoder implements ReadHandler {
 	private static final byte TEND = (byte) 220, TESC = (byte) 221;
 
 	private final ReadHandler readHandler;
+	private final byte[] buf;
 
-	private byte[] buf = new byte[Data.MAX_LENGTH];
 	private int decodedLength = 0;
 	private boolean escape = false;
 
-	SlipDecoder(ReadHandler readHandler) {
+	SlipDecoder(ReadHandler readHandler, int maxDecodedLength) {
 		this.readHandler = readHandler;
+		buf = new byte[maxDecodedLength];
 	}
 
 	public void handleRead(byte[] b) throws IOException {
diff --git a/briar-core/src/net/sf/briar/reliability/SlipEncoder.java b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java
index 4f2459779a..3cc6d6474c 100644
--- a/briar-core/src/net/sf/briar/reliability/SlipEncoder.java
+++ b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java
@@ -17,7 +17,6 @@ class SlipEncoder implements WriteHandler {
 	}
 
 	public void handleWrite(byte[] b) throws IOException {
-		if(b.length > Data.MAX_LENGTH) throw new IllegalArgumentException();
 		int encodedLength = b.length + 2;
 		for(int i = 0; i < b.length; i++)
 			if(b[i] == END || b[i] == ESC) encodedLength++;
-- 
GitLab