class EXPORT ReflectiveHandleScopeSourceInfo : public ReflectionSourceInfo { public: explicit ReflectiveHandleScopeSourceInfo(BaseReflectiveHandleScope* source)
: ReflectionSourceInfo(kSourceThreadHandleScope), source_(source) {}
void Describe(std::ostream& os) const override;
private:
BaseReflectiveHandleScope* source_;
};
// TODO Maybe give this the ability to retrieve the type and ref, if it's useful. class HeapReflectiveSourceInfo : public ReflectionSourceInfo { public:
HeapReflectiveSourceInfo(ReflectionSourceType t, mirror::Object* src)
: ReflectionSourceInfo(t), src_(src) {} void Describe(std::ostream& os) const override;
private:
ObjPtr<mirror::Object> src_;
};
// TODO Maybe give this the ability to retrieve the id if it's useful. template <typename T, typename = typename std::enable_if_t<std::is_same_v<T, jmethodID> ||
std::is_same_v<T, jfieldID>>> class JniIdReflectiveSourceInfo : public ReflectionSourceInfo { public: explicit JniIdReflectiveSourceInfo(T id)
: ReflectionSourceInfo(std::is_same_v<T, jmethodID> ? kSourceJniMethodId : kSourceJniFieldId),
id_(id) {} void Describe(std::ostream& os) const override;
private:
T id_;
};
class DexCacheSourceInfo : public ReflectionSourceInfo { public: explicit DexCacheSourceInfo(ReflectionSourceType type,
size_t index,
ObjPtr<mirror::DexCache> cache)
: ReflectionSourceInfo(type), index_(index), cache_(cache) {}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.