20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.sun.tools.javac.jvm;
27
28 import com.sun.tools.javac.code.*;
29 import com.sun.tools.javac.code.Symbol.MethodSymbol;
30 import com.sun.tools.javac.comp.Resolve;
31 import com.sun.tools.javac.jvm.PoolConstant.LoadableConstant;
32 import com.sun.tools.javac.tree.JCTree;
33 import com.sun.tools.javac.tree.TreeInfo;
34 import com.sun.tools.javac.tree.TreeMaker;
35 import com.sun.tools.javac.util.*;
36
37 import static com.sun.tools.javac.code.Kinds.Kind.MTH;
38 import static com.sun.tools.javac.code.TypeTag.*;
39 import static com.sun.tools.javac.jvm.ByteCodes.*;
40 import static com.sun.tools.javac.tree.JCTree.Tag.PLUS;
41 import com.sun.tools.javac.jvm.Items.*;
42
43 import java.util.HashMap;
44 import java.util.Map;
45
46 /** This lowers the String concatenation to something that JVM can understand.
47 *
48 * <p><b>This is NOT part of any supported API.
49 * If you write code that depends on this, you do so at your own risk.
50 * This code and its internal interfaces are subject to change or
51 * deletion without notice.</b>
52 */
53 public abstract class StringConcat {
54
55 /**
56 * Maximum number of slots for String Concat call.
57 * JDK's StringConcatFactory does not support more than that.
58 */
59 private static final int MAX_INDY_CONCAT_ARG_SLOTS = 200;
|
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package com.sun.tools.javac.jvm;
27
28 import com.sun.tools.javac.code.*;
29 import com.sun.tools.javac.code.Symbol.MethodSymbol;
30 import com.sun.tools.javac.comp.Resolve;
31 import com.sun.tools.javac.jvm.PoolConstant.LoadableConstant;
32 import com.sun.tools.javac.tree.JCTree;
33 import com.sun.tools.javac.tree.TreeInfo;
34 import com.sun.tools.javac.tree.TreeMaker;
35 import com.sun.tools.javac.util.*;
36
37 import static com.sun.tools.javac.code.Kinds.Kind.MTH;
38 import static com.sun.tools.javac.code.TypeTag.*;
39 import static com.sun.tools.javac.jvm.ByteCodes.*;
40 import static com.sun.tools.javac.tree.JCTree.Tag.LITERAL;
41 import static com.sun.tools.javac.tree.JCTree.Tag.PLUS;
42 import com.sun.tools.javac.jvm.Items.*;
43
44 import java.util.HashMap;
45 import java.util.Map;
46
47 /** This lowers the String concatenation to something that JVM can understand.
48 *
49 * <p><b>This is NOT part of any supported API.
50 * If you write code that depends on this, you do so at your own risk.
51 * This code and its internal interfaces are subject to change or
52 * deletion without notice.</b>
53 */
54 public abstract class StringConcat {
55
56 /**
57 * Maximum number of slots for String Concat call.
58 * JDK's StringConcatFactory does not support more than that.
59 */
60 private static final int MAX_INDY_CONCAT_ARG_SLOTS = 200;
|