| // 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; |
| } |
| } |