* number of non-null annotation elements.
* @return
*/
- private int compactAnnotationArray() {
- int j=0;
- for (int i=0;i<annotations.length; i++) {
- if (annotations[i]!=null && j!=i) {
- annotations[j++] = annotations[i];
+ public int compactAnnotationArray() {
+ int i=0,iSize=annotations.length;
+ while (i<iSize)
+ {
+ if (annotations[i]==null) {
+ if (i+1<iSize)
+ System.arraycopy(annotations, i+1, annotations, i, iSize-i-1);
+ iSize--;
+ } else {
+ i++;
}
}
Annotation[] ann = annotations;
- annotations = new Annotation[j];
- System.arraycopy(ann, 0, annotations, 0, j);
+ annotations = new Annotation[i];
+ System.arraycopy(ann, 0, annotations, 0, i);
ann = null;
- return j;
+ return iSize;
}
/**