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


Java TracedStack.size方法代码示例

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


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

示例1: markStackProducers

import proguard.evaluation.TracedStack; //导入方法依赖的package包/类
/**
 * Marks the stack entries and their producing instructions of the
 * consumer at the given offset.
 * @param clazz          the containing class.
 * @param consumerOffset the offset of the consumer.
 * @param consumer       the consumer of the stack entries.
 */
private void markStackProducers(Clazz       clazz,
                                int         consumerOffset,
                                Instruction consumer)
{
    TracedStack tracedStack =
        partialEvaluator.getStackBefore(consumerOffset);

    int stackSize = tracedStack.size();

    // Mark the producers of the popped values.
    int popCount = consumer.stackPopCount(clazz);
    for (int stackIndex = stackSize - popCount; stackIndex < stackSize; stackIndex++)
    {
        markStackEntryProducers(consumerOffset, stackIndex);
    }
}
 
开发者ID:bazelbuild,项目名称:bazel,代码行数:24,代码来源:EvaluationShrinker.java

示例2: visitProgramMethod

import proguard.evaluation.TracedStack; //导入方法依赖的package包/类
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
{
    // Get the total size of the parameters.
    int parameterSize = ParameterUsageMarker.getParameterSize(programMethod);

    // Make the method invocation static, if possible.
    if ((programMethod.getAccessFlags() & ClassConstants.INTERNAL_ACC_STATIC) == 0 &&
        !ParameterUsageMarker.isParameterUsed(programMethod, 0))
    {
        replaceByStaticInvocation(programClass,
                                  invocationOffset,
                                  invocationInstruction);
    }

    // Remove unused parameters.
    for (int index = 0; index < parameterSize; index++)
    {
        if (!ParameterUsageMarker.isParameterUsed(programMethod, index))
        {
            TracedStack stack =
                partialEvaluator.getStackBefore(invocationOffset);

            int stackIndex = stack.size() - parameterSize + index;

            if (DEBUG)
            {
                System.out.println("  ["+invocationOffset+"] Ignoring parameter #"+index+" of "+programClass.getName()+"."+programMethod.getName(programClass)+programMethod.getDescriptor(programClass)+"] (stack entry #"+stackIndex+" ["+stack.getBottom(stackIndex)+"])");
                System.out.println("    Full stack: "+stack);
            }

            markStackSimplificationBefore(invocationOffset, stackIndex);
        }
    }
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:35,代码来源:EvaluationShrinker.java

示例3: markStackEntryProducers

import proguard.evaluation.TracedStack; //导入方法依赖的package包/类
/**
 * Marks the stack entry and the corresponding producing instructions
 * of the consumer at the given offset.
 * @param consumerOffset the offset of the consumer.
 * @param stackIndex     the index of the stack entry to be marked
 *                        (counting from the top).
 */
private void markStackEntryProducers(int consumerOffset,
                                     int stackIndex)
{
    TracedStack tracedStack =
        partialEvaluator.getStackBefore(consumerOffset);

    int stackBottomIndex = tracedStack.size() - 1 - stackIndex;

    if (!isStackSimplifiedBefore(consumerOffset, stackBottomIndex))
    {
        markStackEntryProducers(tracedStack.getTopProducerValue(stackIndex).instructionOffsetValue(),
                                stackBottomIndex);
    }
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:22,代码来源:EvaluationShrinker.java

示例4: visitProgramMethod

import proguard.evaluation.TracedStack; //导入方法依赖的package包/类
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
{
    // Get the total size of the parameters.
    int parameterSize = ParameterUsageMarker.getParameterSize(programMethod);

    // Make the method invocation static, if possible.
    if ((programMethod.getAccessFlags() & ClassConstants.ACC_STATIC) == 0 &&
        !ParameterUsageMarker.isParameterUsed(programMethod, 0))
    {
        replaceByStaticInvocation(programClass,
                                  invocationOffset,
                                  invocationInstruction);
    }

    // Remove unused parameters.
    for (int index = 0; index < parameterSize; index++)
    {
        if (!ParameterUsageMarker.isParameterUsed(programMethod, index))
        {
            TracedStack stack =
                partialEvaluator.getStackBefore(invocationOffset);

            int stackIndex = stack.size() - parameterSize + index;

            if (DEBUG)
            {
                System.out.println("  ["+invocationOffset+"] Ignoring parameter #"+index+" of "+programClass.getName()+"."+programMethod.getName(programClass)+programMethod.getDescriptor(programClass)+"] (stack entry #"+stackIndex+" ["+stack.getBottom(stackIndex)+"])");
                System.out.println("    Full stack: "+stack);
            }

            markStackSimplificationBefore(invocationOffset, stackIndex);
        }
    }
}
 
开发者ID:bazelbuild,项目名称:bazel,代码行数:35,代码来源:EvaluationShrinker.java


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