jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
author ksrini
Tue, 29 May 2012 14:56:48 -0700
changeset 12857 0a5f341c2a28
parent 12544 5768f2e096de
permissions -rw-r--r--
7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present Reviewed-by: jrose
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     1
/*
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
     2
 * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     4
 *
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    10
 *
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    15
 * accompanied this code).
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    16
 *
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    20
 *
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    23
 * questions.
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    24
 */
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    25
package com.sun.java.util.jar.pack;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    26
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    27
import com.sun.java.util.jar.pack.ConstantPool.ClassEntry;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    28
import com.sun.java.util.jar.pack.ConstantPool.DescriptorEntry;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    29
import com.sun.java.util.jar.pack.ConstantPool.LiteralEntry;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    30
import com.sun.java.util.jar.pack.ConstantPool.MemberEntry;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    31
import com.sun.java.util.jar.pack.ConstantPool.MethodHandleEntry;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    32
import com.sun.java.util.jar.pack.ConstantPool.MethodTypeEntry;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    33
import com.sun.java.util.jar.pack.ConstantPool.InvokeDynamicEntry;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    34
import com.sun.java.util.jar.pack.ConstantPool.BootstrapMethodEntry;
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    35
import com.sun.java.util.jar.pack.ConstantPool.SignatureEntry;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    36
import com.sun.java.util.jar.pack.ConstantPool.Utf8Entry;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    37
import java.util.HashMap;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    38
import java.util.Map;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    39
import java.util.SortedMap;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    40
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    41
/*
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    42
 * @author ksrini
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    43
 */
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    44
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    45
/*
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    46
 * This class provides a container to hold the global variables, for packer
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    47
 * and unpacker instances. This is typically stashed away in a ThreadLocal,
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    48
 * and the storage is destroyed upon completion. Therefore any local
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    49
 * references to these members must be eliminated appropriately to prevent a
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    50
 * memory leak.
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    51
 */
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    52
class TLGlobals {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    53
    // Global environment
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    54
    final PropMap props;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    55
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    56
    // Needed by ConstantPool.java
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    57
    private final Map<String, Utf8Entry> utf8Entries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    58
    private final Map<String, ClassEntry> classEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    59
    private final Map<Object, LiteralEntry> literalEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    60
    private final Map<String, SignatureEntry> signatureEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    61
    private final Map<String, DescriptorEntry> descriptorEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    62
    private final Map<String, MemberEntry> memberEntries;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    63
    private final Map<String, MethodHandleEntry> methodHandleEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    64
    private final Map<String, MethodTypeEntry> methodTypeEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    65
    private final Map<String, InvokeDynamicEntry> invokeDynamicEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    66
    private final Map<String, BootstrapMethodEntry> bootstrapMethodEntries;
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    67
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    68
    TLGlobals() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    69
        utf8Entries = new HashMap<>();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    70
        classEntries = new HashMap<>();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    71
        literalEntries = new HashMap<>();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    72
        signatureEntries = new HashMap<>();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    73
        descriptorEntries = new HashMap<>();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    74
        memberEntries = new HashMap<>();
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    75
        methodHandleEntries = new HashMap<>();
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    76
        methodTypeEntries = new HashMap<>();
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    77
        invokeDynamicEntries = new HashMap<>();
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
    78
        bootstrapMethodEntries = new HashMap<>();
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    79
        props = new PropMap();
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    80
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    81
10115
eb08d08c7ef7 7060849: Eliminate pack200 build warnings
ksrini
parents: 6313
diff changeset
    82
    SortedMap<String, String> getPropMap() {
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    83
        return props;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    84
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    85
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    86
    Map<String, Utf8Entry> getUtf8Entries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    87
        return utf8Entries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    88
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    89
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    90
    Map<String, ClassEntry> getClassEntries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    91
        return classEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    92
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    93
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    94
    Map<Object, LiteralEntry> getLiteralEntries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    95
        return literalEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    96
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    97
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    98
    Map<String, DescriptorEntry> getDescriptorEntries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
    99
         return descriptorEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   100
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   101
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   102
    Map<String, SignatureEntry> getSignatureEntries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   103
        return signatureEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   104
    }
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   105
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   106
    Map<String, MemberEntry> getMemberEntries() {
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   107
        return memberEntries;
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   108
    }
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   109
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   110
    Map<String, MethodHandleEntry> getMethodHandleEntries() {
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   111
        return methodHandleEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   112
    }
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   113
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   114
    Map<String, MethodTypeEntry> getMethodTypeEntries() {
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   115
        return methodTypeEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   116
    }
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   117
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   118
    Map<String, InvokeDynamicEntry> getInvokeDynamicEntries() {
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   119
        return invokeDynamicEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   120
    }
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   121
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   122
    Map<String, BootstrapMethodEntry> getBootstrapMethodEntries() {
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   123
        return bootstrapMethodEntries;
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   124
    }
6313
470912c9e214 6888127: java.util.jar.Pack200.Packer Memory Leak
ksrini
parents:
diff changeset
   125
}