|  | // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  | package jumbostring; | 
|  |  | 
|  | import java.io.IOException; | 
|  | import java.io.PrintStream; | 
|  | import java.nio.file.FileSystems; | 
|  | import java.nio.file.Files; | 
|  | import java.nio.file.Path; | 
|  | import java.nio.file.StandardOpenOption; | 
|  |  | 
|  | class JumboString { | 
|  | public static void main(String[] args) { | 
|  | // Make sure this string sorts after the field names and string values in the StringPoolX.java | 
|  | // files to ensure this is a jumbo string. | 
|  | System.out.println("zzzz - jumbo string"); | 
|  | } | 
|  |  | 
|  | // Code for generating the StringPoolX.java files. | 
|  | // | 
|  | // We only need to generate two files to get jumbo strings. Each file has 16k static final fields | 
|  | // with values, and both the field name and the value will be in the string pool. | 
|  | public static void generate() throws IOException { | 
|  | int stringsPerFile = (1 << 14); | 
|  | for (int fileNumber = 0; fileNumber < 2; fileNumber++) { | 
|  | Path path = FileSystems.getDefault().getPath("StringPool" + fileNumber + ".java"); | 
|  | PrintStream out = new PrintStream( | 
|  | Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.APPEND)); | 
|  |  | 
|  | out.println( | 
|  | "// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file"); | 
|  | out.println( | 
|  | "// for details. All rights reserved. Use of this source code is governed by a"); | 
|  | out.println("// BSD-style license that can be found in the LICENSE file."); | 
|  | out.println("package jumbostring;"); | 
|  | out.println(); | 
|  | out.println("class StringPool" + fileNumber + " {"); | 
|  |  | 
|  | int offset = fileNumber * stringsPerFile; | 
|  | for (int i = offset; i < offset + stringsPerFile; i++) { | 
|  | out.println("  public static final String s" + i + " = \"" + i + "\";"); | 
|  | } | 
|  | out.println("}"); | 
|  | out.close(); | 
|  | } | 
|  | } | 
|  | } |