src/share/classes/java/util/JumboEnumSet.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 119,145 **** --- 119,148 ---- EnumSetIterator() { unseen = elements[0]; } + @Override public boolean hasNext() { while (unseen == 0 && unseenIndex < elements.length - 1) unseen = elements[++unseenIndex]; return unseen != 0; } @Override + @SuppressWarnings("unchecked") public E next() { if (!hasNext()) throw new NoSuchElementException(); lastReturned = unseen & -unseen; lastReturnedIndex = unseenIndex; unseen -= lastReturned; return (E) universe[(lastReturnedIndex << 6) + Long.numberOfTrailingZeros(lastReturned)]; } + @Override public void remove() { if (lastReturned == 0) throw new IllegalStateException(); final long oldElements = elements[lastReturnedIndex]; elements[lastReturnedIndex] &= ~lastReturned;