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

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

?? gen.java

?? javac是sun公司開發人員使用java語言編寫的優秀的工業級java編譯器
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
                    void gen() {                        genLast();                        assert ((Gen.GenContext) syncEnv.info).gaps.length() % 2 == 0;                        ((Gen.GenContext) syncEnv.info).gaps.append(                                new Integer(code.curPc()));                    }                    void genLast() {                        lockVar.load();                        code.emitop(monitorexit);                    }                };        ((Gen.GenContext) syncEnv.info).gaps = new ListBuffer();        genTry(tree.body, Catch.emptyList, syncEnv);        code.endScopes(limit);    }    public void visitTry(final Try tree) {        final Env tryEnv = env.dup(tree, new GenContext());        final Env oldEnv = env;        final boolean useJsrLocally = jsrlimit <= 0 || jsrlimit < 100 &&                estimateCodeComplexity(tree.finalizer) > jsrlimit;        ((Gen.GenContext) tryEnv.info).finalize = new GenFinalizer() {                    void gen() {                    if (useJsrLocally) {                        if (tree.finalizer != null) {                                ((Gen.GenContext) tryEnv.info).cont =                                        new Chain(code.emitJump(jsr),                                        code.stacksize + 1,                                        ((Gen.GenContext) tryEnv.info).cont,                                        varDebugInfo ? code.defined.dup() : null);                            }                            assert ((Gen.GenContext) tryEnv.info).gaps.length()                                    % 2 == 0;                            ((Gen.GenContext) tryEnv.info).gaps.append(                                    new Integer(code.curPc()));                    } else {                            assert ((Gen.GenContext) tryEnv.info).gaps.length()                                    % 2 == 0;                            ((Gen.GenContext) tryEnv.info).gaps.append(                                    new Integer(code.curPc()));                            genLast();                        }                    }                    void genLast() {                    if (tree.finalizer != null)                            genStat(tree.finalizer, oldEnv, CRT_BLOCK);                    }                    boolean hasFinalizer() {                        return tree.finalizer != null;                    }                };        ((Gen.GenContext) tryEnv.info).gaps = new ListBuffer();        genTry(tree.body, tree.catchers, tryEnv);    }    /**      * Generate code for a try or synchronized statement      *  @param body      The body of the try or synchronized statement.      *  @param catchers  The lis of catch clauses.      *  @param env       the environment current for the body.      */    void genTry(Tree body, List catchers, Env env) {        int limit = code.nextreg;        int startpc = code.curPc();        Bits definedTry = varDebugInfo ? code.defined.dup() : null;        genStat(body, env, CRT_BLOCK);        int endpc = code.curPc();        boolean hasFinalizer = ((Gen.GenContext) env.info).finalize != null &&                ((Gen.GenContext) env.info).finalize.hasFinalizer();        if (startpc == endpc) {            if (hasFinalizer) {                code.statBegin(TreeInfo.finalizerPos(env.tree));                code.markStatBegin();                ((Gen.GenContext) env.info).finalize.genLast();            }        } else {            List gaps = ((Gen.GenContext) env.info).gaps.toList();            code.statBegin(TreeInfo.endPos(body));            genFinalizer(env);            code.statBegin(TreeInfo.endPos(env.tree));            Chain exitChain = code.branch(goto_);            endFinalizerGap(env);            for (List l = catchers; l.nonEmpty(); l = l.tail) {                code.entryPoint(1);                code.setDefined(definedTry);                genCatch((Tree.Catch) l.head, env, startpc, endpc, gaps);                genFinalizer(env);                if (hasFinalizer || l.tail.nonEmpty()) {                    code.statBegin(TreeInfo.endPos(env.tree));                    exitChain = code.mergeChains(exitChain, code.branch(goto_));                }                endFinalizerGap(env);            }            if (hasFinalizer) {                code.newRegSegment();                int catchallpc = code.entryPoint(1);                code.setDefined(definedTry);                int startseg = startpc;                while (((Gen.GenContext) env.info).gaps.nonEmpty()) {                    int endseg = ((Integer)((Gen.GenContext) env.info).gaps.next()).                            intValue();                    registerCatch(body.pos, startseg, endseg, catchallpc, 0);                    startseg = ((Integer)((Gen.GenContext) env.info).gaps.next()).                            intValue();                }                code.statBegin(TreeInfo.finalizerPos(env.tree));                code.markStatBegin();                Item excVar = makeTemp(syms.throwableType);                excVar.store();                genFinalizer(env);                excVar.load();                registerCatch(body.pos, startseg,                        ((Integer)((Gen.GenContext) env.info).gaps.next()).                        intValue(), catchallpc, 0);                code.emitop(athrow);                code.markDead();                if (((Gen.GenContext) env.info).cont != null) {                    code.resolve(((Gen.GenContext) env.info).cont);                    code.statBegin(TreeInfo.finalizerPos(env.tree));                    code.markStatBegin();                    LocalItem retVar = makeTemp(syms.throwableType);                    retVar.store();                    ((Gen.GenContext) env.info).finalize.genLast();                    code.emitop1w(ret, retVar.reg);                    code.markDead();                }            }            code.resolve(exitChain);            code.endScopes(limit);        }    }    /**      * Generate code for a catch clause.      *  @param tree     The catch clause.      *  @param env      The environment current in the enclosing try.      *  @param startpc  Start pc of try-block.      *  @param endpc    End pc of try-block.      */    void genCatch(Catch tree, Env env, int startpc, int endpc, List gaps) {        if (startpc != endpc) {            int catchType = makeRef(tree.pos, tree.param.type);            while (gaps.nonEmpty()) {                int end = ((Integer) gaps.head).intValue();                registerCatch(tree.pos, startpc, end, code.curPc(), catchType);                gaps = gaps.tail;                startpc = ((Integer) gaps.head).intValue();                gaps = gaps.tail;            }            if (startpc < endpc)                registerCatch(tree.pos, startpc, endpc, code.curPc(), catchType);            VarSymbol exparam = tree.param.sym;            code.statBegin(tree.pos);            code.markStatBegin();            int limit = code.nextreg;            int exlocal = code.newLocal(exparam);            items.makeLocalItem(exparam).store();            code.setDefined(exlocal);            code.statBegin(TreeInfo.firstStatPos(tree.body));            genStat(tree.body, env, CRT_BLOCK);            code.endScopes(limit);            code.statBegin(TreeInfo.endPos(tree.body));        }    }    /**      * Register a catch clause in the "Exceptions" code-atttribute.      */    void registerCatch(int pos, int startpc, int endpc, int handler_pc,            int catch_type) {        if (startpc != endpc) {            char startpc1 = (char) startpc;            char endpc1 = (char) endpc;            char handler_pc1 = (char) handler_pc;            if (startpc1 == startpc && endpc1 == endpc && handler_pc1 == handler_pc) {                code.addCatch(startpc1, endpc1, handler_pc1, (char) catch_type);            } else {                log.error(pos, "limit.code.too.large.for.try.stmt");                nerrs++;            }        }    }    /**      * Very roughly estimate the number of instructions needed for      *  the given tree.      */    int estimateCodeComplexity(Tree tree) {        if (tree == null)            return 0;        class ComplexityScanner extends TreeScanner {            ComplexityScanner() {                super();            }            int complexity = 0;            public void scan(Tree tree) {                if (complexity > jsrlimit)                    return;                super.scan(tree);            }            public void visitClassDef(ClassDef tree) {            }            public void visitDoLoop(DoLoop tree) {                super.visitDoLoop(tree);                complexity++;            }            public void visitWhileLoop(WhileLoop tree) {                super.visitWhileLoop(tree);                complexity++;            }            public void visitForLoop(ForLoop tree) {                super.visitForLoop(tree);                complexity++;            }            public void visitSwitch(Switch tree) {                super.visitSwitch(tree);                complexity += 5;            }            public void visitCase(Case tree) {                super.visitCase(tree);                complexity++;            }            public void visitSynchronized(Synchronized tree) {                super.visitSynchronized(tree);                complexity += 6;            }            public void visitTry(Try tree) {                super.visitTry(tree);                if (tree.finalizer != null)                    complexity += 6;            }            public void visitCatch(Catch tree) {                super.visitCatch(tree);                complexity += 2;            }            public void visitConditional(Conditional tree) {                super.visitConditional(tree);                complexity += 2;            }            public void visitIf(If tree) {                super.visitIf(tree);                complexity += 2;            }            public void visitBreak(Break tree) {                super.visitBreak(tree);                complexity += 1;            }            public void visitContinue(Continue tree) {                super.visitContinue(tree);                complexity += 1;            }            public void visitReturn(Return tree) {                super.visitReturn(tree);                complexity += 1;            }            public void visitThrow(Throw tree) {                super.visitThrow(tree);                complexity += 1;            }            public void visitAssert(Assert tree) {                super.visitAssert(tree);                complexity += 5;            }            public void visitApply(Apply tree) {                super.visitApply(tree);                complexity += 2;            }            public void visitNewClass(NewClass tree) {                scan(tree.encl);                scan(tree.args);                complexity += 2;            }            public void visitNewArray(NewArray tree) {                super.visitNewArray(tree);                complexity += 5;            }            public void visitAssign(Assign tree) {                super.visitAssign(tree);                complexity += 1;            }            public void visitAssignop(Assignop tree) {                super.visitAssignop(tree);                complexity += 2;            }            public void visitUnary(Unary tree) {                complexity += 1;                if (tree.type.constValue == null)                    super.visitUnary(tree);            }            public void visitBinary(Binary tree) {                complexity += 1;                if (tree.type.constValue == null)                    super.visitBinary(tree);            }            public void visitTypeTest(TypeTest tree) {                super.visitTypeTest(tree);                complexity += 1;            }            public void visitIndexed(Indexed tree) {                super.visitIndexed(tree);                complexity += 1;            }            public void visitSelect(Select tree) {                super.visitSelect(tree);                if (tree.sym.kind == VAR)                    complexity += 1;            }            public void visitIdent(Ident tree) {                if (tree.sym.kind == VAR) {                    complexity += 1;                    if (tree.type.constValue == null && tree.sym.owner.kind == TYP)                        complexity += 1;                }            }            public void visitLiteral(Literal tree) {                complexity += 1;            }            public void visitTree(Tree tree) {            }        }        ComplexityScanner scanner = new ComplexityScanner();        tree.accept(scanner);        return scanner.complexity;    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩欧美一区二区| 麻豆精品视频在线观看| 奇米一区二区三区| 成人不卡免费av| 精品国产制服丝袜高跟| 亚洲天堂精品在线观看| 国产精品影视网| 欧美乱妇15p| 亚洲精品大片www| 岛国一区二区三区| 精品精品国产高清一毛片一天堂| 一区二区三区免费看视频| 国产精品一区二区在线播放| 91精品国产综合久久福利| 亚洲一区二区免费视频| av中文一区二区三区| 国产亚洲欧美色| 国产一区日韩二区欧美三区| 91精品国产麻豆国产自产在线| 夜夜揉揉日日人人青青一国产精品 | 色婷婷久久久久swag精品 | 国产福利一区二区三区在线视频| 8x8x8国产精品| 亚洲成精国产精品女| 一本大道综合伊人精品热热 | 欧美乱妇15p| 亚洲五码中文字幕| 日本韩国欧美三级| 亚洲美女淫视频| 91蜜桃在线观看| 中文字幕综合网| 91色九色蝌蚪| 亚洲在线视频网站| 在线观看不卡视频| 亚洲狠狠爱一区二区三区| 日本福利一区二区| 亚洲综合自拍偷拍| 欧美三级电影一区| 日韩激情在线观看| 日韩欧美第一区| 狠狠久久亚洲欧美| 国产欧美视频一区二区三区| 国产精品小仙女| 中文字幕一区二区三中文字幕| 国产成人99久久亚洲综合精品| 亚洲国产精品ⅴa在线观看| 波波电影院一区二区三区| 国产精品国产成人国产三级 | 成人午夜电影网站| 国产精品国产三级国产专播品爱网| 成人黄色片在线观看| 亚洲欧美日韩国产综合在线| 欧美亚一区二区| 久久99精品久久久| 国产精品欧美久久久久一区二区| 91麻豆免费观看| 五月综合激情婷婷六月色窝| 欧美精品一区二区三区久久久| 国产91丝袜在线18| 亚洲综合激情另类小说区| 日韩欧美在线不卡| 不卡一区在线观看| 日韩高清一区在线| 国产精品日日摸夜夜摸av| 欧美午夜精品久久久| 精品一区二区三区在线播放 | 日韩国产在线一| 精品国产123| 日本高清不卡一区| 韩日av一区二区| 亚洲永久免费av| 精品人伦一区二区色婷婷| 99久久精品免费看国产| 免费精品视频最新在线| 亚洲视频一区在线观看| 精品国内二区三区| 日本韩国一区二区| 国产一区二区精品久久| 亚洲最色的网站| 久久日韩粉嫩一区二区三区| 日本韩国精品在线| 国产成人免费视频| 日本欧美一区二区| 亚洲精品国产品国语在线app| 欧美成人精精品一区二区频| 91在线高清观看| 国产精品一区免费在线观看| 日本色综合中文字幕| 尤物视频一区二区| 国产精品五月天| 精品处破学生在线二十三| 欧美剧情片在线观看| 91捆绑美女网站| 国产精品69毛片高清亚洲| 奇米在线7777在线精品| 亚洲一区二区三区不卡国产欧美 | 国内精品写真在线观看| 亚洲午夜日本在线观看| 国产精品久久久久影院色老大 | 制服丝袜激情欧洲亚洲| 91偷拍与自偷拍精品| 国产成人av电影在线观看| 麻豆免费精品视频| 丝瓜av网站精品一区二区| 一区二区三区欧美| 亚洲猫色日本管| 中文字幕视频一区| 国产精品传媒视频| 中文字幕欧美国产| 国产欧美一区二区三区在线老狼| 精品久久久久久久久久久久久久久久久| 欧美在线小视频| 欧美在线视频你懂得| 色婷婷一区二区三区四区| av在线不卡网| 99国产精品国产精品毛片| 99精品视频在线免费观看| 91丨porny丨中文| 97se狠狠狠综合亚洲狠狠| 95精品视频在线| 在线观看亚洲成人| 欧美色精品在线视频| 欧美日韩一卡二卡三卡| 欧美精品视频www在线观看| 欧美日韩成人综合天天影院| 91精品国产综合久久久久久| 欧美一区二区三级| 精品少妇一区二区三区在线播放| 日韩美女主播在线视频一区二区三区 | 久久九九久精品国产免费直播| 精品成人一区二区三区四区| 日本一区二区三区电影| 中文字幕日韩欧美一区二区三区| 亚洲四区在线观看| 亚洲gay无套男同| 久久精品久久精品| 大桥未久av一区二区三区中文| 99久久精品国产观看| 欧美最新大片在线看| 日韩欧美国产三级电影视频| 国产精品视频在线看| 亚洲一区二区三区影院| 免费久久99精品国产| 成年人午夜久久久| 7777精品伊人久久久大香线蕉| 精品国产乱码久久久久久闺蜜| 国产欧美精品在线观看| 一区二区三区在线视频观看58| 日韩成人午夜精品| 成人毛片老司机大片| 欧美日韩激情一区| 国产欧美一区二区三区在线看蜜臀 | 一本到不卡免费一区二区| 欧美一个色资源| 国产精品久久久一本精品| 日韩精品福利网| 不卡视频免费播放| 日韩精品在线一区| 亚洲免费观看高清完整版在线| 婷婷久久综合九色综合伊人色| 国产精品99久久久久久久vr| 欧美性videosxxxxx| 久久久影视传媒| 亚洲电影一区二区三区| 国产成人av影院| 6080yy午夜一二三区久久| 亚洲人成精品久久久久| 激情久久五月天| 欧美人伦禁忌dvd放荡欲情| 国产女主播视频一区二区| 日本中文一区二区三区| av电影在线不卡| 2023国产精品| 日韩av不卡一区二区| 91天堂素人约啪| 国产精品欧美精品| 国产一区二区电影| 日韩一区二区三区免费看| 亚洲激情成人在线| www.亚洲精品| 久久久久久久久岛国免费| 日韩av电影免费观看高清完整版 | 91在线视频在线| 国产免费观看久久| 国产综合成人久久大片91| 欧美精品乱码久久久久久按摩| 亚洲久草在线视频| jizzjizzjizz欧美| 欧美激情中文不卡| 国产成人av影院| 欧美韩日一区二区三区| 国产精品资源网| 国产亚洲污的网站| 国产一区二区中文字幕| 欧美大片在线观看| 久久99久久99精品免视看婷婷| 91精品国产综合久久小美女| 一区二区三区产品免费精品久久75| 93久久精品日日躁夜夜躁欧美| 亚洲女人小视频在线观看|