Mercurial > hg > openjdk > lambda > nashorn
changeset 315:cab639125b98
8015674: CodeGenerator.initSymbols mutates a list
Reviewed-by: jlaskey, lagergren
author | attila |
---|---|
date | Fri, 31 May 2013 12:57:44 +0200 |
parents | d8a7727a519e |
children | 11b81fa7125a |
files | src/jdk/nashorn/internal/codegen/CodeGenerator.java |
diffstat | 1 files changed, 12 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/jdk/nashorn/internal/codegen/CodeGenerator.java Fri May 31 12:57:25 2013 +0200 +++ b/src/jdk/nashorn/internal/codegen/CodeGenerator.java Fri May 31 12:57:44 2013 +0200 @@ -456,17 +456,18 @@ } private void initSymbols(final LinkedList<Symbol> symbols, final Type type) { - if (symbols.isEmpty()) { - return; - } - - method.loadUndefined(type); - while (!symbols.isEmpty()) { - final Symbol symbol = symbols.removeFirst(); - if (!symbols.isEmpty()) { - method.dup(); - } - method.store(symbol); + final Iterator<Symbol> it = symbols.iterator(); + if(it.hasNext()) { + method.loadUndefined(type); + boolean hasNext; + do { + final Symbol symbol = it.next(); + hasNext = it.hasNext(); + if(hasNext) { + method.dup(); + } + method.store(symbol); + } while(hasNext); } }