SootClass c = s.iterator().next(); s.remove(c); if (!c.isInterface() && !c.isAbstract() && canStoreClass(c, declaringClass)) { SootMethod concreteM = resolveConcreteDispatch(c, m); if (concreteM != null) { RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if (!canStoreClass(concreteClass, declaringClass)) { continue;
SootClass c = s.iterator().next(); s.remove(c); if (!c.isInterface() && !c.isAbstract() && canStoreClass(c, declaringClass)) { SootMethod concreteM = resolveConcreteDispatch(c, m); if (concreteM != null) { RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if (!canStoreClass(concreteClass, declaringClass)) { continue;
return true; } else if (parent instanceof RefType) { return canStoreClass(((RefType) child).getSootClass(), ((RefType) parent).getSootClass()); } else { return false; } else if (!workset.add(cl)) { continue; } else if (cl.isConcrete() && canStoreClass(cl, parentClass)) { return true;
/** Returns true if the method m is visible from code in the class from. */ private boolean isVisible(SootClass from, SootMethod m) { from.checkLevel(SootClass.HIERARCHY); if (m.isPublic()) { return true; } if (m.isPrivate()) { return from.equals(m.getDeclaringClass()); } if (m.isProtected()) { return canStoreClass(from, m.getDeclaringClass()); } // m is package return from.getJavaPackageName().equals(m.getDeclaringClass().getJavaPackageName()); // || canStoreClass( from, m.getDeclaringClass() ); }
if (fastHierachy.canStoreClass(childClass,parentClass)) { SootMethod target = resolveNonSpecial(child, subSig, appOnly); if (target != null) {
if (Scene.v().getOrMakeFastHierarchy().canStoreClass(currentClass, calledClass)) { return Jimple.v().newSpecialInvokeExpr(args.get(0), methodRef, rest(args)); } else {
s.remove( c ); if( !c.isInterface() && !c.isAbstract() && canStoreClass( c, declaringClass ) ) { SootMethod concreteM = resolveConcreteDispatch( c, m ); if( concreteM != null ) RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if( !canStoreClass( concreteClass, declaringClass ) ) { continue;
s.remove( c ); if( !c.isInterface() && !c.isAbstract() && canStoreClass( c, declaringClass ) ) { SootMethod concreteM = resolveConcreteDispatch( c, m ); if( concreteM != null ) RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if( !canStoreClass( concreteClass, declaringClass ) ) { continue;
s.remove( c ); if( !c.isInterface() && !c.isAbstract() && canStoreClass( c, declaringClass ) ) { SootMethod concreteM = resolveConcreteDispatch( c, m ); if( concreteM != null ) RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if( !canStoreClass( concreteClass, declaringClass ) ) { continue;
s.remove( c ); if( !c.isInterface() && !c.isAbstract() && canStoreClass( c, declaringClass ) ) { SootMethod concreteM = resolveConcreteDispatch( c, m ); if( concreteM != null ) RefType concreteType = (RefType) t; SootClass concreteClass = concreteType.getSootClass(); if( !canStoreClass( concreteClass, declaringClass ) ) { continue;
return canStoreClass( ((RefType) child).getSootClass(), ((RefType) parent).getSootClass() ); } else { if( !workset.add(cl) ) continue; if( cl.isConcrete() && canStoreClass(cl, parentClass) ) return true; worklist.addAll(getSubclassesOf(cl));
return canStoreClass( ((RefType) child).getSootClass(), ((RefType) parent).getSootClass() ); } else { if( !workset.add(cl) ) continue; if( cl.isConcrete() && canStoreClass(cl, parentClass) ) return true; worklist.addAll(getSubclassesOf(cl));
/** Returns true if the method m is visible from code in the class from. */ private boolean isVisible( SootClass from, SootMethod m ) { from.checkLevel(SootClass.HIERARCHY); if( m.isPublic() ) return true; if( m.isPrivate() ) { return from.equals( m.getDeclaringClass() ); } if( m.isProtected() ) { return canStoreClass( from, m.getDeclaringClass() ); } // m is package return from.getJavaPackageName().equals( m.getDeclaringClass().getJavaPackageName() ); //|| canStoreClass( from, m.getDeclaringClass() ); }
/** Returns true if the method m is visible from code in the class from. */ private boolean isVisible( SootClass from, SootMethod m ) { from.checkLevel(SootClass.HIERARCHY); if( m.isPublic() ) return true; if( m.isPrivate() ) { return from.equals( m.getDeclaringClass() ); } if( m.isProtected() ) { return canStoreClass( from, m.getDeclaringClass() ); } // m is package return from.getJavaPackageName().equals( m.getDeclaringClass().getJavaPackageName() ); //|| canStoreClass( from, m.getDeclaringClass() ); }