Я добавляю новых местных жителей через newLocal
из LocalVariableSorter
. Метод, к которому я добавляю локальные переменные, является методом экземпляра с длинным параметром. Я добавляю двух местных жителей; один длинный, один объект. В примере кода нет других локальных переменных.
В результате я бы ожидал следующие слоты/индексы:
0 - this
1 - the long param
3 - my 1st local added via `newLocal` - using two slots as it is a long
5 - my 2nd local added via `newLocal`
То, что я получаю в качестве возврата от newLocal
, это 3 и 7. Почему такой большой разрыв?
И что еще более странно, когда я добавляю инструкции xSTORE
, используя эти индексы, и проверяю результат с помощью javap, он показывает мне:
LSTORE 5
ASTORE 8
Примечание. Мало того, что значения отличаются от тех, которые я передал в инструкцию xSTORE, так еще и разрыв между ними теперь равен 3, а не 4, как раньше.
Однако полученный код работает. Я просто хотел бы понять, что здесь происходит магия и почему.
Спасибо
newLocal
. - person Antimony   schedule 03.05.2018