Package dk.brics.string.intermediate

Examples of dk.brics.string.intermediate.Call


  private void linkFromTryBlock(Statement s) {
    for (Statement pred : s.getPreds()) {
      if (!(pred instanceof Call))
        continue;
     
      Call call = (Call)pred;
      AliasInfo beforeCall = aa.getInfoBefore(call);
      ExceptionalReturn exReturn = call.target.getExceptionalReturn();
      for (int i=0; i<call.args.length; i++) {
        if (!beforeCall.mightBeAliases(v, call.args[i]))
          continue;
View Full Code Here


          }
        }
      }
    }
    if (s instanceof Call) {
      Call call = (Call)s;
      after = getInfoBefore(call.target.getEntry());
      changed = false;
      transferCall(call, call.target.getEntry());
      if (changed) {
        worklist.add(call.target.getEntry());
View Full Code Here

   
    for (Statement pred : s.getPreds()) {
      if (!(pred instanceof Call))
        continue;
     
      Call call = (Call)pred;
     
      for (Variable arg : call.args){
        if (arg.isMutable() && !arg.isField()) {
          vars.add(arg);
         
View Full Code Here

    Method method = factory.getMethod(sootMethod);
    if (method == null)
      return false;
   
    Variable var = factory.createVariable(VariableType.NONE);
    factory.addStatement(new Call(var, method, translateArguments(sootMethod, arguments, factory)));
   
    // the constructor of custom collection types must produce corrupt collections
    if (callee.getType() != VariableType.NONE) {
      factory.addStatement(new ObjectCorrupt(callee));
    }
View Full Code Here

    if (method == null)
      return null;
   
    Variable result = factory.createVariable(factory.fromSootType(target.getReturnType()));
   
    factory.addStatement(new Call(result, method, translateArguments(target, arguments, factory)));
   
    return result;
  }
View Full Code Here

    Method method = factory.getMethod(sootMethod);
    if (method == null)
      return null;
   
    Variable result = factory.createVariable(factory.fromSootType(sootMethod.getReturnType()));
    factory.addStatement(new Call(result, method, translateArguments(sootMethod, arguments, factory)));
   
    return result;
  }
View Full Code Here

                if (ac2.isPhantom() || ac2.isPhantomClass() || ac2.isInterface())
                    continue;
                Method target = tostring_targets.get(ac2);
                if (target == null)
                    continue;
                Call call = new Call(var, target, new Variable[0]);
                m.addStatement(call);
                m.getEntry().addSucc(call);
                call.addSucc(spot);
            }
           
            /*for (SootClass ac2 : getApplicationClasses()) {
                if (ac2.isInterface()) // skip interfaces here
                    continue;
View Full Code Here

                            // methods)
                        }
                        cfg.addStatement(s);
                    }
                    Variable retvar = makeVariable(sm.getReturnType());
                    Call c = new Call(retvar, m, args);
                    cfg.addStatement(c);
                    // If this is toString, remember the return value
                    if (sm.getName().equals("toString")
                            && sm.getParameterCount() == 0
                            && sm.getReturnType().toString().equals("java.lang.String")) {
View Full Code Here

             
            } else if (val.getType() instanceof RefType) {
                // Call the corresponding toString method
                Method tostring_method = factory.getToStringMethod(((RefType) val.getType()).getSootClass());
                if (tostring_method != null && !isInterface(val.getType())) {
                  factory.addStatement(new Call(result, tostring_method, new Variable[0]));
                } else {
                  factory.addStatement(new StringInit(result, Basic.makeAnyString()));
                }
            } else { // If all else fails, give any string
              factory.addStatement(new StringInit(result, Basic.makeAnyString())); // not currently reachable, but good to have here
View Full Code Here

TOP

Related Classes of dk.brics.string.intermediate.Call

Copyright © 2018 www.massapicom. 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.