From babff867ae3cc696806436a012250c7d9fcfb882 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Wed, 2 May 2018 19:53:34 +0200 Subject: [PATCH] ignore reuse variable --- src/de/inetsoftware/classparser/LocalVariableTable.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/de/inetsoftware/classparser/LocalVariableTable.java b/src/de/inetsoftware/classparser/LocalVariableTable.java index e5293ea..516526c 100644 --- a/src/de/inetsoftware/classparser/LocalVariableTable.java +++ b/src/de/inetsoftware/classparser/LocalVariableTable.java @@ -1,5 +1,5 @@ /* - Copyright 2011 - 2017 Volker Berlin (i-net software) + Copyright 2011 - 2018 Volker Berlin (i-net software) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -58,13 +58,17 @@ public class LocalVariableTable { table = new LocalVariable[count]; tablePosition = new LocalVariable[count]; } + boolean[] wasSet = new boolean[table.length]; for( int i = 0; i < count; i++ ) { LocalVariable var = new LocalVariable( input, i ); int idx = var.getIndex(); if( withPositions ) { tablePosition[i] = var; } - table[idx] = var; + if( !wasSet[idx] ) { // does not use index of reused variable + table[idx] = var; + wasSet[idx] = true; + } } }