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


Java Bytecode.addStore方法代码示例

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


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

示例1: atAssignParamList

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
protected void atAssignParamList(CtClass[] params, Bytecode code)
    throws CompileError
{
    if (params == null)
        return;

    int varNo = indexOfParam1();
    int n = params.length;
    for (int i = 0; i < n; ++i) {
        code.addOpcode(DUP);
        code.addIconst(i);
        code.addOpcode(AALOAD);
        compileUnwrapValue(params[i], code);
        code.addStore(varNo, params[i]);
        varNo += is2word(exprType, arrayDim) ? 2 : 1;
    }
}
 
开发者ID:scouter-project,项目名称:bytescope,代码行数:18,代码来源:JvstCodeGen.java

示例2: insertAfterAdvice

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private int insertAfterAdvice(Bytecode code, Javac jv, String src,
                              ConstPool cp, CtClass rtype, int varNo)
    throws CompileError
{
    int pc = code.currentPc();
    if (rtype == CtClass.voidType) {
        code.addOpcode(Opcode.ACONST_NULL);
        code.addAstore(varNo);
        jv.compileStmnt(src);
        code.addOpcode(Opcode.RETURN);
        if (code.getMaxLocals() < 1)
            code.setMaxLocals(1);
    }
    else {
        code.addStore(varNo, rtype);
        jv.compileStmnt(src);
        code.addLoad(varNo, rtype);
        if (rtype.isPrimitive())
            code.addOpcode(((CtPrimitiveType)rtype).getReturnOp());
        else
            code.addOpcode(Opcode.ARETURN);
    }

    return code.currentPc() - pc;
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:26,代码来源:CtBehavior.java

示例3: storeStack0

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private static void storeStack0(int i, int n, CtClass[] params, int regno,
        Bytecode bytecode) {
    if (i >= n)
        return;
    else {
        CtClass c = params[i];
        int size;
        if (c instanceof CtPrimitiveType)
            size = ((CtPrimitiveType)c).getDataSize();
        else
            size = 1;

        storeStack0(i + 1, n, params, regno + size, bytecode);
        bytecode.addStore(regno, c);
    }
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:17,代码来源:Expr.java

示例4: makeCode2

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private void makeCode2(Bytecode save, Bytecode load,
                       int i, int n, CtClass[] paramTypes, int var)
{
    if (i < n) {
        int size = load.addLoad(var, paramTypes[i]);
        makeCode2(save, load, i + 1, n, paramTypes, var + size);
        save.addStore(var, paramTypes[i]);
    }
    else
        locals = var - maxLocals;
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:12,代码来源:TransformBefore.java


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