template <PointerSize kPointerSize> void Executable::InitializeFromArtMethod(ArtMethod* method) { // We're initializing a newly allocated object, so we do not need to record that under // a transaction. If the transaction is aborted, the whole object shall be unreachable. auto* interface_method = method->GetInterfaceMethodIfProxy(kPointerSize);
SetArtMethod</*kTransactionActive=*/ false, /*kCheckTransaction=*/ false>(method);
SetFieldObject</*kTransactionActive=*/ false, /*kCheckTransaction=*/ false>(
DeclaringClassOffset(), method->GetDeclaringClass());
SetFieldObject</*kTransactionActive=*/ false, /*kCheckTransaction=*/ false>(
DeclaringClassOfOverriddenMethodOffset(), interface_method->GetDeclaringClass());
SetField32</*kTransactionActive=*/ false, /*kCheckTransaction=*/ false>(
AccessFlagsOffset(), method->GetAccessFlags());
SetField32</*kTransactionActive=*/ false, /*kCheckTransaction=*/ false>(
DexMethodIndexOffset(), method->GetDexMethodIndex());
}
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.