File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 8ac15c684481ea5b60f85c3f57b63e89a261e7dd
2
+ refs/heads/master: 18beb7a33db3f3e57f445ba42984b8892e0dfce5
Original file line number Diff line number Diff line change @@ -2258,8 +2258,17 @@ let trans_visitor
2258
2258
trans_void_upcall " upcall_join" [| trans_atom (Ast. ATOM_lval task) |]
2259
2259
2260
2260
and trans_send (chan :Ast.lval ) (src :Ast.lval ) : unit =
2261
- let (srccell, _) = trans_lval src in
2262
- aliasing false srccell
2261
+ let (src_cell, src_ty) = trans_lval src in
2262
+ begin
2263
+ match (ty_mem_ctrl src_ty) with
2264
+ | MEM_rc_opaque
2265
+ | MEM_rc_struct
2266
+ | MEM_gc ->
2267
+ iflog (fun _ -> annotate " incr_refcount of src obj" );
2268
+ incr_refcount src_cell;
2269
+ | _ -> ()
2270
+ end ;
2271
+ aliasing false src_cell
2263
2272
begin
2264
2273
fun src_alias ->
2265
2274
trans_void_upcall " upcall_send"
You can’t perform that action at this time.
0 commit comments