/** END Custom change: Optional deletion of fTypeMap */ @Override public void init(List<Module> modules) throws IOException { super.init(modules); /** BEGIN Custom change: Optional deletion of fTypeMap */ if (deleteTypeMapAfterInit) { fTypeMap = null; } /** END Custom change: Optional deletion of fTypeMap */ }
@Override public int getNumberOfClasses() { return getAllClasses().size(); }
@Override public SSAInstructionFactory getInstructionFactory() { return getLanguage().instructionFactory(); } }
getJarFileContents((JarFileModule) archive); Set<ModuleEntry> classFiles = getClassFiles(archive); removeClassFiles(classFiles, classModuleEntries); Set<ModuleEntry> sourceFiles = getSourceFiles(archive); Map<String, Object> allClassAndSourceFileContents = null; if (OPTIMIZE_JAR_FILE_IO) { loadAllClasses(classFiles, allClassAndSourceFileContents); loadAllSources(sourceFiles); classModuleEntries.addAll(classFiles); sourceModuleEntries.addAll(sourceFiles);
Set<ModuleEntry> s = getClassFiles(entry.asModule()); removeClassFiles(s, result); result.addAll(s); } else {
JarEntry entry = null; while ((entry = s.getNextJarEntry()) != null) { byte[] entryBytes = getEntryBytes(entrySizesForFile.get(entry.getName()), s); if (entryBytes == null) { return null; Map<String, Object> nestedResult = getAllClassAndSourceFileContents(entryBytes, name, entrySizes); if (nestedResult == null) { return null;
@SuppressWarnings("unused") private Map<String, Map<String, Long>> getEntrySizes(Module module, String name) { Map<String, Map<String, Long>> result = HashMapFactory.make(); Map<String, Long> curFileResult = HashMapFactory.make(); for (ModuleEntry e : Iterator2Iterable.make(module.getEntries())) { if (e.isModuleFile()) { result.putAll(getEntrySizes(e.asModule(), e.getName())); } else { if (e instanceof JarFileEntry) { curFileResult.put(e.getName(), ((JarFileEntry) e).getSize()); } } } result.put(name, curFileResult); return result; }
IClassLoader cl; if (implClass == null) { cl = new ClassLoaderImpl(classLoaderReference, scope.getArrayClassLoader(), parent, exclusions, cha); } else try { e2.printStackTrace(System.err); Warnings.add(InvalidClassLoaderImplementation.create(implClass)); cl = new ClassLoaderImpl(classLoaderReference, scope.getArrayClassLoader(), parent, exclusions, cha);
getJarFileContents((JarFileModule) archive); Set<ModuleEntry> classFiles = getClassFiles(archive); removeClassFiles(classFiles, classModuleEntries); Set<ModuleEntry> sourceFiles = getSourceFiles(archive); Map<String, Object> allClassAndSourceFileContents = null; if (OPTIMIZE_JAR_FILE_IO) { loadAllClasses(classFiles, allClassAndSourceFileContents); loadAllSources(sourceFiles); classModuleEntries.addAll(classFiles); sourceModuleEntries.addAll(sourceFiles);
Set<ModuleEntry> s = getClassFiles(entry.asModule()); removeClassFiles(s, result); result.addAll(s); } else {
JarEntry entry = null; while ((entry = s.getNextJarEntry()) != null) { byte[] entryBytes = getEntryBytes(entrySizesForFile.get(entry.getName()), s); if (entryBytes == null) { return null; Map<String, Object> nestedResult = getAllClassAndSourceFileContents(entryBytes, name, entrySizes); if (nestedResult == null) { return null;
@SuppressWarnings("unused") private Map<String, Map<String, Long>> getEntrySizes(Module module, String name) { Map<String, Map<String, Long>> result = HashMapFactory.make(); Map<String, Long> curFileResult = HashMapFactory.make(); for (ModuleEntry e : Iterator2Iterable.make(module.getEntries())) { if (e.isModuleFile()) { result.putAll(getEntrySizes(e.asModule(), e.getName())); } else { if (e instanceof JarFileEntry) { curFileResult.put(e.getName(), ((JarFileEntry) e).getSize()); } } } result.put(name, curFileResult); return result; }
IClassLoader cl; if (implClass == null) { cl = new ClassLoaderImpl(classLoaderReference, scope.getArrayClassLoader(), parent, exclusions, cha); } else try { e2.printStackTrace(System.err); Warnings.add(InvalidClassLoaderImplementation.create(implClass)); cl = new ClassLoaderImpl(classLoaderReference, scope.getArrayClassLoader(), parent, exclusions, cha);
/** END Custom change: Optional deletion of fTypeMap */ @Override public void init(List<Module> modules) throws IOException { super.init(modules); /** BEGIN Custom change: Optional deletion of fTypeMap */ if (deleteTypeMapAfterInit) { fTypeMap = null; } /** END Custom change: Optional deletion of fTypeMap */ }
@Override public Iterator<IClass> iterateAllClasses() { return getAllClasses().iterator(); }
@Override public SSAInstructionFactory getInstructionFactory() { return getLanguage().instructionFactory(); } }
@Override public void init(List<Module> modules) throws IOException { super.init(modules); // module are loaded according to the given order (same as in Java VM) Set<ModuleEntry> classModuleEntries = HashSetFactory.make(); for (Module archive : modules) { Set<ModuleEntry> classFiles = getDexFiles(archive); removeClassFiles(classFiles, classModuleEntries); loadAllDexClasses(classFiles); classModuleEntries.addAll(classFiles); } }
@Override public Iterator<IClass> iterateAllClasses() { return getAllClasses().iterator(); }
@Override public void init(List<Module> modules) throws IOException { super.init(modules); // module are loaded according to the given order (same as in Java VM) Set<ModuleEntry> classModuleEntries = HashSetFactory.make(); for (Module archive : modules) { Set<ModuleEntry> classFiles = getDexFiles(archive); removeClassFiles(classFiles, classModuleEntries); loadAllDexClasses(classFiles); classModuleEntries.addAll(classFiles); } }
@Override public int getNumberOfClasses() { return getAllClasses().size(); }