OSDN Git Service

lambda: Experimental support for capture-variable and liberate-variable
authorIgor Murashkin <iam@google.com>
Fri, 25 Sep 2015 21:22:08 +0000 (14:22 -0700)
committerIgor Murashkin <iam@google.com>
Fri, 25 Sep 2015 22:53:00 +0000 (15:53 -0700)
commitb72123440d8541362ebdb131436f9dbdda5fd329
tree41e3d21496a270edc06879f084a504a39af9469b
parent9f3b8d38de615efef6d2536817f19ad2ccaa313a
lambda: Experimental support for capture-variable and liberate-variable

Supports capturing/liberating any primitive variables.
No support for capturing objects/lambdas yet since they would both
need GC changes to track roots through closures.

Change-Id: Ibfb68bfe4c579dbf93823aac4c0e6ac8f6360c5d
26 files changed:
compiler/dex/quick/quick_compiler.cc
runtime/Android.mk
runtime/dex_instruction-inl.h
runtime/dex_instruction.cc
runtime/dex_instruction.h
runtime/dex_instruction_list.h
runtime/interpreter/interpreter_common.cc
runtime/interpreter/interpreter_common.h
runtime/interpreter/interpreter_goto_table_impl.cc
runtime/interpreter/interpreter_switch_impl.cc
runtime/lambda/art_lambda_method.h
runtime/lambda/box_table.cc
runtime/lambda/box_table.h
runtime/lambda/closure.cc
runtime/lambda/closure.h
runtime/lambda/closure_builder-inl.h
runtime/lambda/closure_builder.cc
runtime/lambda/closure_builder.h
runtime/lambda/leaking_allocator.cc [new file with mode: 0644]
runtime/lambda/leaking_allocator.h [new file with mode: 0644]
runtime/verifier/method_verifier.cc
test/955-lambda-smali/expected.txt
test/955-lambda-smali/smali/BoxUnbox.smali
test/955-lambda-smali/smali/Main.smali
test/955-lambda-smali/smali/MoveResult.smali
test/955-lambda-smali/smali/TrivialHelloWorld.smali