Home | History | Annotate | Download | only in reflect

Lines Matching full:clazz

38 static Object* processEncodedAnnotation(const ClassObject* clazz,\
40 static bool skipEncodedAnnotation(const ClassObject* clazz, const u1** pPtr);
88 const ClassObject* clazz)
96 pClassDef = dexFindClass(pDexFile, clazz->descriptor);
217 * An annotation in "clazz" refers to a method by index. This just gives
295 * "clazz" is the class on which the annotations are defined. It may be
317 static bool processAnnotationValue(const ClassObject* clazz,
335 (ptr-1) - (u1*)clazz->pDvmDex->pDexFile->baseAddr);
411 elemObj = (Object*) dvmResolveString(clazz, idx);
423 elemObj = (Object*) dvmResolveClass(clazz, idx, true);
427 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
442 Method* meth = resolveAmbiguousMethod(clazz, idx);
445 elemObj = dvmCreateReflectObjForMethod(clazz, meth);
463 sfield = dvmResolveStaticField(clazz, idx);
467 assert(sfield->clazz->descriptor[0] == 'L');
498 if (!processAnnotationValue(clazz, &ptr, &avalue,
517 elemObj = processEncodedAnnotation(clazz, &ptr);
580 * (valueObj->clazz->descriptor+1, valueObj->clazz->classLoader).
582 if (strcmp(valueObj->clazz->descriptor, "[Ljava/lang/Object;") != 0) {
583 ALOGE("Unexpected src type class (%s)", valueObj->clazz->descriptor);
635 * "clazz" is the class on which the annotations are defined. "pPtr"
644 static Object* createAnnotationMember(const ClassObject* clazz,
648 const DexFile* pDexFile = clazz->pDvmDex->pDexFile;
662 if (!processAnnotationValue(clazz, pPtr, &avalue, kAllObjects)) {
722 * "clazz" is the class on which the annotations are defined. "pPtr"
736 static Object* processEncodedAnnotation(const ClassObject* clazz,
752 annoClass = dvmDexGetResolvedClass(clazz->pDvmDex, typeIdx);
754 annoClass = dvmResolveClass(clazz, typeIdx, true);
757 clazz->descriptor, typeIdx);
765 *pPtr, *pPtr - (u1*) clazz->pDvmDex->pDexFile->baseAddr,
790 Object* newMember = createAnnotationMember(clazz, annoClass, &ptr);
826 static ArrayObject* processAnnotationSet(const ClassObject* clazz,
829 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
865 Object *anno = processEncodedAnnotation(clazz, &ptr);
896 const ClassObject* clazz, const DexAnnotationSetItem* pAnnoSet,
899 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
920 annoClass = dvmDexGetResolvedClass(clazz->pDvmDex, typeIdx);
922 annoClass = dvmResolveClass(clazz, typeIdx, true);
925 clazz->descriptor, typeIdx);
945 static Object* getAnnotationObjectFromAnnotationSet(const ClassObject* clazz,
950 clazz, pAnnoSet, visibility, annotationClazz);
955 return processEncodedAnnotation(clazz, &ptr);
967 * "clazz" is the class on which the annotations are defined.
971 static bool skipAnnotationValue(const ClassObject* clazz, const u1** pPtr)
983 (ptr-1) - (u1*)clazz->pDvmDex->pDexFile->baseAddr);
1004 if (!skipAnnotationValue(clazz, &ptr))
1012 if (!skipEncodedAnnotation(clazz, &ptr))
1036 static bool skipEncodedAnnotation(const ClassObject* clazz, const u1** pPtr)
1052 if (!skipAnnotationValue(clazz, &ptr))
1084 static const DexAnnotationItem* searchAnnotationSet(const ClassObject* clazz,
1088 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
1118 static const u1* searchEncodedAnnotation(const ClassObject* clazz,
1121 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
1139 skipAnnotationValue(clazz, &ptr);
1157 static Object* getAnnotationValue(const ClassObject* clazz,
1165 ptr = searchEncodedAnnotation(clazz, pAnnoItem->annotation, annoName);
1171 if (!processAnnotationValue(clazz, &ptr, &avalue, kAllObjects))
1194 static ArrayObject* getSignatureValue(const ClassObject* clazz,
1200 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrSignature,
1208 obj = getAnnotationValue(clazz, pAnnoItem, "value", kDexAnnotationArray,
1212 assert(obj->clazz == gDvm.classJavaLangObjectArray);
1228 const ClassObject* clazz)
1233 if (clazz->pDvmDex == NULL) /* generated class (Proxy, array) */
1236 pDexFile = clazz->pDvmDex->pDexFile;
1237 pAnnoDir = getAnnoDirectory(pDexFile, clazz);
1252 ArrayObject* dvmGetClassAnnotations(const ClassObject* clazz)
1257 pAnnoSet = findAnnotationSetForClass(clazz);
1262 annoArray = processAnnotationSet(clazz, pAnnoSet,
1272 Object* dvmGetClassAnnotation(const ClassObject* clazz,
1275 const DexAnnotationSetItem* pAnnoSet = findAnnotationSetForClass(clazz);
1279 return getAnnotationObjectFromAnnotationSet(clazz, pAnnoSet,
1286 bool dvmIsClassAnnotationPresent(const ClassObject* clazz,
1289 const DexAnnotationSetItem* pAnnoSet = findAnnotationSetForClass(clazz);
1294 clazz, pAnnoSet, kDexVisibilityRuntime, annotationClazz);
1304 ArrayObject* dvmGetClassSignatureAnnotation(const ClassObject* clazz)
1309 pAnnoSet = findAnnotationSetForClass(clazz);
1311 signature = getSignatureValue(clazz, pAnnoSet);
1322 Object* dvmGetEnclosingMethod(const ClassObject* clazz)
1328 pAnnoSet = findAnnotationSetForClass(clazz);
1332 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrEnclosingMethod,
1340 obj = getAnnotationValue(clazz, pAnnoItem, "value", kDexAnnotationMethod,
1344 assert(obj->clazz == gDvm.classJavaLangReflectConstructor ||
1345 obj->clazz == gDvm.classJavaLangReflectMethod);
1358 ClassObject* dvmGetDeclaringClass(const ClassObject* clazz)
1364 pAnnoSet = findAnnotationSetForClass(clazz);
1368 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrEnclosingClass,
1376 obj = getAnnotationValue(clazz, pAnnoItem, "value", kDexAnnotationType,
1393 ClassObject* dvmGetEnclosingClass(const ClassObject* clazz)
1399 pAnnoSet = findAnnotationSetForClass(clazz);
1403 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrEnclosingClass,
1409 obj = getAnnotationValue(clazz, pAnnoItem, "value", kDexAnnotationType,
1424 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrEnclosingMethod,
1431 ptr = searchEncodedAnnotation(clazz, pAnnoItem->annotation, "value");
1439 if (!processAnnotationValue(clazz, &ptr, &avalue, kAllRaw)) {
1450 Method* meth = resolveAmbiguousMethod(clazz, avalue.value.i);
1454 ClassObject* methClazz = meth->clazz;
1467 bool dvmGetInnerClass(const ClassObject* clazz, StringObject** pName,
1473 pAnnoSet = findAnnotationSetForClass(clazz);
1477 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrInnerClass,
1488 ptr = searchEncodedAnnotation(clazz, pAnnoItem->annotation, "name");
1496 if (!processAnnotationValue(clazz, &ptr, &avalue, kAllObjects)) {
1511 assert(*pName == NULL || (*pName)->clazz == gDvm.classJavaLangString);
1513 ptr = searchEncodedAnnotation(clazz, pAnnoItem->annotation, "accessFlags");
1520 if (!processAnnotationValue(clazz, &ptr, &avalue, kAllRaw)) {
1543 ArrayObject* dvmGetDeclaredClasses(const ClassObject* clazz)
1549 pAnnoSet = findAnnotationSetForClass(clazz);
1553 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrMemberClasses,
1561 obj = getAnnotationValue(clazz, pAnnoItem, "value",
1586 int result = strcmp(str, method->clazz->descriptor);
1615 if (method->clazz->pDvmDex == NULL) return 0;
1617 DexFile* pDexFile = method->clazz->pDvmDex->pDexFile;
1640 method->clazz->descriptor, method->name, desc);
1656 ClassObject* clazz = method->clazz;
1662 if (clazz->pDvmDex == NULL) /* generated class (Proxy, array) */
1664 pDexFile = clazz->pDvmDex->pDexFile;
1666 pAnnoDir = getAnnoDirectory(pDexFile, clazz);
1709 ClassObject* clazz = method->clazz;
1718 annoArray = processAnnotationSet(clazz, pAnnoSet,kDexVisibilityRuntime);
1727 Object* dvmGetMethodAnnotation(const ClassObject* clazz, const Method* method,
1734 return getAnnotationObjectFromAnnotationSet(clazz, pAnnoSet,
1741 bool dvmIsMethodAnnotationPresent(const ClassObject* clazz,
1749 clazz, pAnnoSet, kDexVisibilityRuntime, annotationClazz);
1761 ClassObject* clazz = method->clazz;
1767 signature = getSignatureValue(clazz, pAnnoSet);
1782 ClassObject* clazz = method->clazz;
1792 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrThrows,
1800 Object* obj = getAnnotationValue(clazz, pAnnoItem, "value",
1819 const ClassObject* clazz = method->clazz;
1820 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
1830 pAnnoDir = getAnnoDirectory(pDexFile, clazz);
1840 pAnnoItem = searchAnnotationSet(clazz, pAnnoSet, kDescrAnnotationDefault,
1845 // method->clazz->descriptor, method->name);
1854 ptr = searchEncodedAnnotation(clazz, pAnnoItem->annotation, "value");
1871 ptr = searchEncodedAnnotation(clazz, ptr, method->name);
1877 if (!processAnnotationValue(clazz, &ptr, &avalue, kAllObjects)) {
1906 int result = strcmp(str, field->clazz->descriptor);
1927 if (field->clazz->pDvmDex == NULL) return 0;
1929 DexFile* pDexFile = field->clazz->pDvmDex->pDexFile;
1951 field->clazz->descriptor, field->name, field->signature);
1965 ClassObject* clazz = field->clazz;
1966 DvmDex* pDvmDex = clazz->pDvmDex;
1973 const DexAnnotationsDirectoryItem* pAnnoDir = getAnnoDirectory(pDexFile, clazz);
2018 ClassObject* clazz = field->clazz;
2027 annoArray = processAnnotationSet(clazz, pAnnoSet,
2037 Object* dvmGetFieldAnnotation(const ClassObject* clazz, const Field* field,
2044 return getAnnotationObjectFromAnnotationSet(clazz, pAnnoSet,
2051 bool dvmIsFieldAnnotationPresent(const ClassObject* clazz,
2059 clazz, pAnnoSet, kDexVisibilityRuntime, annotationClazz);
2071 ClassObject* clazz = field->clazz;
2077 signature = getSignatureValue(clazz, pAnnoSet);
2095 static ArrayObject* processAnnotationSetRefList(const ClassObject* clazz,
2098 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
2124 annoSet = (Object *)processAnnotationSet(clazz,
2148 ClassObject* clazz = method->clazz;
2153 if (clazz->pDvmDex == NULL) /* generated class (Proxy, array) */
2156 pDexFile = clazz->pDvmDex->pDexFile;
2157 pAnnoDir = getAnnoDirectory(pDexFile, clazz);
2215 ClassObject* clazz = method->clazz;
2221 DexFile* pDexFile = clazz->pDvmDex->pDexFile;
2227 annoArrayArray = processAnnotationSetRefList(clazz, pAnnoSetList, size);
2248 * @param clazz class to use when resolving strings and types
2251 const DexEncodedArray* encodedArray, const ClassObject* clazz) {
2256 iterator->clazz = clazz;
2286 processed = processAnnotationValue(iterator->clazz, &iterator->cursor,