diff options
| author | Graydon Hoare <[email protected]> | 2010-08-25 16:36:18 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-08-25 16:36:18 -0700 |
| commit | 2c8ae5ca8dd423443e44e3f0863f3c50b3126cd2 (patch) | |
| tree | dbeee2bb393721d22fd85827dbb30702bbfb6c22 /src/boot/me/trans.ml | |
| parent | Merge obj-drop and closure-drop code, handles freeing bound exteriors now. (diff) | |
| download | rust-2c8ae5ca8dd423443e44e3f0863f3c50b3126cd2.tar.xz rust-2c8ae5ca8dd423443e44e3f0863f3c50b3126cd2.zip | |
Add element to closure to hold captured tydesc (not body tydesc).
Diffstat (limited to 'src/boot/me/trans.ml')
| -rw-r--r-- | src/boot/me/trans.ml | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml index f0483e6e..2c1ecee1 100644 --- a/src/boot/me/trans.ml +++ b/src/boot/me/trans.ml @@ -3619,7 +3619,9 @@ let trans_visitor let rc_cell = get_element_ptr closure_cell Abi.box_rc_field_refcnt in let body_cell = get_element_ptr closure_cell Abi.box_rc_field_body in let targ_cell = get_element_ptr body_cell Abi.closure_body_elt_target in - let tydesc_cell = get_element_ptr body_cell Abi.closure_body_elt_tydesc in + let bound_args_tydesc_cell = + get_element_ptr body_cell Abi.closure_body_elt_bound_args_tydesc + in let args_cell = get_element_ptr body_cell Abi.closure_body_elt_bound_args in @@ -3627,8 +3629,8 @@ let trans_visitor iflog (fun _ -> annotate "init closure refcount"); mov rc_cell one; - iflog (fun _ -> annotate "set closure tydesc ptr"); - mov tydesc_cell + iflog (fun _ -> annotate "set closure bound-args tydesc ptr"); + mov bound_args_tydesc_cell (Il.Cell (get_tydesc None (Ast.TY_tup (Array.map slot_ty bound_arg_slots)))); |