in java/com/facebook/soloader/UnpackingSoSource.java [237:266]
private void deleteUnmentionedFiles(Dso[] dsos) throws IOException {
String[] existingFiles = soDirectory.list();
if (existingFiles == null) {
throw new IOException("unable to list directory " + soDirectory);
}
for (int i = 0; i < existingFiles.length; ++i) {
String fileName = existingFiles[i];
if (fileName.equals(STATE_FILE_NAME)
|| fileName.equals(LOCK_FILE_NAME)
|| fileName.equals(INSTANCE_LOCK_FILE_NAME)
|| fileName.equals(DEPS_FILE_NAME)
|| fileName.equals(MANIFEST_FILE_NAME)) {
continue;
}
boolean found = false;
for (int j = 0; !found && j < dsos.length; ++j) {
if ((dsos[j].name).equals(getSoNameFromFileName(fileName))) {
found = true;
}
}
if (!found) {
File fileNameToDelete = new File(soDirectory, fileName);
Log.v(TAG, "deleting unaccounted-for file " + fileNameToDelete);
SysUtil.dumbDeleteRecursive(fileNameToDelete);
}
}
}