Home | History | Annotate | Download | only in analysis

Lines Matching defs:pDexFile

250 typedef void (AllMethodsFunc)(DexFile* pDexFile, const char* classDescriptor,
272 static ScanResults* allocScanResults(const DexFile* pDexFile)
275 const DexHeader* pHeader = pDexFile->pHeader;
306 static void forAllMethodsInClass(DexFile* pDexFile, const u1** ppEncodedData,
342 (func)(pDexFile, classDescriptor, &method, arg);
352 (func)(pDexFile, classDescriptor, &method, arg);
360 static void forAllMethods(DexFile* pDexFile, AllMethodsFunc func, void* arg)
362 u4 count = pDexFile->pHeader->classDefsSize;
370 pClassDef = dexGetClassDef(pDexFile, idx);
371 pEncodedData = dexGetClassData(pDexFile, pClassDef);
374 classDescriptor = dexStringByTypeIdx(pDexFile, pClassDef->classIdx);
379 forAllMethodsInClass(pDexFile, &pEncodedData, &header,
619 static void markUsedConstants(DexFile* pDexFile, const char* classDescriptor,
623 const DexCode* pDexCode = dexGetCode(pDexFile, pDexMethod);
628 pMethodId = dexGetMethodId(pDexFile, pDexMethod->methodIdx);
629 methodName = dexStringById(pDexFile, pMethodId->nameIdx);
647 static void updateUsedConstants(DexFile* pDexFile, const char* classDescriptor,
651 const DexCode* pDexCode = dexGetCode(pDexFile, pDexMethod);
656 pMethodId = dexGetMethodId(pDexFile, pDexMethod->methodIdx);
657 methodName = dexStringById(pDexFile, pMethodId->nameIdx);
684 DexFile* pDexFile = pDvmDex->pDexFile;
688 for (i = 0; i < (int) pDvmDex->pDexFile->pHeader->typeIdsSize; i++) {
692 pDexTypeId = dexGetTypeId(pDexFile, i);
693 classDescr = dexStringById(pDexFile, pDexTypeId->descriptorIdx);
702 for (i = 0; i < (int) pDvmDex->pDexFile->pHeader->methodIdsSize; i++) {
708 pDexMethodId = dexGetMethodId(pDexFile, i);
709 methodName = dexStringById(pDexFile, pDexMethodId->nameIdx);
711 pDexTypeId = dexGetTypeId(pDexFile, pDexMethodId->classIdx);
712 classDescr = dexStringById(pDexFile, pDexTypeId->descriptorIdx);
720 for (i = 0; i < (int) pDvmDex->pDexFile->pHeader->fieldIdsSize; i++) {
726 pDexFieldId = dexGetFieldId(pDexFile, i);
727 fieldName = dexStringById(pDexFile, pDexFieldId->nameIdx);
729 pDexTypeId = dexGetTypeId(pDexFile, pDexFieldId->classIdx);
730 classDescr = dexStringById(pDexFile, pDexTypeId->descriptorIdx);
738 for (i = 0; i < (int) pDvmDex->pDexFile->pHeader->stringIdsSize; i++) {
741 str = dexStringById(pDexFile, i);
756 showBitCount("classes", setCount, pDexFile->pHeader->typeIdsSize);
758 totalMax += pDexFile->pHeader->typeIdsSize;
761 showBitCount("methods", setCount, pDexFile->pHeader->methodIdsSize);
763 totalMax += pDexFile->pHeader->methodIdsSize;
766 showBitCount("fields", setCount, pDexFile->pHeader->fieldIdsSize);
768 totalMax += pDexFile->pHeader->fieldIdsSize;
771 showBitCount("strings", setCount, pDexFile->pHeader->stringIdsSize);
773 totalMax += pDexFile->pHeader->stringIdsSize;
962 static IndexMapSet* createIndexMapSet(const DexFile* pDexFile,
973 okay = okay && constructIndexMap(pDexFile->pHeader->typeIdsSize,
975 okay = okay && constructIndexMap(pDexFile->pHeader->methodIdsSize,
977 okay = okay && constructIndexMap(pDexFile->pHeader->fieldIdsSize,
979 okay = okay && constructIndexMap(pDexFile->pHeader->stringIdsSize,
1035 ScanResults* pResults = allocScanResults(pDvmDex->pDexFile);
1036 forAllMethods(pDvmDex->pDexFile, markUsedConstants, pResults);
1043 IndexMapSet* pIndexMapSet = createIndexMapSet(pDvmDex->pDexFile, pResults);
1049 forAllMethods(pDvmDex->pDexFile, updateUsedConstants, pIndexMapSet);