当前位置: 首页>>代码示例>>Java>>正文


Java Bytecode.addLstore方法代码示例

本文整理汇总了Java中scouter.javassist.bytecode.Bytecode.addLstore方法的典型用法代码示例。如果您正苦于以下问题:Java Bytecode.addLstore方法的具体用法?Java Bytecode.addLstore怎么用?Java Bytecode.addLstore使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在scouter.javassist.bytecode.Bytecode的用法示例。


在下文中一共展示了Bytecode.addLstore方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doit

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
protected boolean doit(Bytecode b, int opcode) {
    switch (opcode) {
    case Opcode.RETURN :
        jsrJmp(b);
        break;
    case ARETURN :
        b.addAstore(getVar(1));
        jsrJmp(b);
        b.addAload(var);
        break;
    case IRETURN :
        b.addIstore(getVar(1));
        jsrJmp(b);
        b.addIload(var);
        break;
    case LRETURN :
        b.addLstore(getVar(2));
        jsrJmp(b);
        b.addLload(var);
        break;
    case DRETURN :
        b.addDstore(getVar(2));
        jsrJmp(b);
        b.addDload(var);
        break;
    case FRETURN :
        b.addFstore(getVar(1));
        jsrJmp(b);
        b.addFload(var);
        break;
    default :
        throw new RuntimeException("fatal");
    }

    return false;
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:37,代码来源:MemberCodeGen.java

示例2: insertAfterHandler

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private int insertAfterHandler(boolean asFinally, Bytecode b,
                               CtClass rtype, int returnVarNo,
                               Javac javac, String src)
    throws CompileError
{
    if (!asFinally)
        return 0;

    int var = b.getMaxLocals();
    b.incMaxLocals(1);
    int pc = b.currentPc();
    b.addAstore(var);   // store an exception
    if (rtype.isPrimitive()) {
        char c = ((CtPrimitiveType)rtype).getDescriptor();
        if (c == 'D') {
            b.addDconst(0.0);
            b.addDstore(returnVarNo);
        }
        else if (c == 'F') {
            b.addFconst(0);
            b.addFstore(returnVarNo);
        }
        else if (c == 'J') {
            b.addLconst(0);
            b.addLstore(returnVarNo);
        }
        else if (c == 'V') {
            b.addOpcode(Opcode.ACONST_NULL);
            b.addAstore(returnVarNo);
        }
        else { // int, boolean, char, short, ...
            b.addIconst(0);
            b.addIstore(returnVarNo);
        }
    }
    else {
        b.addOpcode(Opcode.ACONST_NULL);
        b.addAstore(returnVarNo);
    }

    javac.compileStmnt(src);
    b.addAload(var);
    b.addOpcode(Opcode.ATHROW);
    return b.currentPc() - pc;
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:46,代码来源:CtBehavior.java


注:本文中的scouter.javassist.bytecode.Bytecode.addLstore方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。