public VariableAccessor getVariableAccessorForVar(String name, MethodHandle getter, MethodHandle setter) { VariableAccessor ivarAccessor = variableAccessors.get(name); if (ivarAccessor == null) { synchronized (realClass) { Map<String, VariableAccessor> myVariableAccessors = variableAccessors; ivarAccessor = myVariableAccessors.get(name); if (ivarAccessor == null) { // allocate a new accessor and populate a new table ivarAccessor = allocateVariableAccessorForVar(name, getter, setter); Map<String, VariableAccessor> newVariableAccessors = new HashMap<String, VariableAccessor>(myVariableAccessors.size() + 1); newVariableAccessors.putAll(myVariableAccessors); newVariableAccessors.put(name, ivarAccessor); variableAccessors = newVariableAccessors; } } } return ivarAccessor; }
public VariableAccessor getVariableAccessorForVar(String name, int index) { VariableAccessor ivarAccessor = variableAccessors.get(name); if (ivarAccessor == null) { synchronized (realClass) { Map<String, VariableAccessor> myVariableAccessors = variableAccessors; ivarAccessor = myVariableAccessors.get(name); if (ivarAccessor == null) { // allocate a new accessor and populate a new table ivarAccessor = allocateVariableAccessorForVar(name, index); Map<String, VariableAccessor> newVariableAccessors = new HashMap<String, VariableAccessor>(myVariableAccessors.size() + 1); newVariableAccessors.putAll(myVariableAccessors); newVariableAccessors.put(name, ivarAccessor); variableAccessors = newVariableAccessors; } } } return ivarAccessor; }
public VariableAccessor getVariableAccessorForVar(String name, MethodHandle getter, MethodHandle setter) { VariableAccessor ivarAccessor = variableAccessors.get(name); if (ivarAccessor == null) { synchronized (realClass) { Map<String, VariableAccessor> myVariableAccessors = variableAccessors; ivarAccessor = myVariableAccessors.get(name); if (ivarAccessor == null) { // allocate a new accessor and populate a new table ivarAccessor = allocateVariableAccessorForVar(name, getter, setter); Map<String, VariableAccessor> newVariableAccessors = new HashMap<String, VariableAccessor>(myVariableAccessors.size() + 1); newVariableAccessors.putAll(myVariableAccessors); newVariableAccessors.put(name, ivarAccessor); variableAccessors = newVariableAccessors; } } } return ivarAccessor; }
public VariableAccessor getVariableAccessorForVar(String name, int index) { VariableAccessor ivarAccessor = variableAccessors.get(name); if (ivarAccessor == null) { synchronized (realClass) { Map<String, VariableAccessor> myVariableAccessors = variableAccessors; ivarAccessor = myVariableAccessors.get(name); if (ivarAccessor == null) { // allocate a new accessor and populate a new table ivarAccessor = allocateVariableAccessorForVar(name, index); Map<String, VariableAccessor> newVariableAccessors = new HashMap<String, VariableAccessor>(myVariableAccessors.size() + 1); newVariableAccessors.putAll(myVariableAccessors); newVariableAccessors.put(name, ivarAccessor); variableAccessors = newVariableAccessors; } } } return ivarAccessor; }