X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_ruby.ml;h=a8416b426a0059c5f33e017dba148be0281f234a;hb=a0509ff0715533e341573e24f6888fd7dcf4ba51;hp=eee6b7e7bc95cdf854ef85cf221651f4ba170e36;hpb=675f336319058fdbaf11ee004968b4543a5a9815;p=libguestfs.git diff --git a/generator/generator_ruby.ml b/generator/generator_ruby.ml index eee6b7e..a8416b4 100644 --- a/generator/generator_ruby.ml +++ b/generator/generator_ruby.ml @@ -246,13 +246,21 @@ ruby_event_callback_wrapper_wrapper (VALUE argvv) VALUE fn, eventv, event_handlev, bufv, arrayv; fn = argv[0]; - eventv = argv[1]; - event_handlev = argv[2]; - bufv = argv[3]; - arrayv = argv[4]; - rb_funcall (fn, rb_intern (\"call\"), 4, - eventv, event_handlev, bufv, arrayv); + /* Check the Ruby callback still exists. For reasons which are not + * fully understood, even though we registered this as a global root, + * it is still possible for the callback to go away (fn value remains + * but its type changes from T_DATA to T_NONE). (RHBZ#733297) + */ + if (rb_type (fn) != T_NONE) { + eventv = argv[1]; + event_handlev = argv[2]; + bufv = argv[3]; + arrayv = argv[4]; + + rb_funcall (fn, rb_intern (\"call\"), 4, + eventv, event_handlev, bufv, arrayv); + } return Qnil; } @@ -338,10 +346,6 @@ ruby_user_cancel (VALUE gv) doc ^ "\n\n" ^ protocol_limit_warning else doc in let doc = - if List.mem DangerWillRobinson flags then - doc ^ "\n\n" ^ danger_will_robinson - else doc in - let doc = match deprecation_notice flags with | None -> doc | Some txt -> doc ^ "\n\n" ^ txt in