diff options
| author | 2015-11-21 00:55:35 +0000 | |
|---|---|---|
| committer | 2015-11-21 00:55:35 +0000 | |
| commit | b48cb936e6fa52d0ded29bac4f1f654cdf112ac6 (patch) | |
| tree | b192c4698c4889ae90db6abe2652199802213fe6 /runtime/lambda/art_lambda_method.h | |
| parent | 3944f7175dcf60316ba58a42698ccf23c65ac57c (diff) | |
| parent | 457e874459ae638145cab6d572e34d48480e39d2 (diff) | |
Merge "lambda: Add support for invoke-interface for boxed innate lambdas"
Diffstat (limited to 'runtime/lambda/art_lambda_method.h')
| -rw-r--r-- | runtime/lambda/art_lambda_method.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/lambda/art_lambda_method.h b/runtime/lambda/art_lambda_method.h index ea13eb7af6..a858bf945d 100644 --- a/runtime/lambda/art_lambda_method.h +++ b/runtime/lambda/art_lambda_method.h @@ -90,6 +90,17 @@ class ArtLambdaMethod { return strlen(captured_variables_shorty_); } + // Return the offset in bytes from the start of ArtLambdaMethod to the method_. + // -- Only should be used by assembly (stubs) support code and compiled code. + static constexpr size_t GetArtMethodOffset() { + return offsetof(ArtLambdaMethod, method_); + } + + // Calculate how many vregs all the arguments will use when doing an invoke. + // (Most primitives are 1 vregs, double/long are 2, reference is 1, lambda is 2). + // -- This is used to know how big to set up shadow frame when invoking into the target method. + size_t GetArgumentVRegCount() const SHARED_REQUIRES(Locks::mutator_lock_); + private: // TODO: ArtMethod, or at least the entry points should be inlined into this struct // to avoid an extra indirect load when doing invokes. |