Examples of IntMap


Examples of org.aspectj.weaver.IntMap

             if (inScope != null) {
               declaringTypeForResolution = getWorld().resolve(inScope.getName());
             } else {
               declaringTypeForResolution = ResolvedType.OBJECT.resolve(getWorld());
             }
             IntMap arity = new IntMap(formalParameters.length);
             for (int i = 0; i < formalParameters.length; i++) {
               arity.put(i, i);
             }            
             pc = pc.concretize(declaringTypeForResolution, declaringTypeForResolution, arity);
             validateAgainstSupportedPrimitives(pc,expression); // again, because we have now followed any ref'd pcuts
             pcExpr = new PointcutExpressionImpl(pc,expression,formalParameters,getWorld());
         } catch (ParserException pEx) {
View Full Code Here

Examples of org.aspectj.weaver.IntMap

 
 
  //XXX this is the signature we're moving to
  public final Pointcut concretize(ResolvedType inAspect, ResolvedType declaringType, int arity, ShadowMunger advice) {
    //if (state == CONCRETE) return this; //???
    IntMap map = IntMap.idMap(arity);
    map.setEnclosingAdvice(advice);
    map.setConcreteAspect(inAspect);
    return concretize(inAspect, declaringType, map);
  }
View Full Code Here

Examples of org.aspectj.weaver.IntMap

      //System.err.println("start: " + searchStart);
      ResolvedType[] parameterTypes = searchStart.getWorld().resolve(pointcutDec.getParameterTypes());
     
      TypePatternList arguments = this.arguments.resolveReferences(bindings);
     
      IntMap newBindings = new IntMap();
      for (int i=0,len=arguments.size(); i < len; i++) {
        TypePattern p = arguments.get(i);
        if (p == TypePattern.NO) continue;
        // we are allowed to bind to pointcuts which use subtypes as this is type safe
        // this will be checked in ReferencePointcut.resolveBindings().  Can't check it here
        // as we don't know about any new parents added via decp.
          if (p instanceof BindingTypePattern) {
            newBindings.put(i, ((BindingTypePattern)p).getFormalIndex());
          }
      }

      if (searchStart.isParameterizedType()) {
        // build a type map mapping type variable names in the generic type to
        // the type parameters presented
        typeVariableMap = new HashMap();
        ResolvedType underlyingGenericType = searchStart.getGenericType();
        TypeVariable[] tVars = underlyingGenericType.getTypeVariables();
        ResolvedType[] typeParams = searchStart.getResolvedTypeParameters();
        for (int i = 0; i < tVars.length; i++) {
          typeVariableMap.put(tVars[i].getName(),typeParams[i]);
        }
      }
     
      newBindings.copyContext(bindings);
      newBindings.pushEnclosingDefinition(pointcutDec);
      try {
        Pointcut ret = pointcutDec.getPointcut();
        if (typeVariableMap != null && !hasBeenParameterized) {         
          ret = ret.parameterizeWith(typeVariableMap);
          ret.hasBeenParameterized=true;
        }
        return ret.concretize(searchStart, declaringType, newBindings);
      } finally {
        newBindings.popEnclosingDefinitition();
      }
     
    } finally {
      concretizing = false;
    }
View Full Code Here

Examples of org.aspectj.weaver.IntMap

                        ret.baseArgsCount++;
                    }
                }
            }

      IntMap newBindings = IntMap.idMap(ret.baseArgsCount);
      newBindings.copyContext(bindings);
      ret.residueSource = def.getPointcut().concretize(inAspect, declaringType, newBindings);
    }
   
    return ret;
  }
View Full Code Here

Examples of org.aspectj.weaver.IntMap

   
    // create a map that will move all slots in advice method forward by extraParamOffset
    // in order to make room for the new proceed-required arguments that are added at
    // the beginning of the parameter list
    int nVars = adviceMethod.getMaxLocals() + extraParamOffset;
    IntMap varMap = IntMap.idMap(nVars);
    for (int i=extraParamOffset; i < nVars; i++) {
      varMap.put(i-extraParamOffset, i);
    }

    localAdviceMethod.getBody().insert(
      BcelClassWeaver.genInlineInstructions(adviceMethod,
          localAdviceMethod, varMap, fact, true));
View Full Code Here

Examples of org.aspectj.weaver.IntMap

    InstructionList ret = new InstructionList();
    // we have on stack all the arguments for the ADVICE call.
    // we have in frame somewhere all the arguments for the non-advice call.
   
    BcelVar[] adviceVars = munger.getExposedStateAsBcelVars(true);
    IntMap proceedMap =  makeProceedArgumentMap(adviceVars);

//    System.out.println(proceedMap + " for " + this);
//    System.out.println(argVarList);
   
    ResolvedType[] proceedParamTypes =
      world.resolve(munger.getSignature().getParameterTypes());
    // remove this*JoinPoint* as arguments to proceed
    if (munger.getBaseParameterCount()+1 < proceedParamTypes.length) {
      int len = munger.getBaseParameterCount()+1;
      ResolvedType[] newTypes = new ResolvedType[len];
      System.arraycopy(proceedParamTypes, 0, newTypes, 0, len);
      proceedParamTypes = newTypes;
    }

    //System.out.println("stateTypes: " + Arrays.asList(stateTypes));
    BcelVar[] proceedVars =
      Utility.pushAndReturnArrayOfVars(proceedParamTypes, ret, fact, localAdviceMethod);

    Type[] stateTypes = callbackMethod.getArgumentTypes();
//    System.out.println("stateTypes: " + Arrays.asList(stateTypes));
   
    for (int i=0, len=stateTypes.length; i < len; i++) {
            Type stateType = stateTypes[i];
            ResolvedType stateTypeX = BcelWorld.fromBcel(stateType).resolve(world);
            if (proceedMap.hasKey(i)) {
              //throw new RuntimeException("unimplemented");
        proceedVars[proceedMap.get(i)].appendLoadAndConvert(ret, fact, stateTypeX);
            } else {
        ((BcelVar) argVarList.get(i)).appendLoad(ret, fact);
            }
    }
       
View Full Code Here

Examples of org.aspectj.weaver.IntMap

   

    private IntMap makeProceedArgumentMap(BcelVar[] adviceArgs) {
        //System.err.println("coming in with " + Arrays.asList(adviceArgs));

        IntMap ret = new IntMap();
        for(int i = 0, len = adviceArgs.length; i < len; i++) {
            BcelVar v = (BcelVar) adviceArgs[i];
            if (v == null) continue; // XXX we don't know why this is required
            int pos = v.getPositionInAroundState();
            if (pos >= 0) {  // need this test to avoid args bound via cflow
              ret.put(pos, i);
            }
        }
        //System.err.println("returning " + ret);
       
        return ret;
View Full Code Here

Examples of org.aspectj.weaver.IntMap


    /** make a map from old frame location to new frame location.  Any unkeyed frame
     * location picks out a copied local */
    private IntMap makeRemap() {
        IntMap ret = new IntMap(5);
        int reti = 0;
    if (thisVar != null) {
      ret.put(0, reti++)// thisVar guaranteed to be 0
    }
        if (targetVar != null && targetVar != thisVar) {
            ret.put(targetVar.getSlot(), reti++);
        }           
        for (int i = 0, len = argVars.length; i < len; i++) {
            ret.put(argVars[i].getSlot(), reti);
            reti += argVars[i].getType().getSize();           
        }
        if (thisJoinPointVar != null) {
          ret.put(thisJoinPointVar.getSlot(), reti++);
        }
        // we not only need to put the arguments, we also need to remap their
        // aliases, which we so helpfully put into temps at the beginning of this join
        // point.
        if (! getKind().argsOnStack()) {
          int oldi = 0;
          int newi = 0;
          // if we're passing in a this and we're not argsOnStack we're always
          // passing in a target too
          if (arg0HoldsThis()) { ret.put(0, 0); oldi++; newi+=1; }
          //assert targetVar == thisVar
          for (int i = 0; i < getArgCount(); i++) {
              UnresolvedType type = getArgType(i);
        ret.put(oldi, newi);
              oldi += type.getSize();
              newi += type.getSize();
          }  
        }     
       
View Full Code Here

Examples of org.boris.pecoff4j.util.IntMap

        Collections.sort(imports, new Comparator<BoundImport>() {
            public int compare(BoundImport o1, BoundImport o2) {
                return o1.getOffsetToModuleName() - o2.getOffsetToModuleName();
            }
        });
        IntMap names = new IntMap();
        for (int i = 0; i < imports.size(); i++) {
            bi = imports.get(i);
            int offset = bi.getOffsetToModuleName();
            String n = (String) names.get(offset);
            if (n == null) {
                dr.jumpTo(offset);
                n = dr.readUtf();
                names.put(offset, n);
            }
            bi.setModuleName(n);
        }
        return bidt;
    }
View Full Code Here

Examples of org.nlpcn.commons.lang.bloomFilter.bitMap.IntMap


  public Filter(long maxValue, MACHINENUM X) throws Exception {
    this.size = maxValue;
    if (X == MACHINENUM.X86) {
      bm = new IntMap((int) (size / 32));
    } else if (X == MACHINENUM.X64) {
      bm = new LongMap((int) (size / 64));
    } else {
      throw new Exception("unknow math num!");
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.