protected boolean addClassInfo ( NonDelayedClassInfo classInfo ) { boolean didAdd ; if ( classInfo . isJavaClass ( ) ) { didAdd = basicPutJavaClassInfo ( classInfo ) ; } else if ( classInfo . isAnnotationPresent ( ) || classInfo . isFieldAnnotationPresent ( ) || classInfo . isMethodAnnotationPresent ( ) ) { didAdd = basicPutAnnotatedClassInfo ( classInfo ) ; } else { didAdd = basicPutClassInfo ( classInfo ) ; // Note: 'addAsFirst' must only be performed for non-java, non-annotated // classes. Both java and annotated classes are put in separate // storage which is never swapped. Non-java, non-annotated classes // are swappable, and are maintained in a last-access ordered // linked list. // // The current addition counts as an access, meaning, the class // info is placed into the last-access list as the first element. if ( didAdd ) { addAsFirst ( classInfo ) ; } } if ( didAdd ) { ClassInfoImpl delayedClassInfo = associate ( classInfo ) ; discardRef ( delayedClassInfo ) ; // No current use for the return value; discard it. } return didAdd ; }
Do update the LRU state .