From 076e4393f25bf1ad1ff1bd2853153e2b595dd90b Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 28 Aug 2014 21:34:14 +0400 Subject: java-decompiler: post-import cleanup (formatting and copyright) --- .../java/decompiler/util/SFormsFastMapOld.java | 542 +++++++++++---------- 1 file changed, 281 insertions(+), 261 deletions(-) (limited to 'src/org/jetbrains/java/decompiler/util/SFormsFastMapOld.java') diff --git a/src/org/jetbrains/java/decompiler/util/SFormsFastMapOld.java b/src/org/jetbrains/java/decompiler/util/SFormsFastMapOld.java index be3e7b7..834b3b6 100644 --- a/src/org/jetbrains/java/decompiler/util/SFormsFastMapOld.java +++ b/src/org/jetbrains/java/decompiler/util/SFormsFastMapOld.java @@ -1,270 +1,290 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.jetbrains.java.decompiler.util; +import org.jetbrains.java.decompiler.modules.decompiler.exps.VarExprent; + import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; -import org.jetbrains.java.decompiler.modules.decompiler.exps.VarExprent; - public class SFormsFastMapOld { - private List>> lstElements = new ArrayList>>(3); - - { - lstElements.add(new ArrayList>()); - lstElements.add(new ArrayList>()); - lstElements.add(new ArrayList>()); - } - - public SFormsFastMapOld() {} - - public SFormsFastMapOld(SFormsFastMapOld map) { - for(int i=2;i>=0;i--) { - lstElements.set(i, new ArrayList>(map.lstElements.get(i))); - } - } - - public int size() { - int size = 0; - for(int i=2;i>=0;i--) { - size += lstElements.get(i).size(); - } - return size; - } - - public boolean isEmpty() { - - for(int i=2;i>=0;i--) { - if(!lstElements.get(i).isEmpty()) { - return false; - } - } - - return true; - } - - public void put(int key, E value) { - putInternal(key, value, false); - } - - public void remove(int key) { - putInternal(key, null, true); - } - - public void removeAllFields() { - lstElements.get(2).clear(); - } - - public void putInternal(final int key, final E value, boolean remove) { - - int index = 0; - int ikey = key; - if(ikey < 0) { - index = 2; - ikey = -ikey; - } else if(ikey >= VarExprent.STACK_BASE) { - index = 1; - ikey -= VarExprent.STACK_BASE; - } - - ArrayList> lst = lstElements.get(index); - if(ikey >= lst.size()) { - if(remove) { - return; - } else { - ensureCapacity(lst, ikey+1, false); - } - } - - lst.set(ikey, value==null?null:new Entry() { - - private Integer var = key; - private E val = value; - - public Integer getKey() { - return var; - } - - public E getValue() { - return val; - } - - public E setValue(E newvalue) { - val = newvalue; - return null; - }}); - } - - public boolean containsKey(int key) { - return get(key) != null; - } - - public E get(int key) { - - int index = 0; - if(key < 0) { - index = 2; - key = -key; - } else if(key >= VarExprent.STACK_BASE) { - index = 1; - key -= VarExprent.STACK_BASE; - } - - ArrayList> lst = lstElements.get(index); - - Entry ent; - if(key < lst.size() && (ent = lst.get(key)) != null) { - return ent.getValue(); - } - return null; - } - - public void union(SFormsFastMapOld map, IElementsUnion union) { - - for(int i=2;i>=0;i--) { - ArrayList> lstOwn = lstElements.get(i); - ArrayList> lstExtern = map.lstElements.get(i); - - int ownsize = lstOwn.size(); - int externsize = lstExtern.size(); - - int minsize = ownsize>externsize?externsize:ownsize; - - for(int j=minsize-1;j>=0;j--) { - Entry second = lstExtern.get(j); - - if(second != null) { - Entry first = lstOwn.get(j); - - if(first == null) { - putInternal(second.getKey(), union.copy(second.getValue()), false); - } else { - first.setValue(union.union(first.getValue(), second.getValue())); - } - } - } - - if(externsize > minsize) { -// ensureCapacity(lstOwn, externsize, true); -// lstOwn.addAll(lstExtern.subList(minsize, externsize)); - - for(int j=minsize;j second = lstExtern.get(j); -// if(first != null) { -// first.setValue(union.copy(first.getValue())); -// } - - if(second != null) { - putInternal(second.getKey(), union.copy(second.getValue()), false); - } -// lstOwn.add(lstExtern.get(j)); - } - } - } - - } - - public List> entryList() { - List> list = new ArrayList>(); - - for(int i=2;i>=0;i--) { - for(Entry ent : lstElements.get(i)) { - if(ent != null) { - list.add(ent); - } - } - } - - return list; - } - -// public SFormsFastMapIterator iterator() { -// return new SFormsFastMapIterator(); -// } - - private void ensureCapacity(ArrayList> lst, int size, boolean exact) { - - if(!exact) { - int minsize = 2*lst.size()/3 +1; - if(minsize > size) { - size = minsize; - } - } - - lst.ensureCapacity(size); - for(int i=size-lst.size();i>0;i--) { - lst.add(null); - } - } - - public static interface IElementsUnion { - public E union(E first, E second); - public E copy(E element); - } - -// public class SFormsFastMapIterator implements Iterator> { -// -// private int[] pointer = new int[]{0, -1}; -// private int[] next_pointer = null; -// -// private int[] getNextIndex(int list, int index) { -// -// while(list < 3) { -// ArrayList lst = lstElements.get(list); -// -// while(++index < lst.size()) { -// E element = lst.get(index); -// if(element != null) { -// return new int[] {list, index}; -// } -// } -// -// index = -1; -// list++; -// } -// -// return null; -// } -// -// public boolean hasNext() { -// next_pointer = getNextIndex(pointer[0], pointer[1]); -// return (next_pointer != null); -// } -// -// public Entry next() { -// if(next_pointer != null) { -// pointer = next_pointer; -// } else { -// int[] nextpointer = getNextIndex(pointer[0], pointer[1]); -// if(nextpointer != null) { -// pointer = nextpointer; -// } else { -// return null; -// } -// } -// -// next_pointer = null; -// -// return new Entry() { -// public Integer getKey() { -// return null; -// } -// -// public E getValue() { -// return null; -// } -// -// public E setValue(E value) { -// throw new RuntimeException("not implemented!"); -// } -// }; -// //lstElements.get(pointer[0]).get(pointer[1]); -// } -// -// public void remove() { -// throw new RuntimeException("not implemented!"); -// } -// -// } - + private List>> lstElements = new ArrayList>>(3); + + { + lstElements.add(new ArrayList>()); + lstElements.add(new ArrayList>()); + lstElements.add(new ArrayList>()); + } + + public SFormsFastMapOld() { + } + + public SFormsFastMapOld(SFormsFastMapOld map) { + for (int i = 2; i >= 0; i--) { + lstElements.set(i, new ArrayList>(map.lstElements.get(i))); + } + } + + public int size() { + int size = 0; + for (int i = 2; i >= 0; i--) { + size += lstElements.get(i).size(); + } + return size; + } + + public boolean isEmpty() { + + for (int i = 2; i >= 0; i--) { + if (!lstElements.get(i).isEmpty()) { + return false; + } + } + + return true; + } + + public void put(int key, E value) { + putInternal(key, value, false); + } + + public void remove(int key) { + putInternal(key, null, true); + } + + public void removeAllFields() { + lstElements.get(2).clear(); + } + + public void putInternal(final int key, final E value, boolean remove) { + + int index = 0; + int ikey = key; + if (ikey < 0) { + index = 2; + ikey = -ikey; + } + else if (ikey >= VarExprent.STACK_BASE) { + index = 1; + ikey -= VarExprent.STACK_BASE; + } + + ArrayList> lst = lstElements.get(index); + if (ikey >= lst.size()) { + if (remove) { + return; + } + else { + ensureCapacity(lst, ikey + 1, false); + } + } + + lst.set(ikey, value == null ? null : new Entry() { + + private Integer var = key; + private E val = value; + + public Integer getKey() { + return var; + } + + public E getValue() { + return val; + } + + public E setValue(E newvalue) { + val = newvalue; + return null; + } + }); + } + + public boolean containsKey(int key) { + return get(key) != null; + } + + public E get(int key) { + + int index = 0; + if (key < 0) { + index = 2; + key = -key; + } + else if (key >= VarExprent.STACK_BASE) { + index = 1; + key -= VarExprent.STACK_BASE; + } + + ArrayList> lst = lstElements.get(index); + + Entry ent; + if (key < lst.size() && (ent = lst.get(key)) != null) { + return ent.getValue(); + } + return null; + } + + public void union(SFormsFastMapOld map, IElementsUnion union) { + + for (int i = 2; i >= 0; i--) { + ArrayList> lstOwn = lstElements.get(i); + ArrayList> lstExtern = map.lstElements.get(i); + + int ownsize = lstOwn.size(); + int externsize = lstExtern.size(); + + int minsize = ownsize > externsize ? externsize : ownsize; + + for (int j = minsize - 1; j >= 0; j--) { + Entry second = lstExtern.get(j); + + if (second != null) { + Entry first = lstOwn.get(j); + + if (first == null) { + putInternal(second.getKey(), union.copy(second.getValue()), false); + } + else { + first.setValue(union.union(first.getValue(), second.getValue())); + } + } + } + + if (externsize > minsize) { + // ensureCapacity(lstOwn, externsize, true); + // lstOwn.addAll(lstExtern.subList(minsize, externsize)); + + for (int j = minsize; j < externsize; j++) { + Entry second = lstExtern.get(j); + // if(first != null) { + // first.setValue(union.copy(first.getValue())); + // } + + if (second != null) { + putInternal(second.getKey(), union.copy(second.getValue()), false); + } + // lstOwn.add(lstExtern.get(j)); + } + } + } + } + + public List> entryList() { + List> list = new ArrayList>(); + + for (int i = 2; i >= 0; i--) { + for (Entry ent : lstElements.get(i)) { + if (ent != null) { + list.add(ent); + } + } + } + + return list; + } + + // public SFormsFastMapIterator iterator() { + // return new SFormsFastMapIterator(); + // } + + private void ensureCapacity(ArrayList> lst, int size, boolean exact) { + + if (!exact) { + int minsize = 2 * lst.size() / 3 + 1; + if (minsize > size) { + size = minsize; + } + } + + lst.ensureCapacity(size); + for (int i = size - lst.size(); i > 0; i--) { + lst.add(null); + } + } + + public static interface IElementsUnion { + public E union(E first, E second); + + public E copy(E element); + } + + // public class SFormsFastMapIterator implements Iterator> { + // + // private int[] pointer = new int[]{0, -1}; + // private int[] next_pointer = null; + // + // private int[] getNextIndex(int list, int index) { + // + // while(list < 3) { + // ArrayList lst = lstElements.get(list); + // + // while(++index < lst.size()) { + // E element = lst.get(index); + // if(element != null) { + // return new int[] {list, index}; + // } + // } + // + // index = -1; + // list++; + // } + // + // return null; + // } + // + // public boolean hasNext() { + // next_pointer = getNextIndex(pointer[0], pointer[1]); + // return (next_pointer != null); + // } + // + // public Entry next() { + // if(next_pointer != null) { + // pointer = next_pointer; + // } else { + // int[] nextpointer = getNextIndex(pointer[0], pointer[1]); + // if(nextpointer != null) { + // pointer = nextpointer; + // } else { + // return null; + // } + // } + // + // next_pointer = null; + // + // return new Entry() { + // public Integer getKey() { + // return null; + // } + // + // public E getValue() { + // return null; + // } + // + // public E setValue(E value) { + // throw new RuntimeException("not implemented!"); + // } + // }; + // //lstElements.get(pointer[0]).get(pointer[1]); + // } + // + // public void remove() { + // throw new RuntimeException("not implemented!"); + // } + // + // } } -- cgit v1.2.3