break; case ReferenceType.TYPE: dexPool.typeSection.intern((TypeReference)reference); break; case ReferenceType.FIELD:
public void internNullable(@Nullable CharSequence type) { if (type != null) { intern(type); } }
public void internNullable(@Nullable CharSequence type) { if (type != null) { intern(type); } }
dexPool.typeSection.intern(poolClassDef.getType()); dexPool.typeSection.internNullable(poolClassDef.getSuperclass()); dexPool.typeListSection.intern(poolClassDef.getInterfaces());
public void internNullable(@Nullable CharSequence type) { if (type != null) { intern(type); } }
public void intern(@Nonnull Collection<? extends CharSequence> types) { if (types.size() > 0) { Key<? extends Collection<? extends CharSequence>> key = new Key<Collection<? extends CharSequence>>(types); Integer prev = internedItems.put(key, 0); if (prev == null) { for (CharSequence type: types) { dexPool.typeSection.intern(type); } } } }
public void intern(@Nonnull Collection<? extends CharSequence> types) { if (types.size() > 0) { Key<? extends Collection<? extends CharSequence>> key = new Key<Collection<? extends CharSequence>>(types); Integer prev = internedItems.put(key, 0); if (prev == null) { for (CharSequence type: types) { typePool.intern(type); } } } }
public void intern(@Nonnull Collection<? extends CharSequence> types) { if (types.size() > 0) { Key<? extends Collection<? extends CharSequence>> key = new Key<Collection<? extends CharSequence>>(types); Integer prev = internedItems.put(key, 0); if (prev == null) { for (CharSequence type: types) { dexPool.typeSection.intern(type); } } } }
public void intern(@Nonnull MethodReference method) { Integer prev = internedItems.put(method, 0); if (prev == null) { typePool.intern(method.getDefiningClass()); protoPool.intern(method); stringPool.intern(method.getName()); } }
public void intern(@Nonnull MethodReference method) { Integer prev = internedItems.put(method, 0); if (prev == null) { dexPool.typeSection.intern(method.getDefiningClass()); dexPool.protoSection.intern(new PoolMethodProto(method)); dexPool.stringSection.intern(method.getName()); } }
public void intern(@Nonnull MethodProtoReference reference) { Integer prev = internedItems.put(reference, 0); if (prev == null) { dexPool.stringSection.intern(getShorty(reference)); dexPool.typeSection.intern(reference.getReturnType()); dexPool.typeListSection.intern(reference.getParameterTypes()); } }
public void intern(@Nonnull MethodReference method) { Integer prev = internedItems.put(method, 0); if (prev == null) { dexPool.typeSection.intern(method.getDefiningClass()); dexPool.protoSection.intern(new PoolMethodProto(method)); dexPool.stringSection.intern(method.getName()); } }
public void intern(@Nonnull MethodProtoReference reference) { Integer prev = internedItems.put(reference, 0); if (prev == null) { dexPool.stringSection.intern(getShorty(reference)); dexPool.typeSection.intern(reference.getReturnType()); dexPool.typeListSection.intern(reference.getParameterTypes()); } }
public void intern(@Nonnull Annotation annotation) { Integer prev = internedItems.put(annotation, 0); if (prev == null) { dexPool.typeSection.intern(annotation.getType()); for (AnnotationElement element: annotation.getElements()) { dexPool.stringSection.intern(element.getName()); dexPool.internEncodedValue(element.getValue()); } } }
public void intern(@Nonnull Annotation annotation) { Integer prev = internedItems.put(annotation, 0); if (prev == null) { dexPool.typeSection.intern(annotation.getType()); for (AnnotationElement element: annotation.getElements()) { dexPool.stringSection.intern(element.getName()); dexPool.internEncodedValue(element.getValue()); } } }
public void intern(@Nonnull Annotation annotation) { Integer prev = internedItems.put(annotation, 0); if (prev == null) { typePool.intern(annotation.getType()); for (AnnotationElement element: annotation.getElements()) { stringPool.intern(element.getName()); DexPool.internEncodedValue(element.getValue(), stringPool, typePool, fieldPool, methodPool); } } }
public void intern(@Nonnull MethodReference method) { // We can't use method directly, because it is likely a full MethodReference. We use a wrapper that computes // hashCode and equals based only on the prototype fields Key key = new Key(method); Integer prev = internedItems.put(key, 0); if (prev == null) { stringPool.intern(key.getShorty()); typePool.intern(method.getReturnType()); typeListPool.intern(method.getParameterTypes()); } }