亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? variables.java

?? proguard 3.5 java 混淆器 最新 免費(fèi) 好用的 大家用用試一下吧 天行健-君子以自強(qiáng)不息 地勢(shì)坤-君子以厚德載物
?? JAVA
字號(hào):
/* $Id: Variables.java,v 1.7.2.1 2006/01/16 22:57:56 eric Exp $ * * ProGuard -- shrinking, optimization, and obfuscation of Java class files. * * Copyright (c) 2002-2006 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package proguard.optimize.evaluation;import proguard.optimize.evaluation.value.*;/** * This class represents a local variable frame that contains <code>Value</code> * objects. Values are generalizations of all values that have been stored in * the respective variables. * * @author Eric Lafortune */class Variables{    protected Value[] values;    protected int     size;    /**     * Creates a new Variables object with a given maximum number of variables.     */    public Variables(int size)    {        this.values = new Value[size];        this.size   = size;    }    /**     * Creates a Variables object that is a copy of the given Variables object.     */    public Variables(Variables variables)    {        // Create the values array.        this(variables.size);        // Copy the values.        initialize(variables);    }    /**     * Resets this Variables object, so that it can be reused.     */    public void reset(int size)    {        // Is the values array large enough?        if (size > values.length)        {            // Create a new one.            values = new Value[size];        }        else        {            // Clear the variables.            for (int index = 0; index < values.length; index++)            {                values[index] = null;            }        }        this.size = size;    }    /**     * Initializes the values of this Variables object with the values of the     * given Variables object. The other object may have fewer values, in which     * case the remaining values are left unchanged.     */    public void initialize(Variables other)    {        if (this.size < other.size)        {            throw new IllegalArgumentException("Variable frame is too small ["+this.size+"] compared to other frame ["+other.size+"]");        }        // Copy the values.        System.arraycopy(other.values, 0, this.values, 0, other.size);    }    /**     * Generalizes the values of this Variables object with the values of the     * given Variables object. In case of conflicts, the other Variables     * object gets precedence.     * @return whether the generalization has made any difference.     */    public boolean generalize(Variables other)    {        if (this.size != other.size)        {            throw new IllegalArgumentException("Variable frames have different sizes ["+this.size+"] and ["+other.size+"]");        }        boolean changed = false;        for (int index = 0; index < size; index++)        {            Value otherValue = other.values[index];            if (otherValue != null)            {                Value thisValue  = this.values[index];                // Occasionally, two values of different types might be                // present in the same variable in a variable frame                // (corresponding to two local variables that share the                // same index), at some point outside of their scopes.                // The new value gets precedence.                if (thisValue != null &&                    thisValue.computationalType() == otherValue.computationalType())                {                    otherValue = thisValue.generalize(otherValue);                    changed = changed || !otherValue.equals(thisValue);                }                values[index] = otherValue;            }        }        return changed;    }    /**     * Returns the number of variables.     */    public int size()    {        return size;    }    /**     * Stores the given Value at the given variable index.     */    public void store(int index, Value value)    {        if (index < 0 ||            index >= size)        {            throw new IndexOutOfBoundsException("Variable index ["+index+"] out of bounds ["+size+"]");        }        // Store the value.        values[index] = value;    }    /**     * Loads the Value from the variable with the given index.     */    public Value load(int index)    {        if (index < 0 ||            index >= size)        {            throw new IndexOutOfBoundsException("Variable index ["+index+"] out of bounds ["+size+"]");        }        return values[index];    }    // Load methods that provide convenient casts to the expected value types.    /**     * Loads the IntegerValue from the variable with the given index.     */    public IntegerValue iload(int index)    {        return load(index).integerValue();    }    /**     * Loads the LongValue from the variable with the given index.     */    public LongValue lload(int index)    {        return load(index).longValue();    }    /**     * Loads the FloatValue from the variable with the given index.     */    public FloatValue fload(int index)    {        return load(index).floatValue();    }    /**     * Loads the DoubleValue from the variable with the given index.     */    public DoubleValue dload(int index)    {        return load(index).doubleValue();    }    /**     * Loads the ReferenceValue from the variable with the given index.     */    public ReferenceValue aload(int index)    {        return load(index).referenceValue();    }    /**     * Loads the InstructionOffsetValue from the variable with the given index.     */    public InstructionOffsetValue oload(int index)    {        return load(index).instructionOffsetValue();    }    // Implementations for Object.    public boolean equals(Object object)    {        if (this.getClass() != object.getClass())        {            return false;        }        Variables other = (Variables)object;        if (this.size != other.size)        {            return false;        }        for (int index = 0; index < size; index++)        {            Value thisValue  = this.values[index];            Value otherValue = other.values[index];            // Occasionally, two values of different types might be            // present in the same variable in a variable frame            // (corresponding to two local variables that share the            // same index), at some point outside of their scopes.            // We'll ignore these.            if (thisValue  != null &&                otherValue != null &&                thisValue.computationalType() == otherValue.computationalType() &&                !thisValue.equals(otherValue))            {                return false;            }        }        return true;    }    public int hashCode()    {        int hashCode = size;        for (int index = 0; index < size; index++)        {            Value value = values[index];            if (value != null)            {                hashCode ^= value.hashCode();            }        }        return hashCode;    }    public String toString()    {        StringBuffer buffer = new StringBuffer();        for (int index = 0; index < size; index++)        {            Value value = values[index];            buffer = buffer.append('[')                           .append(value == null ? "empty" : value.toString())                           .append(']');        }        return buffer.toString();    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧亚洲嫩模精品一区三区| 色综合久久久久网| 久久超碰97中文字幕| 成人av综合一区| 欧美调教femdomvk| 国产精品网友自拍| 久久黄色级2电影| 日韩欧美中文一区| 亚洲一区二区在线播放相泽| 国产不卡高清在线观看视频| 欧美一区二区三区免费| 国产成人av资源| 91麻豆精品91久久久久同性| 亚洲免费在线播放| 成人精品视频一区二区三区| 欧美变态口味重另类| 日韩国产高清在线| 91精彩视频在线观看| 中文字幕乱码久久午夜不卡| 麻豆精品久久精品色综合| 在线视频国内自拍亚洲视频| 亚洲成在线观看| 91福利国产精品| 免费成人在线网站| 欧美一区日韩一区| 国产在线不卡视频| 久久尤物电影视频在线观看| 美女在线一区二区| 中文文精品字幕一区二区| av在线不卡电影| 国产精品成人免费在线| 成人免费看的视频| 亚洲图片自拍偷拍| 欧美色精品天天在线观看视频| 亚洲区小说区图片区qvod| 欧美日韩亚洲国产综合| 黄色精品一二区| 久久蜜臀中文字幕| 国产福利一区二区三区视频在线| 亚洲人成精品久久久久| 欧美成人三级在线| 波多野结衣中文字幕一区二区三区| 一区二区三区资源| 欧美日韩色综合| 国产黄色成人av| 日韩精品乱码av一区二区| 日韩一二三区视频| av激情综合网| 日韩一区二区三区三四区视频在线观看 | 欧美视频一区二区三区在线观看 | 美女视频网站久久| 亚洲日本在线天堂| 94色蜜桃网一区二区三区| 亚洲黄色免费电影| 欧美日本在线一区| 极品尤物av久久免费看| 国产午夜精品一区二区| 国产成人精品aa毛片| 日本女人一区二区三区| 亚洲美女电影在线| 国产欧美精品区一区二区三区| 北条麻妃一区二区三区| 精品一区二区三区免费| 亚洲成人资源在线| 亚洲综合丁香婷婷六月香| 国产精品美女久久久久高潮| 欧美成人精精品一区二区频| 欧美日韩成人在线一区| 一本色道综合亚洲| jizzjizzjizz欧美| 国产黑丝在线一区二区三区| 久久精品99国产国产精| 日本va欧美va精品| 天天影视网天天综合色在线播放 | 亚洲与欧洲av电影| 成人欧美一区二区三区1314| 欧美日本国产一区| 色综合天天综合网天天狠天天 | 美女网站视频久久| 日韩经典一区二区| 日韩国产精品久久久| 五月激情六月综合| 亚洲午夜电影网| 一区二区成人在线观看| 亚洲最大的成人av| 亚洲精品乱码久久久久久黑人 | 亚洲男人的天堂网| 亚洲男人电影天堂| 亚洲一区二区视频在线观看| 一区二区三区四区激情| 亚洲综合成人网| 亚洲成av人片在线| 天天综合日日夜夜精品| 蜜臀国产一区二区三区在线播放| 日韩av一区二| 国产主播一区二区三区| 国产精品一区二区久久不卡| 亚洲一区二区三区免费视频| 亚洲成人免费在线观看| 丝袜a∨在线一区二区三区不卡| 香蕉成人啪国产精品视频综合网| 亚洲成人激情自拍| 日本sm残虐另类| 国产在线精品一区在线观看麻豆| 国产一区二三区| 不卡视频一二三| 91福利社在线观看| 91精品视频网| 久久久久国色av免费看影院| 国产精品视频yy9299一区| 伊人色综合久久天天人手人婷| 亚洲国产欧美在线人成| 老司机午夜精品| 国产成人一级电影| 一本色道久久综合亚洲aⅴ蜜桃| 欧美熟乱第一页| 欧美v亚洲v综合ⅴ国产v| 日本一区二区三级电影在线观看 | 亚洲精品一二三| 蜜桃视频一区二区三区在线观看| 风流少妇一区二区| 欧美视频一区二区三区| 精品电影一区二区三区| 欧美电影免费观看高清完整版在线 | 成人一区二区视频| 在线观看三级视频欧美| 欧美精品一区男女天堂| 亚洲欧美激情在线| 久久精品国产精品亚洲精品| www.欧美日韩| 欧美成人video| 亚洲伦理在线免费看| 美国精品在线观看| 91黄色免费观看| 久久综合色天天久久综合图片| 一区二区日韩av| 国产精品自在欧美一区| 精品1区2区3区| 国产精品久久毛片a| 另类小说视频一区二区| 在线观看日韩av先锋影音电影院| 精品国产伦理网| 亚洲国产中文字幕在线视频综合| 国产成人精品一区二| 欧美一区永久视频免费观看| 亚洲私人黄色宅男| 国产一区二区三区黄视频| 欧美日韩国产123区| 亚洲四区在线观看| 国产精品1024| 精品国产成人在线影院| 图片区小说区国产精品视频 | 成人精品视频一区二区三区| 欧美成人三级电影在线| 图片区小说区区亚洲影院| 一本色道**综合亚洲精品蜜桃冫| 国产欧美一区二区三区在线老狼| 日韩av一区二区三区| 欧美视频中文一区二区三区在线观看| 欧美韩国日本不卡| 国产在线国偷精品产拍免费yy| 777精品伊人久久久久大香线蕉| 亚洲欧洲中文日韩久久av乱码| 国产精品夜夜嗨| 久久一区二区视频| 美女任你摸久久| 日韩一区二区三区四区| 丝袜亚洲另类欧美综合| 欧美喷水一区二区| 亚洲va国产天堂va久久en| 91成人免费网站| 亚洲一区二区三区在线播放| 91福利社在线观看| 亚洲一区二区三区四区不卡| 色偷偷久久人人79超碰人人澡| 最新热久久免费视频| 91在线国内视频| 日韩久久一区二区| 在线观看91视频| 亚洲国产精品欧美一二99| 欧美午夜一区二区| 亚洲sss视频在线视频| 亚洲人成精品久久久久久| 色综合久久中文综合久久97| 亚洲欧美电影院| 欧美自拍丝袜亚洲| 五月婷婷色综合| 日韩免费一区二区三区在线播放| 蜜桃精品视频在线| 亚洲精品一区二区三区精华液| 天天色天天爱天天射综合| 欧美一级午夜免费电影| 蜜桃视频一区二区三区| 久久久久久97三级| 99久久国产综合精品色伊| 亚洲精品国产a| 欧美精品三级在线观看| 亚洲欧美自拍偷拍| 色老综合老女人久久久| 日本最新不卡在线|