diff options
author | Zoltan Varga <vargaz@gmail.com> | 2014-11-13 11:58:22 +0300 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2014-11-13 11:58:22 +0300 |
commit | 91a4a3d504c21f9177802a3474cc682cb0fcb97f (patch) | |
tree | 8dc7785568be7dd178916c0eb3bb3b0ce4210340 | |
parent | 6d5c45d55925e5cae66115b962c74a42adc503d2 (diff) |
Fix the build.
-rwxr-xr-x | mono/mini/method-to-ir.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/mono/mini/method-to-ir.c b/mono/mini/method-to-ir.c index b2893107f74..783208d1224 100755 --- a/mono/mini/method-to-ir.c +++ b/mono/mini/method-to-ir.c @@ -4141,13 +4141,15 @@ emit_castclass_with_cache_nonshared (MonoCompile *cfg, MonoInst *obj, MonoClass * Returns NULL and set the cfg exception on error. */ static MonoInst* -handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context_used) +handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context_used, MonoBasicBlock **out_bb) { MonoBasicBlock *is_null_bb; int obj_reg = src->dreg; int vtable_reg = alloc_preg (cfg); MonoInst *klass_inst = NULL; + *out_bb = cfg->cbb; + if (context_used) { MonoInst *args [3]; @@ -4211,6 +4213,8 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context reset_cast_details (cfg); + *out_bb = cfg->cbb; + return src; } @@ -9874,7 +9878,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b inline_costs += costs; } else { - ins = handle_castclass (cfg, klass, *sp, context_used); + ins = handle_castclass (cfg, klass, *sp, context_used, &bblock); CHECK_CFG_EXCEPTION; bblock = cfg->cbb; *sp ++ = ins; @@ -9988,7 +9992,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b *sp++ = iargs [0]; inline_costs += costs; } else { - ins = handle_castclass (cfg, klass, *sp, context_used); + ins = handle_castclass (cfg, klass, *sp, context_used, &bblock); CHECK_CFG_EXCEPTION; bblock = cfg->cbb; *sp ++ = ins; |