Author: nextgens
Date: 2007-03-23 22:55:40 +0000 (Fri, 23 Mar 2007)
New Revision: 12291

Modified:
   trunk/freenet/src/freenet/client/StandardOnionFECCodec.java
Log:
Simplify the constructor of StandardOnionFECCodec a bit. Remove useless 
variables

Modified: trunk/freenet/src/freenet/client/StandardOnionFECCodec.java
===================================================================
--- trunk/freenet/src/freenet/client/StandardOnionFECCodec.java 2007-03-23 
22:44:49 UTC (rev 12290)
+++ trunk/freenet/src/freenet/client/StandardOnionFECCodec.java 2007-03-23 
22:55:40 UTC (rev 12291)
@@ -45,8 +45,7 @@
        private static final Object runningDecodesSync = new Object();
        private static int runningDecodes;

-       private final FECCode encoder;
-       private final FECCode decoder;
+       private final FECCode fec;
        private final int k;
        private final int n;

@@ -91,31 +90,34 @@
        public StandardOnionFECCodec(int k, int n) {
                this.k = k;
                this.n = n;
-               // Best performance, doesn't crash
-               //encoder = FECCodeFactory.getDefault().createFECCode(k,n);
-               FECCode fec;
+               
+               FECCode fec2 = null;
                if(!noNative) {
                        try {
-                               fec = new Native8Code(k,n);
+                               fec2 = new Native8Code(k,n);
                        } catch (Throwable t) {
                                if(!noNative) {
                                        System.err.println("Failed to load 
native FEC: "+t);
                                        t.printStackTrace();
                                }
                                Logger.error(this, "Failed to load native FEC: 
"+t+" (k="+k+" n="+n+ ')', t);
-                               fec = new PureCode(k,n);
+                               
                                if(t instanceof UnsatisfiedLinkError)
                                        noNative = true;
                        }
-               } else {
+               }
+               
+               if (fec2 != null){
+                       fec = fec2;
+               } else  {
                        fec = new PureCode(k,n);
                }
-               encoder = fec;
+
                // revert to below if above causes JVM crashes
                // Worst performance, but decode crashes
-               //decoder = new PureCode(k,n);
+               // fec = new PureCode(k,n);
                // Crashes are caused by bugs which cause to use 320/128 etc. - 
n > 256, k < 256.
-               decoder = encoder;
+
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
        }

@@ -241,7 +243,7 @@
                                        int[] disposableIndexes = new 
int[packetIndexes.length];
                                        System.arraycopy(packetIndexes, 0, 
disposableIndexes, 0,
                                                        packetIndexes.length);
-                                       decoder.decode(packets, 
disposableIndexes);
+                                       fec.decode(packets, disposableIndexes);
                                        // packets now contains an array of 
decoded blocks, in order
                                        // Write the data out
                                        for (int i = 0; i < k; i++) {
@@ -425,7 +427,7 @@
 //                                     Runtime.getRuntime().runFinalization();
                                        long memUsedBeforeStripe = 
Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
                                        if(logMINOR) Logger.minor(this, "Memory 
in use before stripe: "+memUsedBeforeStripe);
-                                       encoder.encode(dataPackets, 
checkPackets, toEncode);
+                                       fec.encode(dataPackets, checkPackets, 
toEncode);
 //                                     Runtime.getRuntime().gc();
 //                                     Runtime.getRuntime().runFinalization();
 //                                     Runtime.getRuntime().gc();


Reply via email to