Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Feb 9th, 2010 | Syntax: None | Size: 1.61 KB | Hits: 15 | Expires: Never
Copy text to clipboard
  1. diff --git a/mono/mini/method-to-ir.c b/mono/mini/method-to-ir.c
  2. index 81fee96..df6a0a3 100644
  3. --- a/mono/mini/method-to-ir.c
  4. +++ b/mono/mini/method-to-ir.c
  5.  -3139,7 +3138,11 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context
  6.                         /* klass */
  7.                         args [1] = klass_inst;
  8.  
  9. -                       return mono_emit_jit_icall (cfg, mono_object_castclass, args);
  10. +                       g_print ("cast in %s.%s.%s\n", cfg->method->klass->name_space, cfg->method->klass->name, cfg->method->name);
  11. +
  12. +                       src = mono_emit_jit_icall (cfg, mono_object_castclass, args);
  13. +
  14. +                       goto end;
  15.                 } else {
  16.                         /* Simple case, handled by the code below */
  17.                 }
  18.  -3174,6 +3177,7 @@ handle_castclass (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context
  19.                 }
  20.         }
  21.  
  22. + end:
  23.         MONO_START_BB (cfg, is_null_bb);
  24.  
  25.         reset_cast_details (cfg);
  26.  -3197,8 +3201,7 @@ handle_isinst (MonoCompile *cfg, MonoClass *klass, MonoInst *src, int context_us
  27.         if (context_used) {
  28.                 klass_inst = emit_get_rgctx_klass (cfg, context_used, klass, MONO_RGCTX_INFO_KLASS);
  29.  
  30. -               // FIXME: This doesn't work yet (mcs/tests/gtest-304.cs fails)
  31. -               if (TRUE || (klass->flags & TYPE_ATTRIBUTE_INTERFACE) || klass->rank || mono_class_is_nullable (klass) || klass->marshalbyref || (klass->flags & TYPE_ATTRIBUTE_SEALED) || mono_class_has_variant_generic_params (klass)) {
  32. +               if ((klass->flags & TYPE_ATTRIBUTE_INTERFACE) || klass->rank || mono_class_is_nullable (klass) || klass->marshalbyref || (klass->flags & TYPE_ATTRIBUTE_SEALED) || mono_class_has_variant_generic_params (klass)) {
  33.                         MonoInst *args [2];
  34.  
  35.                         /* Complex case, handle by an icall */