Selaa lähdekoodia

double-cast optimization

Nicolas Cannasse 8 vuotta sitten
vanhempi
commit
568d3e57ea
1 muutettua tiedostoa jossa 3 lisäystä ja 0 poistoa
  1. 3 0
      src/generators/genhl.ml

+ 3 - 0
src/generators/genhl.ml

@@ -2382,6 +2382,9 @@ and eval_expr ctx e =
 		ctx.m.mcontinues <- oldc;
 		ctx.m.mcontinues <- oldc;
 		ctx.m.mloop_trys <- oldtrys;
 		ctx.m.mloop_trys <- oldtrys;
 		alloc_tmp ctx HVoid
 		alloc_tmp ctx HVoid
+	| TCast ({ eexpr = TCast (v,_) },a) ->
+        (* coalesce double casts into a single runtime check - temp fix for Map accesses *)
+        eval_expr ctx { e with eexpr = TCast(v,a) }
 	| TCast (v,None) ->
 	| TCast (v,None) ->
 		let t = to_type ctx e.etype in
 		let t = to_type ctx e.etype in
 		let rv = eval_expr ctx v in
 		let rv = eval_expr ctx v in