- List<DBRefEntry> primaries = new ArrayList<>();
- DBRefEntry[] tmp = new DBRefEntry[1];
- for (DBRefEntry ref : dbrefs)
+ if (refModCount == dbrefs.getModCount() && primaryRefs != null)
+ {
+ return primaryRefs; // no changes
+ }
+ refModCount = dbrefs.getModCount();
+ List<DBRefEntry> primaries = (primaryRefs == null
+ ? (primaryRefs = new ArrayList<>())
+ : primaryRefs);
+ primaries.clear();
+ if (tmpList == null)
+ {
+ tmpList = new ArrayList<>();
+ tmpList.add(null); // for replacement
+ }
+ for (int i = 0, n = dbrefs.size(); i < n; i++)