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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? memberinfolinker.java

?? j2me 混淆包,用于混淆j2me的原代碼用的
?? JAVA
字號:
/* $Id: MemberInfoLinker.java,v 1.9 2004/11/20 15:41:24 eric Exp $ * * ProGuard -- shrinking, optimization, and obfuscation of Java class files. * * Copyright (c) 2002-2004 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.obfuscate;import proguard.classfile.*;import proguard.classfile.visitor.*;import java.util.*;/** * This ClassFileVisitor links all methods that should get the same names * in the name spaces of all visited class files. A class file's name space * encompasses all of its subclasses and interfaces. It is typically a class file * that is not being subclassed. Chains of links that have been created in * previous invocations are merged with new chains of links, in order to create * a consistent set of chains. Class initialization methods and constructors are * ignored. * * @see MemberInfoObfuscator * * @author Eric Lafortune */public class MemberInfoLinker  implements ClassFileVisitor,             MemberInfoVisitor{    // An object that is reset and reused every time.    // The map: [class member name+descriptor - class member info]    private final Map methodInfoMap = new HashMap();    // Implementations for ClassFileVisitor.    public void visitProgramClassFile(ProgramClassFile programClassFile)    {        // Collect all members in this class's name space.        programClassFile.hierarchyAccept(true, true, true, false,                                         new AllMemberInfoVisitor(this));        // Clean up for obfuscation of the next name space.        methodInfoMap.clear();    }    public void visitLibraryClassFile(LibraryClassFile libraryClassFile)    {    }    // Implementations for MemberInfoVisitor.    public void visitProgramFieldInfo(ProgramClassFile programClassFile, ProgramFieldInfo programFieldInfo)    {    }    public void visitProgramMethodInfo(ProgramClassFile programClassFile, ProgramMethodInfo programMethodInfo)    {        visitMethodInfo(programClassFile, programMethodInfo);    }    public void visitLibraryFieldInfo(LibraryClassFile libraryClassFile, LibraryFieldInfo libraryFieldInfo)    {    }    public void visitLibraryMethodInfo(LibraryClassFile libraryClassFile, LibraryMethodInfo libraryMethodInfo)    {        visitMethodInfo(libraryClassFile, libraryMethodInfo);    }    /**     * Links the given method into the chains of links. Class initialization     * methods and constructors are ignored.     * @param classFile  the class file of the given method.     * @param methodInfo the method to be linked.     */    private void visitMethodInfo(ClassFile classFile, MethodInfo methodInfo)    {        // Private methods don't have to be linked.        if ((methodInfo.getAccessFlags() & ClassConstants.INTERNAL_ACC_PRIVATE) != 0)        {            return;        }        // Get the method's original name and descriptor.        String name       = methodInfo.getName(classFile);        String descriptor = methodInfo.getDescriptor(classFile);        // Special cases: <clinit> and <init> are always kept unchanged.        // We can ignore them here.        if (name.equals(ClassConstants.INTERNAL_METHOD_NAME_CLINIT) ||            name.equals(ClassConstants.INTERNAL_METHOD_NAME_INIT))        {            return;        }        // Get the last method in the chain.        MemberInfo thisLastMemberInfo = lastMemberInfo(methodInfo);        // See if we've already come across a method with the same name and        // descriptor.        String key = name + descriptor;        MethodInfo otherMethodInfo = (MethodInfo)methodInfoMap.get(key);        if (otherMethodInfo == null)        {            // Store the new class method info in the map.            methodInfoMap.put(key, thisLastMemberInfo);        }        else        {            // Get the last method in the other chain.            MemberInfo otherLastMemberInfo = lastMemberInfo(otherMethodInfo);            // Check if both link chains aren't already ending in the same element.            if (thisLastMemberInfo != otherLastMemberInfo)            {                // Merge the two chains, making sure LibraryMethodInfo elements,                // if any, are at the end of the resulting chain.                if (thisLastMemberInfo instanceof LibraryMethodInfo)                {                    // This class method chain ends with a library class method.                    // Link this chain to the end of the other one.                    otherLastMemberInfo.setVisitorInfo(thisLastMemberInfo);                }                /* We can skip this test and go straight to the final case.                else if (otherLastVisitorAccepter instanceof LibraryMethodInfo)                {                    // The other method chain ends with a library class method.                    // Link the other chain to the end of this one.                    thisLastVisitorAccepter.setVisitorInfo(otherLastVisitorAccepter);                }                */                else                {                    // We have two non-library methods. Link their chains                    // one way or another.                    thisLastMemberInfo.setVisitorInfo(otherLastMemberInfo);                }            }        }    }    // Small utility methods.    /**     * Finds the last class member in the linked list of class members.     * @param memberInfo the given class member.     * @return the last class member in the linked list.     */    static MemberInfo lastMemberInfo(MemberInfo memberInfo)    {        VisitorAccepter lastVisitorAccepter = memberInfo;        while (lastVisitorAccepter.getVisitorInfo() != null &&               lastVisitorAccepter.getVisitorInfo() instanceof VisitorAccepter)        {            lastVisitorAccepter = (VisitorAccepter)lastVisitorAccepter.getVisitorInfo();        }        return (MemberInfo)lastVisitorAccepter;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清三级视频| 亚洲欧美国产三级| 在线免费观看一区| gogo大胆日本视频一区| 国产精品夜夜嗨| 国产精品一区二区在线观看网站 | 国产一区二区三区蝌蚪| 奇米色一区二区三区四区| 五月天亚洲精品| 日韩国产精品久久久久久亚洲| 亚洲风情在线资源站| 天堂一区二区在线免费观看| 亚洲成av人片一区二区三区| 日韩电影在线看| 极品美女销魂一区二区三区| 国产福利精品导航| 色偷偷88欧美精品久久久| 欧美日本免费一区二区三区| 日韩欧美国产综合| 国产精品午夜免费| 夜夜精品视频一区二区| 日本 国产 欧美色综合| 国产精品资源站在线| 99久久精品一区| 欧美性受极品xxxx喷水| 日韩精品自拍偷拍| 国产精品久久看| 亚洲成人一区二区| 韩国毛片一区二区三区| 97国产精品videossex| 欧美日韩国产乱码电影| 欧美韩国日本一区| 天堂va蜜桃一区二区三区| 国精产品一区一区三区mba桃花| www.99精品| 日韩欧美国产一区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲高清在线视频| 成人国产免费视频| 91精品国产全国免费观看| 国产精品灌醉下药二区| 蜜桃av一区二区三区| 91亚洲精华国产精华精华液| 欧美一区二区三区日韩| 亚洲六月丁香色婷婷综合久久| 精品一区二区在线视频| 欧美性一级生活| 国产精品美女久久久久久2018| 日韩 欧美一区二区三区| 91小视频在线免费看| 久久免费美女视频| 日韩高清一区在线| 欧美伊人久久久久久久久影院 | 午夜久久久久久| 成人黄色电影在线| 亚洲精品一区二区三区99| 亚洲成人黄色影院| 在线观看精品一区| 自拍偷拍亚洲综合| 国产凹凸在线观看一区二区| 欧美一区二区网站| 亚洲成a天堂v人片| 欧美调教femdomvk| 一区二区三区在线高清| caoporn国产一区二区| 欧美xxxxxxxxx| 免费高清不卡av| 欧美精品亚洲一区二区在线播放| 亚洲视频在线观看一区| 不卡一区中文字幕| 国产精品久久久久久久第一福利| 久久国内精品视频| 久久众筹精品私拍模特| 激情综合色综合久久| 日韩一级成人av| 另类专区欧美蜜桃臀第一页| 欧美大黄免费观看| 精品亚洲porn| 久久精品亚洲精品国产欧美 | 亚洲一区视频在线观看视频| 99国产精品99久久久久久| 中文字幕av不卡| 97成人超碰视| 亚洲在线视频一区| 欧美日韩一区二区三区视频| 亚洲一区二区四区蜜桃| 欧美精品高清视频| 蜜桃精品在线观看| 日本一区二区不卡视频| voyeur盗摄精品| 亚洲一卡二卡三卡四卡| 69成人精品免费视频| 久久99日本精品| 亚洲欧洲精品天堂一级| 欧美视频在线一区二区三区| 丝袜诱惑亚洲看片| 久久精品欧美一区二区三区不卡| 成人黄色综合网站| 天天做天天摸天天爽国产一区 | 手机精品视频在线观看| 精品女同一区二区| 99久久精品国产毛片| 亚洲午夜精品在线| 久久一区二区视频| 在线观看国产日韩| 国产激情偷乱视频一区二区三区| 亚洲三级在线免费| 精品美女被调教视频大全网站| 国产69精品久久777的优势| 一区二区三区免费| 久久精品在线观看| 欧美精品电影在线播放| 高清国产午夜精品久久久久久| 亚洲国产日韩在线一区模特| 欧美大度的电影原声| 色婷婷亚洲精品| 韩国中文字幕2020精品| 亚洲精品午夜久久久| 久久精品视频一区二区三区| 在线一区二区三区四区五区| 国产成人亚洲综合a∨婷婷图片| 亚洲午夜在线电影| 国产精品免费av| 久久色中文字幕| 欧美色图免费看| 99久久免费国产| 激情欧美一区二区| 偷拍一区二区三区四区| 自拍视频在线观看一区二区| 欧美mv日韩mv国产| 欧美肥妇bbw| 91精彩视频在线观看| 成人免费高清在线| 国产成人免费视| 激情欧美一区二区三区在线观看| 午夜精品久久久久久久久| 亚洲视频每日更新| 国产精品久久久久久户外露出| 久久综合色婷婷| 精品欧美乱码久久久久久1区2区 | 丰满白嫩尤物一区二区| 久久国产日韩欧美精品| 日韩av高清在线观看| 亚洲国产精品麻豆| 亚洲一区二区三区美女| 自拍偷拍亚洲综合| 亚洲人成影院在线观看| 中文字幕在线不卡| 国产精品理论片| 亚洲手机成人高清视频| 国产精品嫩草影院av蜜臀| 欧美激情中文字幕| 亚洲欧洲av在线| 亚洲欧美日韩国产综合| 亚洲天堂福利av| 亚洲男人都懂的| 午夜精品久久久久久久| 午夜精品爽啪视频| 日韩电影在线观看电影| 久久精品国产精品亚洲精品| 韩国精品久久久| 成人黄色大片在线观看| 一本色道a无线码一区v| 欧美在线免费观看视频| 欧美日韩亚洲综合在线 | 国产成人免费视频一区| 不卡一区二区中文字幕| 色老综合老女人久久久| 欧美精品在线观看播放| 日韩免费电影一区| 日本一区二区三区国色天香| 亚洲视频在线观看一区| 三级欧美韩日大片在线看| 老司机精品视频导航| 懂色一区二区三区免费观看| 色哟哟一区二区三区| 欧美日本在线看| 国产亚洲欧美一区在线观看| 亚洲另类中文字| 久久精品99国产精品| 成人美女视频在线观看| 91精彩视频在线| 久久精品视频免费观看| 亚洲一区二区在线视频| 精品一区二区三区欧美| 色综合av在线| www成人在线观看| 亚洲欧美偷拍三级| 黄色小说综合网站| 一道本成人在线| 久久综合九色欧美综合狠狠| 亚洲一区二区三区国产| 国产.欧美.日韩| 日韩精品一区二区三区在线观看 | 91精品国产综合久久香蕉的特点| 久久久久一区二区三区四区| 亚洲一二三四久久| 福利一区二区在线| 欧美一级高清片在线观看| 国产精品少妇自拍|