2902 = unsafe.objectFieldOffset(Class.class, "annotationData"); |
2902 = unsafe.objectFieldOffset(Class.class, "annotationData"); |
2903 |
2903 |
2904 static <T> boolean casReflectionData(Class<?> clazz, |
2904 static <T> boolean casReflectionData(Class<?> clazz, |
2905 SoftReference<ReflectionData<T>> oldData, |
2905 SoftReference<ReflectionData<T>> oldData, |
2906 SoftReference<ReflectionData<T>> newData) { |
2906 SoftReference<ReflectionData<T>> newData) { |
2907 return unsafe.compareAndSetObject(clazz, reflectionDataOffset, oldData, newData); |
2907 return unsafe.compareAndSetReference(clazz, reflectionDataOffset, oldData, newData); |
2908 } |
2908 } |
2909 |
2909 |
2910 static <T> boolean casAnnotationType(Class<?> clazz, |
2910 static <T> boolean casAnnotationType(Class<?> clazz, |
2911 AnnotationType oldType, |
2911 AnnotationType oldType, |
2912 AnnotationType newType) { |
2912 AnnotationType newType) { |
2913 return unsafe.compareAndSetObject(clazz, annotationTypeOffset, oldType, newType); |
2913 return unsafe.compareAndSetReference(clazz, annotationTypeOffset, oldType, newType); |
2914 } |
2914 } |
2915 |
2915 |
2916 static <T> boolean casAnnotationData(Class<?> clazz, |
2916 static <T> boolean casAnnotationData(Class<?> clazz, |
2917 AnnotationData oldData, |
2917 AnnotationData oldData, |
2918 AnnotationData newData) { |
2918 AnnotationData newData) { |
2919 return unsafe.compareAndSetObject(clazz, annotationDataOffset, oldData, newData); |
2919 return unsafe.compareAndSetReference(clazz, annotationDataOffset, oldData, newData); |
2920 } |
2920 } |
2921 } |
2921 } |
2922 |
2922 |
2923 /** |
2923 /** |
2924 * Reflection support. |
2924 * Reflection support. |