// A helper class defining the signature associated with a members that can take an assumed value. class AssumeValueSignature : public ValueObject { public:
constexpr booloperator==(const AssumeValueSignature& other) const { return class_descriptor_ == other.class_descriptor_ &&
member_name_ == other.member_name_ &&
type_descriptor_ == other.type_descriptor_ &&
is_static_ == other.is_static_;
}
constexpr booloperator!=(const AssumeValueSignature& other) const { return !(*this == other); }
// Returns a string that can be used as a key associated with the member's signature.
constexpr std::string AsKey() const { return std::string(class_descriptor_) + "->" + std::string(member_name_);
}
// Attempts to look up the field associated with the current signature. // If unavailable, returns nullptr.
ArtField* LookupField() const;
// A helper class containing signatures for members that can take assumed values during compilation. class AssumeValueSignatures final { public: static constexpr AssumeValueSignature kSdkInt{ "Landroid/os/Build$VERSION;", "SDK_INT", "I", /*is_static=*/true};
// Looks up a possible declared signature associated with the given descriptor and member. // Returns nullptr if there's no such matching signature. static constexpr std::optional<AssumeValueSignature> Lookup(std::string_view class_descriptor,
std::string_view member_name) { for (constauto& signature : kSignatures) { if (signature.class_descriptor_ == class_descriptor &&
signature.member_name_ == member_name) { return signature;
}
} return std::nullopt;
}
};
} // namespace art
#endif// ART_RUNTIME_ASSUME_VALUE_SIGNATURES_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-29)
¤
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.