| // 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 com.android.tools.r8.graph; | |
| public class OffsetToObjectMapping { | |
| private DexProgramClass[] classes; | |
| private DexMethod[] methods; | |
| private DexProto[] protos; | |
| private DexField[] fields; | |
| private DexType[] types; | |
| private DexString[] strings; | |
| private DexCallSite[] callSites; | |
| private DexMethodHandle[] methodHandles; | |
| public void initializeClasses(int length) { | |
| assert classes == null; | |
| classes = new DexProgramClass[length]; | |
| } | |
| public void initializeMethods(int length) { | |
| assert methods == null; | |
| methods = new DexMethod[length]; | |
| } | |
| public void initializeProtos(int length) { | |
| assert protos == null; | |
| protos = new DexProto[length]; | |
| } | |
| public void initializeFields(int length) { | |
| assert fields == null; | |
| fields = new DexField[length]; | |
| } | |
| public void initializeTypes(int length) { | |
| assert types == null; | |
| types = new DexType[length]; | |
| } | |
| public void initializeStrings(int length) { | |
| assert strings == null; | |
| strings = new DexString[length]; | |
| } | |
| public void initializeCallSites(int length) { | |
| assert callSites == null; | |
| callSites = new DexCallSite[length]; | |
| } | |
| public void initializeMethodHandles(int length) { | |
| assert methodHandles == null; | |
| methodHandles = new DexMethodHandle[length]; | |
| } | |
| public DexProgramClass[] getClassMap() { | |
| assert classes != null; | |
| return classes; | |
| } | |
| public DexMethod[] getMethodMap() { | |
| assert methods != null; | |
| return methods; | |
| } | |
| public DexProto[] getProtosMap() { | |
| assert protos != null; | |
| return protos; | |
| } | |
| public DexField[] getFieldMap() { | |
| assert fields != null; | |
| return fields; | |
| } | |
| public DexType[] getTypeMap() { | |
| assert types != null; | |
| return types; | |
| } | |
| public DexString[] getStringMap() { | |
| assert strings != null; | |
| return strings; | |
| } | |
| public DexCallSite[] getCallSiteMap() { | |
| assert callSites != null; | |
| return callSites; | |
| } | |
| public DexMethodHandle[] getMethodHandleMap() { | |
| assert methodHandles != null; | |
| return methodHandles; | |
| } | |
| public DexProgramClass getClass(int index) { | |
| assert classes[index] != null; | |
| return classes[index]; | |
| } | |
| public DexMethod getMethod(int index) { | |
| assert methods[index] != null; | |
| return methods[index]; | |
| } | |
| public DexProto getProto(int index) { | |
| assert protos[index] != null; | |
| return protos[index]; | |
| } | |
| public DexField getField(int index) { | |
| assert fields[index] != null; | |
| return fields[index]; | |
| } | |
| public DexType getType(int index) { | |
| assert types[index] != null; | |
| return types[index]; | |
| } | |
| public DexString getString(int index) { | |
| assert strings[index] != null; | |
| return strings[index]; | |
| } | |
| public DexCallSite getCallSite(int index) { | |
| assert callSites[index] != null; | |
| return callSites[index]; | |
| } | |
| public DexMethodHandle getMethodHandle(int index) { | |
| assert methodHandles[index] != null; | |
| return methodHandles[index]; | |
| } | |
| public void setClass(int index, DexProgramClass clazz) { | |
| assert classes[index] == null; | |
| classes[index] = clazz; | |
| } | |
| public void setProto(int index, DexProto proto) { | |
| assert protos[index] == null; | |
| protos[index] = proto; | |
| } | |
| public void setMethod(int index, DexMethod method) { | |
| assert methods[index] == null; | |
| methods[index] = method; | |
| } | |
| public void setField(int index, DexField field) { | |
| assert fields[index] == null; | |
| fields[index] = field; | |
| } | |
| public void setType(int index, DexType type) { | |
| assert types[index] == null; | |
| types[index] = type; | |
| } | |
| public void setString(int index, DexString string) { | |
| assert strings[index] == null; | |
| strings[index] = string; | |
| } | |
| public void setCallSites(int index, DexCallSite callSite) { | |
| assert callSites[index] == null; | |
| callSites[index] = callSite; | |
| } | |
| public void setMethodHandle(int index, DexMethodHandle methodHandle) { | |
| assert methodHandles[index] == null; | |
| methodHandles[index] = methodHandle; | |
| } | |
| } |