Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  *        JacORB - a free Java ORB
  *
  *   Copyright (C) 1999-2012 Gerald Brose / The JacORB Team.
  *
  *   This library is free software; you can redistribute it and/or
  *   modify it under the terms of the GNU Library General Public
  *   License as published by the Free Software Foundation; either
  *   version 2 of the License, or (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *   Library General Public License for more details.
 *
 *   You should have received a copy of the GNU Library General Public
 *   License along with this library; if not, write to the Free
 *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */
package org.jacorb.collection.util;

Author(s):
Gerald Brose
public class ArrayFactory
    private static final int MAX = 16;
    private static final int MIN_OFFSET = 4;
    private static final int THREASHOLD = 16;
    private static DynArray [] pool = new DynArray ];
    static
    {
        forint i = i > 0;)
        {
            [--i]=new DynArray();
        }
    }
    private final static int log2(int n){
        int l =0;
        int nn = n-1;
        while( (nn >>l) != 0 )
        {
            l++;
        }
        return l;
    }
    public static void release()
    {
        forint ii > 0; )
        {
            i--;
            [i].removeAllElements();
        }
    }
    public static synchronized Object [] get_arrayint capacity ){
        int log = 0;
        ifcapacity != 0 )
        {
            log = log2(capacity);
        }
        DynArray v[log >  ? log- : 0 ];
        if( ! v.isEmpty() )
        {
            Object o = v.lastElement();
            v.removeElementAt(v.size()-1);
            return (Object [])o;
        }
        return new Object[log >  ? 1<<log : 1 <<  ];
    }
    public static synchronized void free_arrayObject [] current ){
        int log_curr = log2(current.length);
        iflog_curr- < . )
        {
            clear_arraycurrent );
            DynArray v = log_curr- ];
            ifv.size() <  )
            {
                v.addElementcurrent );
            }
        }
    }
    private static void clear_arrayObject [] current ){
        forint i=current.length;i>0;)
        {
            current[--i] = null;
        }
    }
New to GrepCode? Check out our FAQ X